250 likes | 321 Views
CS 425 Game Programming I. Jan M. Allbeck. Outline. Introductions Expectations Tools and setup Quick introduction to C++ and Visual Studio What are event loops? Dark GDK tutorials. Introductions. Jan New Assistant Professor in CS at GMU From University of Pennsylvania (not Penn State)
E N D
CS 425 Game Programming I Jan M. Allbeck
Outline • Introductions • Expectations • Tools and setup • Quick introduction to C++ and Visual Studio • What are event loops? • Dark GDK tutorials
Introductions • 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 • jallbeck@gmu.edu • http://cs.gmu.edu/~jallbeck/ • Office hours: Wed. 3:30-5:30pm in ENGR 5324 • Ok?
Introductions • 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?
Expectations • 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
4 classes will be held else where: • Oct. 6th • Nov. 10th • Nov. 17th • Nov. 24th • Robinson 203B? • Assessment • Final • Working game
What sort of game would you like to build? • Feasible • Reasonable assets • Reasonable algorithms • Fun
What do you need to build a video game? • Assets • Environment • Objects or models including characters • Animations • Code • Graphics • Loaders • Animation playback • Controllers • Collision detection and response • Cameras • Lights • Version control
Tools • Dark GDK • SVN • Google code • Everyone needs an account • Blackboard?
Dark GDK • http://gdk.thegamecreators.com/ • Free game development environment • Harness the power and performance of C++
Dark GDK features • 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
SVN • 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
Google code • 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
Moving on to C++ 16 10/27/2014
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
Live VS Demo 18 10/27/2014
Types of Errors • Syntax/compiler • Linker • Run-time • Logic
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.
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
Moving on to Event based Programming 22 10/27/2014
Synchronous Programs • Program WAITS for reads and writes to complete before continuing • Do stuff • Read • Write • Do stuff • Write • … • End
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(); • }
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? 25 10/27/2014