CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup ...
-
Upload
terence-porter -
Category
Documents
-
view
215 -
download
1
Transcript of CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup ...
![Page 1: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/1.jpg)
CS 425 Game Programming I
Jan M. Allbeck
![Page 2: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/2.jpg)
Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What are event loops? Dark GDK tutorials
04/21/232
![Page 3: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/3.jpg)
Introductions
04/21/233
Jan New Assistant Professor in CS at GMU From University of Pennsylvania (not Penn State) Background in computer graphics and animation Help develop game concentration Most enjoy racing games [email protected] http://cs.gmu.edu/~jallbeck/ Office hours: Wed. 3:30-5:30pm in ENGR 5324
Ok?
![Page 4: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/4.jpg)
Introductions
04/21/234
You? Have some programming experience! Know C++? Know SVN? Know how to build a game? Took cs325?
What is your name? Favorite types of games? What do you want from this class? What kind of job do you want when you graduate?
![Page 5: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/5.jpg)
Expectations
04/21/235
Learn a new language Gain experience
Object oriented design Using existing libraries Building largish software system Working in groups Working with someone else’s code
Learn software version management Create segment for demo reel Hear from real game developers Class participation
![Page 6: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/6.jpg)
04/21/236
4 classes will be held else where: Oct. 6th
Nov. 10th
Nov. 17th
Nov. 24th
Robinson 203B? Assessment
Final Working game
![Page 7: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/7.jpg)
Demo of last year’s game
04/21/237
![Page 8: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/8.jpg)
What sort of game would you like to build?
04/21/238
Feasible Reasonable assets Reasonable algorithms Fun
![Page 9: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/9.jpg)
What do you need to build a video game?
04/21/239
Assets Environment Objects or models including characters Animations
Code Graphics Loaders Animation playback Controllers Collision detection and response Cameras Lights
Version control
![Page 10: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/10.jpg)
Tools
04/21/2310
Dark GDK SVN Google code
Everyone needs an account Blackboard?
![Page 11: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/11.jpg)
Dark GDK
04/21/2311
http://gdk.thegamecreators.com/ Free game development environment Harness the power and performance of C++
![Page 12: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/12.jpg)
Dark GDK features
04/21/2312
Works with Microsoft Visual C++ 2008 Express 6 2D Image Formats Supported 5 3D Object File Formats Supported Bone Based Animations Binary Space Partitioning (BSP) Support Polygon Collision and Response Environment Mapping Automatic Camera and Camera to Object
Orientation Commands Create, Position and Color Lights Build, Texture and Map Landscapes
![Page 13: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/13.jpg)
Dark GDK Demos
04/21/2313
![Page 14: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/14.jpg)
SVN
04/21/2314
http://subversion.tigris.org/ Subversion is an open source version control
system. Change management system CVS? Tortoise
http://tortoisesvn.tigris.org/ A Subversion client, implemented as a windows
shell extension. Not an integration for a specific IDE
![Page 15: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/15.jpg)
Google code
04/21/2315
http://code.google.com/p/cs425-fall-2009/ Everyone will need a Google account
Email me your google user name Open source Project info Downloads Wiki Issues SVN
![Page 16: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/16.jpg)
Moving on to C++
04/21/2316
![Page 17: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/17.jpg)
Introduction to VS and C++ Show how to get around VS Show a bit of the C++ syntax Talk briefly about header files and source files
and libraries Lie to you Resources on wiki Provide you with an example to work from Get familiar with the lingo
![Page 18: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/18.jpg)
Live VS Demo
04/21/2318
![Page 19: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/19.jpg)
Types of Errors Syntax/compiler Linker Run-time Logic
![Page 20: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/20.jpg)
Tips Don’t be afraid to fail. Redesign. Break it apart: data and methodology. Think and draw things. Talk it out with your teddy bear or action figure. Compile as you go. Iterative programming. Try and try again. Never really
done. Experience is key. Test, test, test. Things are going to build on top of each other. Powerful. There is more than one way to do things and there
isn’t necessarily a right way.
![Page 21: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/21.jpg)
Informal Software Engineering Concepts Ease of programming Simplicity Elegancy Space vs. Speed Reusable and understandable Robustness and expandability Portability (OSX, WinXP, etc) Philosophies and standard practices
![Page 22: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/22.jpg)
Moving on to Event based Programming
04/21/2322
![Page 23: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/23.jpg)
Synchronous Programs
Program WAITS for reads and writes to complete before continuing
Do stuff Read Write Do stuff Write … End
![Page 24: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/24.jpg)
Asynchronous Programs – User Interaction
Interactive program runs in an infinite loop! Program flow is created by events:
User actions (interactive devices) Program actions (redraw) Operating system actions (quit)
while (not done) { event = system.GetEvent(); ProcessEvent(event); UpdateDisplay(); }
![Page 25: CS 425 Game Programming I Jan M. Allbeck. Outline Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What.](https://reader036.fdocuments.us/reader036/viewer/2022081516/56649e9d5503460f94b9eab9/html5/thumbnails/25.jpg)
Dark GDK Hello Word! Demo
You didn’t really think you were going to make it through a computer programming class without a
“hello world” example?
04/21/2325