This module had us creating a game engine using the entity component system architecture. The game includes multiple scenes for menus, gameplay, high scores and game states, alongside a camera system, HUD, audio, lighting and collision detection. The engine is separated from the game-specific code and is designed to be reusable and modular.
Entities are composed of independent components containing data, while systems process the logic associated with those components, such that a velocity compontnet would store that entities velocity vector, and a velocity system would move the entity by that value. Managers provide additional functionality such as scene management, input, collision handling and high-score networking.
Distributed Systems
I also implemented a client/server high-score system. The game client communicates with a separate high-score server to retrieve and submit scores, with the server storing the data in a file.
I coverd this subject more extensively in my distributed systems module.