Advanced Game Development
Overview
- Overview of game engines
- The game loop: structure, timing, and update cycles
- Game class structure and initialization flow
- Brief review of computer graphics concepts (rendering pipeline, frame buffers, and sprites)
- Game object models
- Monolithic vs. component-based object models
- Design of reusable and modular game objects
- Integration of game objects into the game loop
- Management of object lifecycles and memory
- Input handling and basic movement
- Handling of keyboard, mouse, and controller input
- Mapping of input to player actions
- Implementation of basic movement and camera control
- Introduction to Newtonian physics (velocity, acceleration, and friction)
- Collision detection and response
- Static vs. dynamic object collisions
- Point tests, bounding boxes, and bounding circles
- Line segment test and ray casting techniques
- State-machine decision making
- Finite state machines for Artificial Intelligence (AI) behaviour
- Design of AI agents with modular state transitions
- Implementation of simple enemy or non-playing character behaviour
- Pathfinding algorithms
- Graph representations of game worlds
- Breadth-first search and depth-first search
- Heuristics and greedy best-first search
- A* search and Dijkstra’s algorithm
- Navigation meshes and grid-based pathfinding
- Game state representation and decision-making
- Game trees
- The minimax algorithm
- Alpha-beta pruning
- Game programming patterns
- Common design patterns, including command, observer, singleton, and state
- Decoupling patterns, including bytecode, event queue, and service locator
- Optimization patterns, including object pool, spatial partition, and data locality
- AI tools for game programming
- Using AI tools to automate writing repetitive code
- Ethical considerations in AI-assisted code creation
The topics are covered through in-class lectures, laboratory assignments, projects, readings, and research.
Assessment will be in accordance with the Douglas College Evaluation Policy. The instructor will present a written course outline with specific evaluation criteria at the beginning of the semester. Evaluation will be based on the following:
|
Labs |
5-25% |
|
Assignments |
0-20% |
|
Projects |
0-30% |
|
Term Test(s) |
20-35% |
|
Final Exam |
25-40% |
|
Total |
100% |
In order to receive a D grade (or higher) in the course, students must receive an overall course grade of at least 50% and a grade of at least 50% on the combined weighted examination components (Term Test(s) and the Final Exam).
Upon successful completion of this course, students will be able to:
- describe key software architecture principles and programming patterns commonly used in modern game engines;
- implement core game systems, including the component game object model, basic physics simulation, artificial intelligence, collision detection, and input handling;
- apply essential mathematical concepts including vectors, matrices, and transformations to solve problems in game engine programming;
- design and write object-oriented programs for games based on the component game object model;
- utilize an integrated development environment effectively for development, debugging, and optimization;
- apply common game programming patterns to design and implement efficient, maintainable game engine features;
- use relevant generative Artificial Intelligence (AI) tools to automate repetitive game engine programming tasks;
- collaborate effectively in team-based development environments, using version control systems and agile practices to manage projects.
Consult the Douglas College Bookstore for the latest required textbooks and materials.
Example textbooks and materials may include:
- Sanjay Madhav. (Current Edition). Game Programming in C++. Pearson.
Requisites
Course Guidelines
Course Guidelines for previous years are viewable by selecting the version desired. If you took this course and do not see a listing for the starting semester / year of the course, consider the previous version as the applicable version.
Course Transfers to Other Institutions
Below are current transfer agreements from Douglas College to other institutions for the current course guidelines only. For a full list of transfer details and archived courses, please see the BC Transfer Guide.
| Institution | Transfer details for CMPT 4167 | |
|---|---|---|
| There are no applicable transfer credits for this course. | ||