Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering for Computer Games

Similar presentations


Presentation on theme: "Software Engineering for Computer Games"— Presentation transcript:

1 Software Engineering for Computer Games
Chris Ballinger 04/08/13 CS 791

2 Outline Architecture Considerations Unique Problems Common Issues
Interesting Resources Questions How many of you have played or are familiar with any kind of video game? From a software engineering point of view, what components of a video game can be strongly separated from each other?

3 Architecture Considerations
Several separate components Sound, Graphics, Physics, Input, Networking, AI May not all be developed in-house (COTS) Middleware Many possible platforms Only recently has multithreading become a consideration Rarely considers academic research concerns Middleware example: Punkbuster COTS (Commercial off the shelf) examples: Torque GFX engine, FMod Sound engine, Bullet Physics ORTs, Strategus

4 Architecture Considerations
Type of game Regardless of the type of game, developers have the same nonfunctional requirement that always provides a challenge. Any guesses? Hint: It’s the entire purpose of the game

5 Unique Problems Unique nonfunctional requirement “Fun”
Games present a challenging nonfunctional requirement: fun. Hard to define, and may vary depending on the type of game (shooter, strategy, etc), and subjective(maybe I like mini-maxing my stats, you do not)

6 Common Issues “Feature Creep” Team Communication
Major source of delays A necessary evil Team Communication Teams are formed by members from many different disciplines Poorly defined domain terms “Game engine”

7 Interesting Resources
Information Gamasutra Game Developers Conference (GDC) USC Game Innovation Lab Gamasutra Website for news on all areas of game development, such as programming, design patterns, art asset creation and marketing GDC The primary industry conference for all things related to game development. Gives the cutting edge in gaming technology and techniques USC Game Innovation Lab Research into game design, aesthetics, emergent worlds. Some professors in charge of the lab have industry experience Unity Already know everyone is familiar with this tool, since I presented on it earlier UDK Similar tool to Unity, providing a game engine with a complete programming environment and content pipeline. Engine been used for blockbuster games such as Batman: Arkham Asylum Doxygen Not strictly related to game development, but still useful, thought I’d mention it since no one else has. A tool to automatically generate well organized documentations, simply by following their comment format/convention. Similar to Javadocs. Can use graph-viz to produce additional chart such as collaboration diagram (which classes use other classes), inheritance diagram, call graph, etc, even if you havent commented your code.

8 Interesting Resources
Tools Unity

9 Interesting Resources
Tools Unity Unreal Development Kit (UDK)

10 Interesting Resources
Tools Unity Unreal Development Kit (UDK) Doxygen

11

12 Questions

13 Test Questions What are the common issues in game development?
What are the differences between software engineering for games and software engineering for other types of projects?


Download ppt "Software Engineering for Computer Games"

Similar presentations


Ads by Google