In my thesis project I managed to design and implement a system, which is used for creating simple, casual video games. A particular property of the tool is that it depends on the .NET Framework in order to allow engineers to work with modern programming languages (such as C#). These languages provide several features, which support the writing of clear and understandable source code. Despite these advantages, most game developers usually avoid using managed code, since this may lead to significant overhead, which is rarely acceptable in case of top level games with a high budget.
This engine links other existing subsystems together in an object-oriented way. The component responsible for the graphics is the commonly used and open-source Mogre. I decided to choose the quite popular PhysX as the project’s physics engine. Music and sound effects are handled by the IrrKlang system. I also tried to keep the relations loose between these modules in order to maintain the possibility of replacing a component with another.
Thanks to my classmate, Nóra Zsemlye, the game engine could be extended by two other subsystems. The related workflow executed by her is presented extensively in her thesis, ‘Designing and implementing script and GUI game engine subsystems in managed environment’. By mutual agreement we gave the name ‘Cactus Game Engine’ to the project.