CS 3540 at UVU Dr. Brian Durney Computing and Networking Sciences Why Game Programming? It’s fun! (Most of the time) It’s also a whole lot of work: • game design • software design and implementation • art, music, sound, writing • testing Nine Billion Dollars Computer games are a big industry. "More money is spent on games than on movies." ...but... Research Yes, real research: Human-level AI’s Killer Application: Interactive Computer Games John E. Laird and Michael van Lent University of Michigan No, they’re not talking about chess. My favorite things: • • • • • • Graphics Programming Artificial Intelligence Network Programming Interesting Math Problems Game Design Writing and Art What we will do this term: • Graphics • Game Design • Game AI Graphics Why I Hate DirectX 10. You can’t uninstall it. 9. Version changes led to crashes and character mutations. 8. There aren’t any really good books for the current version. 7. It’s from Microsoft. 6. No more DirectDraw. Why I Hate DirectX 5. Exporting/loading 3D models is a pain. (conv3DS.exe is junk.) 4. Good luck using the documentation (information overload, gaping holes, it moves…) 3. It’s a major pain to debug. 2. It’s not portable. 1. Complicated is too kind a word. Indirect DirectX Rather than using Direct X directly, we will use a game engine. • Portability • Can program at a higher level Game Engine Review and Demonstration • • • • Choose a game engine. Write a review. Write a demo program. Present your review and demo in class. • The assignment web page has a list of game engines. Game Design What makes a good game? Game Review and Presentation Look at a commercial game in terms of the game design principles we discuss in class. Interactive Fiction • Text games • Venerable ancestors of ... • Game balance, story line, nonlinear plots, characters, combat, etc. • Story generation Game AI Write a program to control a bot. We will also look at this game in terms of graphics and game design. http://universe.tc.uvu.edu/uvbots/index.html UV Bots Display Client Server Bot Client Bot Client Bot Client http://universe.tc.uvu.edu/uvbots/index.html Programming Problem How can the server efficiently tell when one bot hits another? Programming Problem How can the display keep the beam from going through obstacles? AIIDE Artificial Intelligence in Interactive Digital Entertainment Story generator and director • Automated dungeon master – Creates map – Creates plot/storyline – Runs adventure Easy, right? A project I’m working on… Universe • • • • • • • • Long-term game development project Wide range of clients Wide range of players “Serious games” “Not-so-serious games” Recruiting Research: game design and game AI Independent study, senior project possibilities Project • I encourage groups of 2 to 3 students for the project. • Specialize in graphics, game AI, game design. • Complete – Not necessarily a complete game, but should be a complete game, tool, or library. • Programming required – Not just a level design – I must be able to read your source code and play your game. Project Ideas • UV Bots – map editor – 3D display, Flash/Flex display, ... – game design and mechanics • Universe – spaceship combat – trade and exploration – mini games Project Ideas • Converters for 3D model formats – Export .x from Blender for Irrlicht – Import/Export .ms3d in Blender • Story generator and director – Use AI planner to generate and analyze plots – Choose manageable subproblem and implement for NWN, UT, Half-life, text game, ... Project Ideas • ORTS http://www.cs.ualberta.ca/~mburo/orts/ • Interface for commercial game • Simulator software for the Christa McAuliffe Space Education Center (if they're interested...) www.spacecamputah.org • Your idea here...