Greetings! Today, I would like to share three games I have made in the past for my Real-Time I course at Shawnee State University: Godotron, Unitron, and Unrealbotron!
Introduction
As part of the Digital Simulation & Game Engineering Technologies Degree at Shawnee State University, students must complete the Real-Time I course which goes over popular game engines and their application. For my cohort taking the course in Fall 2022, this included an overview of Godot, Unity, and Unreal (in that order), and the creation of a game in each engine inspired by the twin-stick arcade shooter Robotron: 2084.
This was my first look at and use of graphical game engines. It would answer for me many questions I had about how game development occurred, but would create many more questions about how game engines worked. Often, I am not satisfied with something simply working; I enjoy knowing why and how things work. This ultimately put me on the path that I am on now: I am making my own game engine and learning that, indeed, game engines are complicated networks of software from various different disciplines!
Perhaps the most important detail for this discussion about this being my first look at graphical game engines is the fact that I wanted to compare them all and saw no better way to do this than to create the same (or at least very similar) game in each engine. Thus, the Robotron Trilogy was born!
The Robotron Trilogy
Godotron
The first (and possibly roughest) rendition of the Robotron: 2084 game was Godotron, a twin-stick shooter wherein the player operates a tank-like vehicle to take out glowing red menaces and their rainbow-colored spawners. The game featured a complete game loop, controller support, music, sound effects, and particle effects. All of the models, music, and sound effects were made by myself and would be used in future renditions. It was (as the name implies) made in Godot.
Unitron
After Godot and Godotron, we studied Unity. At this point, I had a better grip on the workflow in graphical game engines (although, I must admit, it still sometimes feels foreign to me) and was able to focus more so on what Unity had to offer as an engine. Not that there was not a learning curve, but this time I was better prepared to take it. The result of my learning was Unitron, which ironically was the hardest of the Robotron games before I added in features such as auto-healing and power-ups in the form of friendly robots you could save for additional firepower. These necessitated additions added in more fun and a greater sense of objective to the game; after all, seeing a red flying saucer hover past a pile of green bits speaks for itself.
Unrealbotron
The final engine we studied was Unreal Engine. We used a combination of Blueprints as well as some C++ in order to create our projects. With a good understanding of how to implement the features I needed thanks to practice in Godot and Unity, I was able to embellish as much as I could on this final game in the trilogy. It was by far the prettiest of the trilogy, and perhaps the most engaging and balanced. Also, you can play it here!
Reflection
I learned a lot about game engines and how to use them in Real-Time I. Perhaps more importantly, I learned where resources were to get answers to any questions I had about how to implement something within a game engine. Additionally, as aforementioned, it peaked my interest in how game engines worked; too many times during development had I noticed that I traded understanding of what exactly was breaking in my code each time I encountered a bug for ease of implementation of my entire game. The experience would cement my preference of plain, humble code over flashy, impressive GUIs.
Thank you for reading my post! Feel free to leave a comment below!