Devlog #010
Posted by Kenneth Ellersdorfer
Hello Capitalists!
It's time for another devlog, this time I got news about many topics, most of them polishing and getting ready for a new testing phase and also working towards the first public release!
UI Polishing (again)
I have spent a lot of time polishing the user interface. This is, I think, the 5th time I've iterated on it, but this time I really put in some major work. I reworked every single element and also the underlying code architecture. I also made some improvements and optimizations to the UI library of the Sparrow Engine.
It's now in a state that I'd consider "acceptable", but it's still far from being great. The main pain point is having to deal with a fully custom UI engine.
It's turned out to be way more difficult to develop than I originally anticipated (a LOT more difficult than I anticipated). But I'm slowly polishing it to a good level.
I will just show you some examples to show off the work I've put into this:



I've also incorporated feedback I got from players in the last testing round, and I'm very interested in getting more feedback on it and iterating further.
This rework took me almost a full month of work, and for now I'm fine with it.
I might improve a few rough and clunky things here and there, but generally I think this is good enough for now.
Tutorial
Now, the tutorial has been on my list for quite some time, and for this iteration I finally tackled it.
My first thoughts went into how I should actually try to teach the game to players.
I'm more of a "let's get straight to it" guy myself, and I really dislike these stiff tutorials that handhold me through predefined tasks in the game to teach it to me that way.
So the previous tutorials were like this (because it's obviously easier to implement), and they were pretty horrible. So they had to be replaced. But replaced with what?
That was a question I'd been thinking about for some time, and I've split the solution into 3 different systems:
-
Secretary
-
Concept learning
-
Guide
These systems all serve a different purpose and interact with each other:
-
Secretary: Provides an interface to show an assistant that the player can talk to, that can guide the player, etc. It's the interface between the player and the rest of the systems.
-
Concept learning: Game concepts such as "Factories need a recipe to produce" are encapsulated in "concept learnings". They can trigger at any time when they detect that the concept would be useful for the player to understand. They then trigger a guide.
-
Guide: A fixed script that guides the player through something, usually used by concept learnings. For example, guiding the player to click on a factory, open the production tab and choose the desired recipe.
With these 3 systems, I've authored a few concepts that are enough to just start the game, get right into it and have the secretary guide you just enough so it's not annoying (she can be disabled, too, if the player wants to).
I'll be really interested to see how this system plays out in real testing with real players, but I'm pretty confident that with enough polish, this will work perfectly fine and be an enjoyable way to learn the complex mechanics of the game.
Visuals
Many visual upgrades have been implemented since the last blog post:
-
New terrain shading with color variance and biome blending
-
Baked ambient occlusion on buildings
-
Many new placeholder models
-
A fully reworked water renderer with refraction, displacement, and depth perception
The placeholder models have been generated with LLMs, and I have to say it's really great to get something that is not completely terrible up and running in such a short time, to get a better feel for the final looks.
This has also helped me in other game prototypes where I've experimented with different game genres and mechanics to quickly get something up that looks "good enough" for a prototype.
The new shaders also look pretty good, and I am very happy with the new visuals. See for yourself:

City growth
City growth also got an update! The city growth algorithm was probably the oldest piece of code that was still in the game. And it was horrible! ๐
The new algorithm now tries to build cities in a similar style to how towns evolved in the USA.
Lots of perfectly rectangular blocks of residential buildings and, in general, a pretty strict and "clean" geometry.
I think a video here might say more than a thousand words, this is the new city building algorithm:
Vulkan renderer
The engine behind Capitalist Empire now has support for Vulkan and modern rendering features!
I've been wanting to do this for a long time, but it was just too large of a project to justify.
However, with how good LLMs have recently gotten, I decided to give this a try, and in about a week I was able to implement a new Vulkan driver for the engine that runs pretty well.
I've had some headaches with memory safety and synchronization while implementing it, but they were quickly resolved.
The final game will most likely ship with both the OpenGL and Vulkan drivers. I think a surprising number of players are still on Vulkan-incapable hardware (especially older iGPUs!).
The OpenGL backend just might not support the newest features and nicest rendering.
The new backend added support for compute shaders, which also led to me reworking the rendering pipelines themselves.
Forward and Deferred rendering now use tiled lighting, with the tiling being handled by a compute shader.
Instancing and shader parameters are now handled properly through constant buffers. Previously, the engine abstracted away the difference between parameter buffers and uniforms.
This is no longer the case. The engine now sets up proper "PerFrame" and "PerDraw" buffers for executing draw calls.
Visually, there's nothing to show here, though. This was mainly a technological overhaul that will lead to better performance.
It also lead to me gaining a better understanding of how graphics cards manage memory and render stuff on the screen, so I'd say this project was a win on all fronts!
Testing round
In the last devlog I stated that I'm pretty close to a new testing round, but I've since then deviated a bit from my plans ๐
I've since decided to take time and give this project a REALLY deep polishing pass and as you can see - I did.
My plan is now to not add new gameplay features for some time and make what is there currently polished and play really well.
I am not sure when the testing round will begin (I hope, before the next devlog), and also I'm no longer sure if it will be in private on the NBG discord server or more publicly.
If I'd have details I would share them but I am undecided right now. Still, if you want to follow the development of capitalist empire, join the Noble Bird Games Discord server!
So that's it for now.
Thanks a lot for reading, have a great day!
