cs 425 game programming i jan m. allbeck. outline introductions expectations tools and setup ...

25
CS 425 Game Programming I Jan M. Allbeck

Upload: terence-porter

Post on 12-Jan-2016

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: CS 425 Game Programming I Jan M. Allbeck. Outline  Introductions  Expectations  Tools and setup  Quick introduction to C++ and Visual Studio  What

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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