Maze Escape

3D maze game written in C# and utilising OpenTK. Download here!

Maze Escape is a simple game written in C# and primarily leveraging OpenTK, A C# wrapper that combines the functionality of the OpenGL and OpenAL libraries. The main objective of the game is to collect 3 coins in order to escape through the portal while being chased by a spaceship. If the spaceship catches up to you, you lose a life. Once you lose all 3 lives, you lost the game. If you escape through the portal, you won the game.

This project was developed in the final year of my undergraduate degree at the University of Hull as part of my ‘Games Architecture’ module. It was created to supplement an analysis of multiple game engine designs and to critically evaluate the benefits and the drawbacks of such designs. This game was designed using the Entity Component System (ECS) architecture. The framework was extended to implement specific features such as pathfinding and audio to relatively enhance the experience of playing the game. Most of the reusable functionality was separated out into a separate .dll file named ‘Ajax’, a quick name for the engine and its reusable code.

This game was my first introduction to game engine architectures, which makes it quite primitive in comparison to my more recent projects. That being said, there are both objective pros and cons for developing this game. One major benefit was being able to structurally modularise my code into separate components and systems, making it much easier to implement new features and reuse existing features. A major drawback was the hard-coded nature of the levels, both in terms of structuring the level and the collision detection.

In terms of things that I think could be improved upon with this game, the pathfinding for the spaceship could use a significant overhaul as it currently uses Manhattan distance to close in on the player at a slower speed; more intersection testing between object primitives such as spheres, planes, and meshes; more obstacles within the environment so that the spaceship is not the only present danger in the game; designing the level as a model and importing it allowing for quick iteration and multiple levels.


Video