Entity-based Game Engine Architecture in C++


This is a Design-Build-Test project to produce a game engine using modern C++.

This would be a DBT project that is primarily focused on Software Engineering and Game Development.  Although some kind of demo will be required to showcase the software, producing a playable game prototype would be beyond the scope of the project.

Key challenge: how to design, implement, and verify a performant game engine in C++.

Considerable background research on modern C++ (eg C++ 14) would be necessary to succeed with this project.

Although the artefact (ie your software) will be a key deliverable, we will also need to see:

  • a requirements specification and plan, developed through background research/study and discussions with your supervisor
  • a detailed and reasoned software design, highlighting any key design patterns that have been employed, and descriptions of how these are implemented using modern C++
  • a development plan/log based on the above design (it is normal practice for a design to evolve throughout the development process, especially if using an agile approach)
  • a test design/strategy and log, showing the planned approach to verification and the results of your tests.


Your test would probably be best done as a comparison between two engines with the same design, but coded in C# and C++ (hence you could use your engine from COMP2351) as the basis for the C# version.  The comparison would probably need to explore some aspect of performance, however, you should also consider portability - a C# program is likely to be better optimised for a Windows-based OS than any others.

NOTE: this is likely to be very challenging for anyone who has never used C++ before!

Please make contact with Marc Price asap if you are interested in this project. Note that this project is not limited to a single student - ie you can still do this project if someone else has already chosen it.

Marc Price
Research Question
Is an Entity-based Game Engine Architecture Best Implemented Using modern C++?
Proposed Primary Research
Design an Entity-based Game Engine Architecture, implement it using modern C++, and verify that the design and software meet the original requirements of an Entity-based Game Engine Architecture.