An open API service indexing awesome lists of open source software.

https://github.com/almasb/ci517

Learning material for the Game Engine Fundamentals module at the University of Brighton
https://github.com/almasb/ci517

Last synced: 5 months ago
JSON representation

Learning material for the Game Engine Fundamentals module at the University of Brighton

Awesome Lists containing this project

README

          

# CI517
Learning material for the Game Engine Fundamentals module at the University of Brighton

## Tentative Structure

1. Introduction to module / overview / C++ recap (vars, conditionals, loops, functions)

2. Introduction (continued) to C++ (classes, containers, memory management)

3. Game engine architecture (mapping a game engine architecture against a game architecture, what subsystems exist and what they do)

4. Application framework (events and event bus, how do these subsystems communicate with each other, how do they communicate with the game?)

5. Entity-Component System (how do we represent game objects? where do we store game objects? how do game objects know what to do? how do we manage many game objects?)

6. Physics subsystem (basic vector maths, simulation and collision detection, how do game objects interact with each other? how do they follow physics rules? what approximations do we apply to game objects simulation?)

7. Graphics subsystem (how do game objects get drawn to the screen? how do we talk to the GPU? how can we abstract away the low-level complex details to simplify our representation of drawing to the screen?)

8. Audio subsystem (how do we store sound effects and music? how we can play these stored audio files? how can we implement positional sound?)

9. Scripting and domain-specific languages (how can we write bespoke code per game object without adding complexity to engine/game code? how can we improve the compile time of game code? how can we make it easy for the community to contribute their additions to the game without changing any source code?)

10. Achievements / gameplay (how can we integrate an achievement system into an engine? how can we implement in-game tutorials, side quests, quick-time events?)

11. External tool integration (how do we benefit from supporting external tools? how can we add support for external tools?)

12. Conclusion / recap

## Final

1. Introduction and overview (Pong)
2. C++ recap (Breakout, Space Invaders)
3. Game engine architecture (Unreal, Unity)
4. Application framework (Godot, FXGL)
5. Entity-Component System (Overwatch, Minecraft)
6. Game Physics and Maths (Arx Fatalis, Sony PS3, Valve games)
7. Graphics and audio (Star Wars Jedi Academy, Metal Gear Solid 5, Telltale games)
8. AI (F.E.A.R, Assassin's Creed)
9. Scripting (TESV Skyrim)
10. Achievements and gameplay (Dragon Age Inquisition)
11. Tool integration (Tiled, 3ds max)
12. Conclusion

## Session Structure

| Time | Action |
| ----:|-------|
|0-5 | Setup |
|5-10 | Introduction |
|10-25 | Point 1 |
|25-30 | Break |
|30-35 | Activity |
|35-50 | Point 2 |
|50-55 | Break |
|55-60 | Conclusion |

Repeat for session 2