Game Engine Architecture

Hi All! This is the start of a series of blogs about designing a game engine during a class at Champlain College. It will be based in mostly c++ and designed to be cross platform.

First off, I’ll start with my goals for the engine. I don’t have any specific sort of game in mind, but I do have a collection of features that I want to use in creating almost any game. As a developer I’d like easy and complete access to the position of each game object as well as any physics components. I would also like to be easily able to create and load multiple scenes. I want collision events for running into or passing through a collider. That necessitates colliders and collision. I’d like a library of components that I can attach to game objects and some way to create my own components to add to that library. Controller input and debugging beyond console logs would be a bonus.

The second consideration is finding a cross platform IDE. The obvious choice is Visual Studio, however it has several drawbacks including not supporting Linux and questionable C++ support for Mac. It’s also not free for commercial use. Also in consideration is Visual Studio Code which is free, but is not a full fledged IDE. I believe this would add extra work in finding a reliable plug-in or connecting a compiler like GCC. However it does support Mac, Linux, and Windows. The third contender is Code::Blocks which is open source and supports GCC and Visual C++, but the mac version has not been maintained since 2013. The final IDE is CodeLite which appears to cross platform and a fully featured IDE. It is open source and supports a variety of compilers.

Given that CodeLite is the only fully featured IDE that supports all major operating systems it is the clear choice. The caveat is that I have absolutely no experience with it beyond downloading it and verifying that it looks like an IDE. The runner up is VS Code and will be my fallback option.

Leave a Reply

Your email address will not be published. Required fields are marked *