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

Post on 12-Jan-2016

215 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

04/21/232

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 jallbeck@gmu.edu http://cs.gmu.edu/~jallbeck/ Office hours: Wed. 3:30-5:30pm in ENGR 5324

Ok?

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?

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

04/21/236

4 classes will be held else where: Oct. 6th

Nov. 10th

Nov. 17th

Nov. 24th

Robinson 203B? Assessment

Final Working game

Demo of last year’s game

04/21/237

What sort of game would you like to build?

04/21/238

Feasible Reasonable assets Reasonable algorithms Fun

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

Tools

04/21/2310

Dark GDK SVN Google code

Everyone needs an account Blackboard?

Dark GDK

04/21/2311

http://gdk.thegamecreators.com/ Free game development environment Harness the power and performance of C++

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

Dark GDK Demos

04/21/2313

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

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

Moving on to C++

04/21/2316

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

04/21/2318

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

04/21/2322

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?

04/21/2325

top related