For this project, you should choose an arbitrary game that is played in a 2D or 3D environment with one or more players. The aim of this project is to implement a game engine with 2D or 3D graphics and suitable dynamics (physics; collision detection) simulations to run this game and networking capabilities. You are free to focus on any one or any combination of these elements, but the focus of this project is the engine and not a particular game.
The focus could be specifically on 2D or 3D environments, how to generate, store, manage and render them. You could consider specific rendering effects, e.g, towards realism in real-time or some non-photorealistic rendering approach. You may consider realising the usual Newtonian physics for the specific game context or consider alternative physics, such as an adaption of quantum mechanics for a game or maybe individual pixel-level dynamics. Or instead focus on low latency networking.
You will need good programming skills in a language of your choice (C, C++, Java, etc). An existing game engine (unreal, unity, godot, ...) can be used, but it must be clear what you are coding vs. what are using from it to have a sufficient computer science challenge. You will have to acquire a good understanding of graphics and game dynamics/physics simulation/collision detection, related mathematics, and networking techniques. You likely require a suitable GPU for the level of graphics, etc. you try to achieve (only limited options are available from university). Details must be discussed with me during project selection to decide upon the precise project.
Ideally, the code would be made available under the AGPL v3 or compatible license to integrate with our other code.