Very dumb Arctic fox. Giving out free and open-source hugs. Also a GoldSRC modder, and a gamedev. (idTech 3, 4, Unity, Unigine)

Report RSS Where I've been

Posted by on

In my last blog, which was about 3 years ago, I showed some screenshots from a game I was working on. Back then, I was finishing high school, approaching the end of my relatively carefree era in life. The main thing I was worrying about at that time was getting 1st place on that gamedev contest, hosted by the college I later signed up for.

And 1st place I won. I will spare you the details of how fabulous that felt. Making a game on my custom version of the Quake 3 engine is something I really enjoyed doing, and the idea of pursuing something like that as a "modder turned indie dev" seemed quite attractive. Imagine: making games in a way similar to modding Half-Life! That would've been the dream.


May 2021 - "Cirkuz 33" running on BurekTech, a modified idTech 3
It was quite the boom.


However, there have always been a few things that irked me with idTech engines, and I warn you, this will get a little technical:

  • Quake 1 to 3's engines do not have skeletal animation
  • Additionally, no physics engine
  • Additionally, written in C when I prefer C++
  • Doom 3's engine, the one that has all that, has too much stuff that I'd like to change
  • They're all GPL-licenced, when I prefer the MIT licence
  • Usually have ancient texture & model formats

To put it shortly, Quake engines needed too much work to add some features I wanted, and the Doom 3 engine needed too much work to change or redo some of the existing systems.

Fundamentally it all boils down to personal preference and one's needs for a project. If you gave me any of these and a concrete game design, sure, I'd be able to make it. However, I'm not only after the idea of making finished games - I want to thoroughly enjoy the process and feel completely at home while doing so.

Dreams turn into visions

That's why, in September 2021, I finally let myself go and started working on a game engine. Initially, the plan was very simple: a spiritual successor to my idTech 3-based engine. It would have had retro sort of graphics just like idTech 3, maybe with some slight improvements, with the addition of a physics engine and a vegetation system so it could work for relatively open environments with lush vegetation.

Kind of a blend between CryEngine 1 (Far Cry's engine) and idTech 3, you could say. Then I started having ideas: I could have a plugin system, I could have different renderers as plugins, I could have different audio systems as plugins, and so I designed the engine with this great modularity in mind.

Guess what also happened in September 2021: I started college! As such, I had barely any time to work on the engine. I actually managed to commit a few bug fixes to it during one of my Programming classes. After a very slow year in development, I managed to get a 5-sided polygon to render, together with an external developer console, a basic plugin system, and a Source-style file system where I could mount other games.


October 2022 - "BurekTech X" in still early development
Its initial name was "Retrotek".


All those systems worked together to eventually display this little polygon, and the future looked quite bright. I was taking it nice and easy and I had a plan. However, in November 2022, Godot 4 got a new beta release.

Visions evolve

Godot 4 looked very shiny and fancy, and I was certainly lured by it. It's a lightweight engine, supports C# scripting, and you can do a lot with it. I thought to myself: what if I basically just used Godot to render things, and I had my own workflow? You can compare it to what Facepunch did with Source 2, they basically wrote their own engine-like system on top of an actual engine.

This did mean I had to rewrite everything in C#, and so I did. The plugin system, the console system and so on. Eventually I wrote a tool that would compile Quake and Half-Life maps into my engine's own level format. That way I was able to open up my idTech 3 game's levels in TrenchBroom, and simply export them to my engine.


November 2023 - "Elegy Engine" in early development
You could run and jump around, even! Such progress.


Then, however; Godot started showing some cracks on its surface. It wasn't quite a perfect option for this sort of project. If you do things the "Godot way", it'll work perfectly fine. Whatever I was doing was the complete opposite of that, and it would've led to a massive uphill battle with Godot. I had a feeling these flaws would eventually reach me, that's why I planned for them in early 2023.

Something that happened around this time, specifically as of spring 2023, I got a job! So, even less time. Despite that, in January of this year, I decided to do something rather brave. Or stupid, depending on how you look at it.

Visions revolve

I basically decoupled Godot and Elegy, making it into a "real" engine, so to speak. This meant I now had to write my own rendering code, and later all the audio, UI and physics stuff. We're kinda back to square one now!

February 2022 - Elegy Engine in slightly less early development
Well, you can't really move around any more, but that will be back soon!


Decoupling allowed me to take a look at the engine's design as a whole, and think. There were several dirty hacks inside Elegy so that it could run under Godot, and the map compiler tool could not utilise any of the engine's systems (e.g. game folder mounting) because of the way things worked. This allowed me to finally fix all of that.

There is a lot of nuanced stuff behind all these decisions, simply too many to write about in a single blog. My priority for now is to render textured models and levels, then I can do physics stuff and a bit of basic game stuff. Really hoping to see a very basic mini game in summer.

Where I am now

Right now it's a cloudy April over here in Bosnia, and I'm just occasionally chipping away at this thing. Of course, I cannot forget my side projects: Half-Life mapping series, Half-Life programming series and a few other things.

I initially wanted to write about how I gradually did less and less Half-Life modding stuff, but this works too. The thought of making a cool little HL mod occasionally crosses my mind, or to actually continue one of my existing mods (like the CS2 smoke one, or real-time moss), however I'm just too busy with other things.

There are also so many other things I did not even mention: learning the guitar, obtaining a driving permit, going on a boat trip to Croatia and seeing the Sponza Palace in real life, and many more. I hope to write here again, maybe in some 6 months or so. Thanks for reading!

Post comment Comments
FlippedOutKyrii
FlippedOutKyrii - - 3,505 comments

Great to see you back! And I'd love to see more of this Quake 3 game you have been working on! ;D

Reply Good karma Bad karma+2 votes
Admer456 Author
Admer456 - - 823 comments

Hai! I'm thinking of writing a "development of" sorta blog about that one.

The final result is not really something that's interesting to play, it's just a mini tutorial level with a tiny campaign level and some enemies and a pistol. I rushed a lot because I needed to get it done before the competition deadline, and then I burned out soon after that lol

It does have some cool things though, like a Deus Ex-style dynamic music system.

Reply Good karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: