Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Slides:



Advertisements
Similar presentations
Dan Waters, Academic Relations Manager, Microsoft.
Advertisements

CP411 Computer Graphics, Wilfrid Laurier University Introduction # 1 Welcome to CP411 Computer Graphics 2012 Instructor: Dr. Hongbing Fan Introduction.
CSE 380 – Computer Game Programming Introduction ITS 102 – 3D Modeling for Games Introduction.
Introduction to Computer Programming in C
LEARNING WITH TECHNOLOGY Presented by Mia Passerelli, Jarret Baker, Danielle Tronzo.
Science Student Success Centre Find the resources you need on campus Improve the way you prepare for your semester. Find summer research opportunities.
Survey of Graphics and Games. Outline Overview of computer graphics – Coursework – Research Programming using game engines Computer game and animation.
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
Mobile Gaming and the Zune William Birmingham ASEE Conference June, 2010 Louisville, KY.
CHAPTER 1 Introduction to Game Development © 2008 Cengage Learning EMEA.
MERTIS: Modifiable, Extensible, Real-Time, Interactive Simulation Leandro Basallo ◦ Ryan Leigh ◦ Sam Talaie ◦ Regan Snyder with Dr. Sergiu Dascalu and.
Level 2 Mobile and Games Programming Modules Cathy French K233.
Game Development Essentials An Introduction. Chapter 10 Roles & Responsibilities developing the team.
COMP 14 – 02: Introduction to Programming Andrew Leaver-Fay August 31, 2005 Monday/Wednesday 3-4:15 pm Peabody 217 Friday 3-3:50pm Peabody 217.
A Technical Game Project 4 Due dates: Game Idea Friday, March 16 th Game Plan Friday, March 23 rd Web Page Sunday, April 9 th First Playable Wednesday,
By Steven Taylor.  Basically a video game engine is a software system designed for the creation and development of video games.  There are many game.
 MODERN DATABASE MANAGEMENT SYSTEMS OVERVIEW BY ENGINEER BILAL AHMAD
