- To introduce the main issues surrounding the computer games architecture.
- To introduce the fundamental concepts underpinning computer games development (game physics, game artificial intelligence, content generation).
- To provide practical experience of software engineering associated with computer games.
Computer Game Architecture
Introduction (2 lectures)
- History of computer and video games
- Game genres
Game Structure basics (1 lecture)
Game engines (4 lectures)
- Programming video
- Programming audio
- Programming user controls
3D Maths (2 lectures)
Collision detection and collision response (3 lectures)
Tracking and shooting (1 lecture)
Spatial data structures (2 lectures)
- Octrees, KD-Trees, BSP Trees, Spacial hashing
Physics engines (1 lecture)
Game Artificial Intelligence
Decision making (3 lectures)
- Playing board games: turn-based games; chance games
- Event driven AI
Game agents (6 lectures)
- FSM and reactive architectures
- Reactive planning and rule systems
- Machine learning
- Group behaviour. Agent coalition. Flocking
Navigation and pathfinding (2 lectures)
Levels, Mazes, Quests (2 lectures)
- Rabin, S. Introduction to Game Development. Charles River Media, 2005.
- Ahlquist, J.B. and Novak, J. Game Development Essentials: Game Artificial Intelligence. Thomson learning, 2008.
- Rabin, S. AI game programming wisdom series. Charles River Media, 2002-2008.
At the end of the module, the student will have:
- An understanding of different design issues related to computer games development: game structure, game engine, physics engine;
- An appreciation of the fundamental concepts associated with game development: game physics, game artificial intelligence, content generation;
- The ability to implement a simple game using an existing game engine;
In a typical week, students will be expected to attend three hours of formal lectures and will have the opportunity of one hour of supervised computer lab time in which they can receive guidance regarding the continuous assessment tasks of the module. Lectures will introduce students to the academic content and practical skills which are the subject of the module, while computer practicals will allow students to practise those skills. In addition, students will be expected to devote 7 hours of unsupervised time to solving continuous assessment tasks and private study. Private study will provide time for reflection and consideration of lecture material and background reading. Continuous assessment will be used to test to what extent practical skills have been learnt, in particular, assessment tasks will be solved individually and each solution comprises the resolution, using sound software engineering techniques, of the given problems expressed in terms of a requirements statement. A written examination at the end of the module will assess the academic achievement of students.