Marek Kost

Game developer

The time has finally come for me to close the first milestone in my engine development career (never thought I’d say these words).

First milestone description

It took me around 6 weeks of work to put together what I would consider a solid foundation of an engine I would like to make a game in some time in later half of this year. As you can see from the milestone description, wording was pretty vague and that’s on purpose because I didn’t really know what I was going into. But as time went by, I have got better and better at guesstimating what is and what isn’t doable in reasonable time frames.

Before I started working on the engine, I took some time to learn (very very very) basic rendering concepts and wrote (more like modified and extended) a vulkan renderer. After I had some basic understanding of rendering, I could start working on building an engine around it. You could argue it’s better to make an engine first and renderer later but I like to look at things, what can I say. Anyway…

What is Sopka engine?

Sopka engine is my own 🙂 custom made (soon to be) game engine developed in C++. It uses still very primitive custom Vulkan renderer and EnTT framework, which is a huge help. Even though I could write my own Entity-Component-System with some extra time. I’d say why reinvent the wheel, EnTT is great.

Loading of simple scene with one camera and a quad

Sopka engine features

  • simple scene system
  • entity/component serialization for whole scenes
  • input handling
  • 2D and 3D rendering (textured primitives only)

Basically what I wanted to achieve by the end of March is completed with some little things on top. Scene system isn’t really a fully developed system since I don’t have an easy way to modify scenes (editor is a long way away). Still, I probably won’t be making any changes to scene code until after next milestone.

Next milestone?

Next up, renderer improvements.

Doable in 4 weeks?

This is going to be a big learning experience for me since I have to research so many new topics to implement all of these features. Half a year ago I had barely any knowledge and no intention to learn anything more than what I had to know about rendering. Now I’m writing a renderer for my own engine. Crazy now that I think about it.

Besides all of the features mentioned above, my first step for this milestone is to import Dear ImGui. I imagine interactivity will be very useful for development of new rendering features.

Since I don’t have much to show at the moment. Look at this to learn more about current Sopka engine capabilities.

If you want to follow development of this engine, I will be posting more often (maybe weekly) from now on. Especially since I’m starting to work on renderer features which I can present in a nice way that fits blog post, and maybe even a video! Stay tuned. Imma head out.

Post Author: marekkost

Leave a Reply

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