Developing a Game Engine vs. Developing a Game
Self-realization when I was trying to be a game engineer.
Ever since I started developing games in Unity3d, I was obsessed with how game engines work behind the scenes. Not just with PBR (Physic Based Rendering), or Physics updates, but how they were built and designed. What the relationships of objects inside, and how they interact gracefully.
I have tried making my own attempts at making game engines and 90% of them were all discontinued due to time constraints, or I have no idea on what I am actually doing. I bet most of it would fall on the latter. These are the most common mistakes of those who are just starting out in game development.
Finally, I got a reason to make my own game engine using Java. It was a project for one of my classes when I was pursuing my Master’s Degree. Take note that I was not a Computer Science Graduate, so I had to take pre-requisite subjects such as Introduction to Computing I, and II.
Our final project was to create a very simple game using Java, and Swing library. Prior to taking this class, I was already a developer for 2 years. Due to boredom, and to challenge myself further, I decided out of the blue that I will make a Game Engine.
It took me 3 months to make a fully working engine, and a crappy editor but it works. My partner and I were able to make a fully working 2d multiplayer game in under a day.
But I saw a problem.
This is when I watched a video from DigiPen in their Computer Architecture class. It said that architectures do matter, but when prototyping, you just have to make do with what you have. Then it hit me.
We could have created a better functioning game, but I focused solely on making the game engine. It was cool to have one, but It didn’t cut.
I realized that at the birth of game development, there were no game engines available for game developers to use. They just start making the game itself. Without a game, there would never be a game engine.
Upon realizing it, we game engine enthusiast should have been making games instead of making engines. Unity, Unreal, CryEngine, all those big game engines in the industry were made AFTER they developed games.
Now the challenge is just to make OpenGL window working, basic vector calculations and just moving god damn things inside that window. Then iterate, and refactor. Iterate, and refactor. Iterate, and god damn refactor.
For those who are curious about my Game Engine please follow the repository here. This project is purely for academic purposes only.
As for you developers who want to release a game, just make the game. The engine comes right after.