Let’s start with a game engine

Hi, my name is Dariusz and I decided to write a blog about complex 2D/3D game engine development. It is not stricte tutorial, but rather a little documentation which describes written code.

My objective is to gather different game engine algorhitms and architecture in one place. It involves for instance: rendering, AI, networking, audio, gameplay systems and many others.

While writing this blog I also learn it, so do not expect some professional stuff. I do it mostly to increase my motivation to learn. But I hope it will be helpful for other people.

Greetings and nice reading!!!


Basic Architecture

Ok, let’s start.

I won’t write too much. I just will place general descriptions.

I create a 3D engine with a level editor for Windows platform. First thing I’m going to do is preparing base architecture of an engine only.

Engine will be entity-component-system – very similar to Unity. Here is code (in Basic Architecture folder).

Ok then… In Core folder we have some basic classes.

Runable class is base for System and IManager classes where System may consists of many IManager specific instances. In the future I will be creating different managers responsible for rendering, events, audio and many others. Each manager must be put to System’s _managers field in derived class constructor to make it work.

Then I inherit an App from System. App is a singleton. Instance of singleton must be defined in one more subclass – the last one, which is an Engine and here I will add managers which will bring life to the program.