CS 1 with Robots CS1301 – Where it Fits Institute for Personal Robots in Education (IPRE)‏
Pong by Atari, released to public 1975 CSE 381 – Advanced Game Programming Introduction.
Application Software.  Topics Covered:  Software Categories  Desktop vs. Mobile Software  Installed vs. Web-Based Software.
Gearbox Software PRODUCTION PIPELINE – JOBS TITLES – JOB DESCRIPTIONS.
3D Game Programming Using OGRE3d (Object-Oriented Graphics Rendering Engine) 黃世強 Room 706 #ext.
Chapter 5 Application Software.
How to Be a Game Developer
Introduction to Computer Games and Graphical System Lecture #1: Lecture #1: Introduction, Overview Introduction, Overview Xu.Zhu Xu.Zhu SIT, Shanghai,
CSE328:Computer Graphics OpenGL Tutorial Dongli Zhang Department of Computer Science, SBU Department of Computer Science, Stony.
1 CO Games Concepts Week 24 Preparation for next year Gareth Bellaby.
INE2720 Web Application Software Development General Information.
ISE 390 Dynamic Web Development Introduction. Who am I? Richard McKenna Phone: Office: CS Room 1436 Office.
Lab 8 – C# Programming Adding two numbers CSCI 6303 – Principles of I.T. Dr. Abraham Fall 2012.
AGD: 1. Preliminaries1 Objective o to give some background on the course Animation and Games Development , Semester 1, Who we.
Game Development and Game Design academy.zariba.com 1.
CSE Graphical User Interface Design & Implementation Jason Murphy Lecture 1 - Introduction.
Introduction CSE 1310 – Introduction to Computers and Programming
COMP4070 Computer Graphics Dr. Amy Zhang. Welcome! 2  Introductions  Administrative Matters  Course Outline  What is Computer Graphics?
CS 638, Fall 2001 CS 638: Computer Games Technology Fall 2001.
CSE 219 Computer Science III
CO1301: Games Concepts Dr Nick Mitchell (Room CM 226) Material originally prepared by Laurent Noel.
Game Industry and The Future of Game Pertemuan 12 Matakuliah: T0944-Game Design and Programming Tahun: 2010.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Tablet PC Capstone CSE 481b Richard Anderson Craig Prince.
Instructor: Tina Tian. About me Office: RLC 203A Office Hours: Wednesday 1:30 - 4:30 PM or .
Welcome to CSIS10A Computer Science: Beginning Programming Please, take a syllabus.
Media Computing Instructor Byung Kim Olsen 231 Office hours – MWF 9:00-10:00 AM or by appointment.
Course Introduction Software Engineering
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
1 ETC. 2 Sounds FX Sounds FX –WAV audio files –Load into memory and play it »Load »Play »Stop »Pause –2D or 3D »3D should be integrated into scene management.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
© Paradigm Publishing Inc. 5-1 Chapter 5 Application Software.
Ahmed Saker Indie Game Developer
CS 426 Video Game Design and Programming © Jason Leigh Electronic Visualization Lab, University of Illinois at Chicago “The figure of merit.
1 Contents  Audio  Sprite  Input devices  Game production milestones  Course summary.
Current Information To help you find current news and information, many search engines and directories include a hyperlink to a "What's new" page. Many.
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
Winter 2016CMPE212 - Prof. McLeod1 CMPE212 Object Oriented Programming for Engineers Course Web Site: Lecture.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
© 2014 International Technology and Engineering Educators Association STEM  Center for Teaching and Learning™ Game Art and Design Unit 2 Lesson 1 Skills.
Winter 2016CISC101 - Prof. McLeod1 CISC101 Elements of Computing Science I Course Web Site: The lecture outlines.
Welcome to Data Structures. Course Introduction Instructor : r 신 용 태 r 愼 鏞 台 r Yongtae Shin r 정보과학관 422 호 r r r Homepage.
The Origin of Gaming Kuliah #1 Game Design & Development.
CMPT 201 Computer Science II for Engineers
CSE 102/ISE 102 Introduction to Web Design and Programming
SPECIALIZED APPLICATION SOFTWARE
Introduction and Overview
CO1301: Games ncepts 2016 Lecture 2
CO Games Concepts Week 25 Preparation for next year
CS1301 – Where it Fits Institute for Personal Robots in Education
CSCE 221 Professor Lupoli TAMU CSCE 221 Intro.
CS1301 – Where it Fits Institute for Personal Robots in Education
Presentation transcript:

Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction

Why study games? To get game development jobs Because it is fun Because they are complex Because they push the envelope of computing technology Bottom line: –games are natural learning devices –making games is a great way to learn other things

To really join the industry

Modern Games are Complex Can be very complex Technologies used: –2D & 3D Graphics –Sound & Music –Networking –Artificial Intelligence –Physics Simulation –Parallel Processing –Custom scripting languages –Etc. All of it must be implemented efficiently

Pong by Atari, released to public 1975

Battlefield 3 by Electronic Arts/DICE

Blizzard’s World of Warcraft Over 10,000,000 subscribers –thousands play simultaneously –players in countries around the world Requires: –Rich graphical environment –Complex networking –Semi-nude dancing Needs an army to make it. And: –maintain –update –count profits

The Development Team/Army Designers Artists Audio Engineers Producers Programmers

The Modern Game Programmer Is often more of a tools programmer –what tools? –tools for game designers, artists, & other programmers Often works with very specific technologies –AI programmer, physics programmer, graphics programmer, etc. Often has very specific skills –advice: find your niche

What is this course about? Syllabus says: –“An introduction to the fundamental concepts of computer game programming. Students design and develop original games for PCs applying proven game design and software engineering principles.”

Course Objectives Integrate technologies such as multimedia, artificial intelligence, and physics modeling into a cohesive, interactive game application. Introduce the principles of game design that make for a playable experience. Learn and use software engineering, team project management, and prototype presentation principles in a game development context.

Course Topics Game program architecture Game Timing GUI programming for games Tile-based graphics Page & side scrolling algorithms Sprites & bitmap animation Collision detection Physics-based modeling Artificial Intelligence in games Pathfinding Algorithms Render Threading Optimization techniques Game input devices Sound & Music Differing game types, modes, & perspectives Game & level design Rapid Prototyping & game testing Game project management Game design documentation Gaming industry issues Computer game history

