I took the featured photograph in a trekking event. It shows a pine tree forest which is near the country I live, and I like the photo a lot! 🙂

I am really excited to start implementing my own game engine I have been dreaming for a long time.

The name of the engine(Göknar) is coming from the Turkish translation of fir which is a very beneficial tree for our health and the nature.

I started with project setup, engine class, window, input managers, and renderer. Basically the workplace has two projects which are Goknar exported as a dll file, and GameProject exported as an executable that uses Goknar.dll.

Firstly the Engine class is responsible for all the engine capabilities. It will create WindowManager, InputManager, and Renderer. It also has a global Engine variable for other classes to be able to reach it with ease.


Engine class is where every core operation is created. WindowManager, InputManager, GraphicsManager, ObjectManager, and Renderer are some examples of the managers for now. Furthermore, we have initializing function Init(), Run() function to control managers and core operations, BeginGame() function to call every registered object’s BeginGame() function, and Tick(float) function to call all the tickable object’s same named function.

Window Manager

WindowManager manages all the window operations such as opening a window, resizing it, making it fullscreen, setting the multi sampling anti aliasing value etc. This is the first manager to be built since we need a window to use other managers.


Source code is available on Github.