The observable trends of higher expectations towards the gaming industry continuously strengthen the drive to create games that are more complex and contain a more faithful virtual reality. The most important requirement of the field is, however, to minimize the noticeable software bugs and make them invisible to the player if possible – since these have a negative impact on the overall gaming experience. The resulting requirements imply that the architecture of the newer and newer software solutions call for an increasingly complex design in order for them to be cost effective and preferably reusable in the future.
In my thesis I targeted the development of one such gaming software that tries to comply with the needs mentioned above, with an architecturally well-designed solution. The game itself is built around a labyrinth, with most of the conceptual ideas taken from the movie “The Maze Runner”. I created the application building on the Unreal Engine game engine.
During the course of this paper I discuss the established gameplay, and I also greatly stress the architectural design involved in the process with an emphasis to keep as great a portion of the codebase that is to be implemented platform-independent as possible. I also elaborate on the mathematical problems that arise with the creation of the labyrinth in detail.
The completed architecture is based on the Model-View-Presenter pattern, with which only the implementation of the View component is platform-dependent. With the separation of concerns the rest of the components can be covered with unit tests, that may lower the amount of bugs present in the code. To achieve platform-independence a series of utility classes – like containers and helper classes – are indispensable that I implemented in order to solve the task.
The success of the final architecture is practically proven by the minimal amount of platform-dependent code that I had to write in order to make it functional with the Unreal Engine. The flexibility of the architecture may also be warranted further by a well-thought test suite and the implementation with the use of a different game engine. Furthermore, to improve upon the gaming experience, it would be beneficial to extend the software with additional elements.