Course Textbook Game Engine Architecture Game Engine Architecture by Jason Gregory Published by A K Peters, 2009 ISBN Jason Gregory

Course Textbook Real-Time Collision Detection Real-Time Collision Detection by Christer Ericson Published by Morgan Kaufmann, 2005 ISBN Christer Ericson

Reference Textbooks Rules of Play: Game Design Fundamentals Rules of Play: Game Design Fundamentals by Katie Salen and Eric Zimmerman Published by MIT Press, 2003 ISBN Best of Game Programming Gems Best of Game Programming Gems by Mark DeLoura Published by Course Technology, 2008 ISBN Mark DeLoura C++ Primer Plus, 5th Edition C++ Primer Plus, 5th Edition by Stephen Prata Published by Sams, 2004 ISBN Stephen Prata

What course work is involved? Individual Programming HWs –Implement important algorithms –collisions, pathfinding, scrolling, etc Midterm Exam –test concepts from individual assignments

What course work is involved? (continued) Final Group Project & Presentation –design and develop completely original games –can be serious games –games intended to educate in some way Group Project Benchmarks »will have additional technical requirements –much greater expectations

Serious Games Does not mean it: –is boring –teaches in the tradition sense –is a tutorial It does mean that it: –is a game –should entertain –should get the player thinking about something other than the raw gameplay –should try to enrich the player’s understanding of some subject

An Example: Typist

And your games? Potential sources for game subjects: –courses you have taken at Stony Brook Computer Science? –your hobbies –your personal interests Why do this? –make a game that no one who has ever lived has made before –make a game that no sensible company would ever make Enter it in the IGF Student Division –

11 th Annual Stony Brook University Game Programming Competition Friday, 5/16, 5pm-8pm Invited projects are presented to game industry representatives –past Judges From: Activision, Applied Visions, Atari, Gamelab, Gameloft, Microsoft, Powerhead Games

Project HWs Platforms Languages/Libraries –C/C++ –Windows –DirectX SDK Visual Studio 2012/2013 IDE –free from Stony Brook DreamSpark portal

And the Group Project? We’ll add a couple of technologies –Box2D Physics Engine –Lua Scripting Language

C/C++ C++ is almost the industry standard Why would programmers still use C? Why not Java, C#, Objective C, or Python? C++ Boot Camp –This Friday, 1/31, 3pm – 6:30pm in CS 2129 –Not mandatory, but highly recommended

Windows Game Development PC vs. Console: –expense –processing power –development difficulty full-screen developers learn to hate ALT-TAB API: –

DirectX SDK (June 2010 release or later) A low-level library for making games What can it do for a 2D game? –manipulate the graphics card efficiently render an image to the screen efficiently render text –efficiently play a sound or music Download SDK: – API (ASAP get used to this Web site structure): – DirectX API now part of Windows API

Early Advice 1. Learn C++ ASAP – and I mean really learn it –More on the C++ Boot Camp in a minute 2. Learn to use Visual Studio ASAP, including running projects using DirectX (I’ll give sample code) 3. Think about your original game/team early on 4. Cancel your WOW account immediately

Accounts Windows Lab account, where you will work on your projects –

AN IMPORTANT NOTE ON ACADEMIC DISHONESTY All work you submit for homework, projects, or exams MUST be your own work. If you cheat or aid someone in cheating, you will automatically fail this course and be brought up on charges of academic dishonesty without warning. NO EXCEPTIONS WILL BE MADE!

Where do we start? Documentation Always design first –design your game design doc –design your art storyboard –design your code UML

Game Development as a Process Game Design Document Storyboard UML Design Docs C++ Source Code User Help Document.EXE Program Resource Files:.ICO.BMP, etc. Game Development LOG Bug Database Gameplay & Setup files:.xls,.csv, xml Game Art Assets:.DDS,.WAV, etc.

Why 2D Games? Avoid 3D Artwork Obstacles Many topics are relevant to both 2D & 3D games NOTE: –we will still have to implement our games efficiently

What is a 2D game graphically speaking? Basically 2 things: –Texture rendering (images) –Text rendering Rendering textures & text is easy Efficiently managing the data of the game is not