2. What is a Game? A game is a system in which players engage in an artificial conflict, defined by rules, that results in a quantifiable outcome. Chapter 7. Rules of Play, 2004, MIT Press
3. Key Elements of the Definition A game is a system. Players interact with the system. A game is an instance of conflict. The conflict in games is artificial. Rules limit player behavior and define the game. Every game has a quantifiable outcome or goal. Chapter 7. Rules of Play, 2004, MIT Press
4. Special Qualities of Digital Games Immediate but potentially narrow interactivity Manipulation of information Automated complex systems Networked communication Chapter 8. Rules of Play, 2004, MIT Press
5. How to frame Digital Games? Most two- and three-dimensional digital games are examples of soft real-time interactive agent-based computer simulations. Chapter 1. Game Engine Architecture, 2009, A K Peters, Ltd.
6. Digital Games as Soft Real-Time Simulations In most games, an imaginary world is modelled mathematically so that it can be manipulated by a computer. An agent-based simulation is one in which a number of distinct entities (agents) interact. A digital game is interactive, meaning it must always respond to (unpredictable) input from its human players. Chapter 1. Game Engine Architecture, 2009, A K Peters, Ltd.
7. Digital Games as Soft Real-Time Simulations All interactive digital games are temporal simulations, meaning that the state of the game world changes over time. The presentation and response of a digital game must be in real-time in order to convey to the players the feeling of control. A “soft” real-time system is one in which missed real-time deadlines are not catastrophic. Chapter 1. Game Engine Architecture, 2009, A K Peters, Ltd.
8. What is a Game Engine? A game engine is a collection of extensible software which can be used as the foundation for many different games without major modification. Chapter 1. Game Engine Architecture, 2009, A K Peters, Ltd.
11. Tools of the Trade Integrated Development Environment Revision Control Debugging Profiling
12. Integrated Development Environment A combination of project manager, text-editor, compiler and debugger into a single tool. Facilitates rapid-prototyping and decreases learning curve for new developers. Extensible IDEs can be configured with plugins for automating many other development tasks.
13. Revision Control Revision control is the process of managing multiple versions of a piece of information. Automatically keeps track of the history and evolution of your project. For every change there is a log of who made it, why they made it, when they made it and what the change was. Facilitates collaboration on multi-developer projects, by helping to identify and resolve potential conflicts. Helps recovering from mistakes by allowing to revert to an earlier version of one or more files. Bryan O’Sullivan, Mercurial: The Definitive Guide, 2009.
14. Debugging There is no software without bugs! Programming errors can be even harder to locate in real-time interactive systems. Dynamic visualization of program state is fundamental to understand what’s going on.
15. Profiling Profilers use a wide variety of techniques to collect data about a program’s behavior. Fundamental when optimizing speed and memory usage. Premature optimization is the root of all evil.
16. Starting Toolkit High-level Object Oriented Framework Cross-platform Codebase Revision Control Low-level Graphics API
18. Bibliography Rules of Play: Game Design Fundamentals, Katie Salen & Eric Zimmerman, 2004, The MIT Press. Game Engine Architecture, Jason Gregory, 2009, A K Peters, Ltd.