Changelog #52 - Procedural Resource Visuals 2


Typing this on my way to Kullens Fyr. A few days ago I decided to get a tighter grip on blog writing - I found it quite enjoyable as I realized that I actually have a lot of things to write about. I made two blog posts related to Colossal Citadels - one about its fog implementation, and the other about triangle grid, which is another unique thing about this game. Both blog posts got some attention and I’m happy with them.

But still, being in not a good mood, I’ve done not so much for Colossal Citadels; however, I’ve implemented a very important feature that actually needed a lot of internal work. Procedural resources, which you mine in the world (trees, stones, metals, etc) will have a visual effect on everything you craft and build: from yesterday on, weapons now have colors/textures/animations/vfx taken from ores, which I recently improved a lot. Procedural trees, stones, as well as procedural visuals for buildings and armor are on the way!

From other less important things, I’ve finally moved to C++20 - oh it’s so good! I couldn’t use ranges-v3 (the prototype of std::ranges feature from C++20, but supported in C++17), because of conflicts with Unreal Engine. But lately, someone pointed me out that the engine actually was already fixed to support the latest C++ and I can just try it (it didn’t work last time I tried). Now it does! So I’m enjoying nice cool things from the new standard now such as ranges, concepts and finally starts_with, haha! Also, I’m moving back to my favorite text editor, because Rider is paid now and still incredibly buggy - I used it because of fancy IntelliJ inspection tools, and Visual Studio is not in my taste (I hate it). There were a lot of issues with getting VS Code to work, but so far I managed to fix all of them and now having a pleasure to work in it.

Here is the full changelog:

READ MORE

Triangular Grid 2


Exactly two years later, I’m writing a follow-up article on triangle grids on my personal blog. It features better distance functions than in the latest article. Check it out!

READ MORE

Changelog #51 - Calculations


Very good to finally experience summer completely. It actually gets hot here in Sweden! I’ve been to midsommar celebration, some birthdays, and walks in the awesome Swedish forests, so this time there are not so much gameplay changes, but anyway, there are a lot of internal changes, plus some usability and tutorial improvements.

Meanwhile been slowly rewriting code to get rid of one library that caused much problems: I edited some code for like 10 minutes per day and I think there were over 20k lines changed. Then I decided to try again to fix the actual issue instead of removing the library. And somehow I succeeded! Now I have the latest version protobuf and it doesn’t crash when trying to free strings from memory after being dynamically reloaded. There was a lot of other issues with static linking (such as armed conflicts between ssl versions), but it turned out they all were solvable. What all that means? That in playtest build, your C drive won’t fill by 100G anymore and eventually you will be able to restart game without hitting Alt+F4 on gameover screen :D

Another thing - I really want to try Unreal Engine 5 and convert the project to it, since there are a lot of sweet things (such as C++20 support). But I can’t do that yet because I need tessellation, which were cut out in UE5 - and they didn’t provide any proper replacement. I tried to return it in engine sources, but there were too much changes then and since then. Maybe I’ll try again one day, but for now it’s better to concentrate on the game. For now, I only updated the project to 4.27.2.

Also, I replaced standard unordered containers with other implementations made by community. The choice fell to robin_hood for strings and emilib for ints - benchmarks in the internet shown that these are the fastest. This is a premature optimization and game didn’t needed that - but anyway, updated containers game 4-10 times turn calculation speed boost! Now it’s almost instant even on 300x300 maps where are a lot of things going. It was not a secret that standard containers are not as good, but such huge speed boost is quite surprising. Here is this benchmark. Author wants to update it - I hope he will include Unreal Engine’s TMap there.

Lastly, I made a couple of very important features that were waiting really long (but no longer than this protobuf bug, which have been here almost since project start). The first one - you can now manually deattach groups that are about to deattach on the next turn. This way you can select which resources go to deattached groups (by drag’n’dropping them). This is usually not needed because they are distributed automatically depending on productions, an intention of sending expedition to the wilderness, but sometimes you need to do this faster than through resource transfers after deattachment. So here it is - but actually resource rearrangement is not implemented yet… Another feature is production number breakdown - some players question why is it -10 food per turn, or -0.5 wood per turn. Now you can hover the production number and the game will list all things that contribute to the production number - other productions, food consumption, resource transfers and so on.

Here is the full changelog:

READ MORE

Changelog #50 - Metal


Another week of Colossal Citadels development, I did a lot of important bugfixing and finally gave attention to some very pleasant important feature, procedural resource visuals. It was well received in social networks (and of course, in r/procgen. Easy.) and I gained some new followers. I’m happy about it, because it’s one of fundamental features!

Haha, this week I’ll be playing a lot of NextFest demos, because I removed Colossal Citadels from it and won’t be as busy with it’s promotion. Now it will be possible to make it to the perfection for the next festival: there is a lot of essential stuff to do and playtest, especially the tutorial level. Unfortunately there was a little progress with implementation, but some progress with it’s design.

Another new thing is a quickly made trailer for some twitter event, see video above. It’s quite the same as the first trailer (the one on Steam), but it was very fun to make.

And here is the changelog:

READ MORE

Changelog #49 - Postponing the Demo


Hello, I’ll start with not so good news (though, I already said it week ago at Discord). Colossal Citadels won’t participate in this summers Steam NextFest. It’s good that I made wider playtesting time last weekend: a lot of useful conclusions were inferred from the tests. Thank you guys!

The most important conclusion (and the primary reason of postponing the demo until the nextnext fest) is that the game needs a better tutorial. The percentage of players struggling with basics with current hint-based tutorials is quite significant, and some players skip tutorials, thinking that the game is too intuitive and misunderstand some parts of controls. Sometimes the density of information in tutorial windows is too big to be remembered/processed at once, and players forget/don’t prioritize the most important points.

For example, the movement controls are non-traditional and have some unusual things about it. Here is a video I made that captures the essense of it:

I want the first few runs to be a smoother experience, so I’m going to make a separate tutorial level that teaches the basics by forcing players to do certain actions, read hints and click certain buttons on the screen. I designed most of that tutorial long ago, but I won’t be able to finish it before the NextFest. Quite sad to see that a lot of awesome games have published their demos right now :( But I believe this decision will make the game much better.

If some of you really wanted to try the demo, you’ll be able to test the new tutorial (and main gameplay) when the tutorial is finished: I’ll just send you a message/email when it’s time, if you applied to a playtest.

I also made a very important feature for strategy games: tooltip extensions. Here is demonstration video. So, now you can hover tooltips and they will be extended into more tooltips, and you’ll be able to learn the whole game starting with just one popup!

Here is a changelog. It’s not long, but meaningful:

READ MORE

Changelog #48 - Armor


This tenday I made even less features and even more insectoidquashing than the week before. A lot of big problems come from google’s protobuf library, which I’m using in this project. They couldn’t make it to work with dynamic loading and even refuse to try, and Unreal Engine, as well as a lot of other software, makes use of it. Problems come in form of memory leaks, since certain functions don’t work (such as releasing arena buffers with strings). I was hoping to fix it soon, but looks like it’s not an adequate task, because this library is bigger than my game :) So, I started to rewrite related code and already changed over 7k lines of code to get rid of the library. The best replacement is Unreal Engine’s serialization and RPCs, even though I’ll have to give up some cool things such as proto definitiona. This rewrite branch is still work in progress, and the memory is still leaking now! But I guess that’s ok for pre-alpha, unless you have 4G of RAM.

Back to more interesting stuff: I redesigned how armor works to make it clearer. At first, there was an idea of turning armor into “hp bar extension” that will restore each turn: it would work like something between Divinity: Original Sin 2 and Slay the Spire. This would allow trickier combos and underline the feeling of “a perfect turn”, when you carefully plan to take no damage and do an effect on the battlefield. Armor-gaining skills would getting much more juicy (see Slay the Spire), and some other features like denying cold damage with fire damage and backwards would work more intuitively. It’s also much clearer to player than the previous system of “defense points”, that non-linearly added to damage percentage cut. For example, 1 point was 5%, 2 points was 9%, and it never gets to 100%.

But there are problems with it: we have a lot of types and damage/defense in design: pierce, blunt, fire, cold, lightning, poison. All of these can’t be shown on a healthbar at once, and there are dozens of units on the screen at the same time. Information needs to be clear and go as fast as possible. It would be inconvenient repeatedly open popups to see defenses; damage predictions on healthbars won’t show damage due to first few strikes taking armor instead of health points. So, this defense style doesn’t fit for this scale of the game. If there were 4 units on screen and not 20, it would make a greater experience. Maybe I’ll leave this idea for future games.

There is much simpler solution. Because there are six types of damage, it’s perfectly fine to have 100% defense for one of them. So now armor is simply adding flat damage block! It linearly stacks with skills, resource effects and everything else. For physical damage armor, it would be easy to gain big defense, but almost impossible to gain 100%. Against elemental damage, it would be not uncommon to have 100% defense against some type of damage and vulnerability to some other.

Besides from armor, I improved menu design and made it more eye-candy; also, more turn prediction visualization work. Here is the full changelog.

READ MORE

Public playtest incoming


Hey! Colossal Citadels is going to have more unsupervised pre-alpha tests, and I need more people for that. If you want to participate, fill up this form and wait a until the end of the week!

Disclaimer: this will be a limited version of first N turns with fixed maps and less procedural generation - it will be easier for me to judge about the experience of tutorials and first steps in the game. Also, of course, a lot of bugs and feature placeholders.

When it starts I would be thankful if you play the game and destroy it: your critique can be used to improve the game.

Thanks a lot!

READ MORE

Changelog #47 - Automations


This week I’ve been working on bugsquashing a lot, but I also added some important automation features. One of them is mostly targeted for the lategame when you’ll want your towns running on their own and providing your adventurers with supplies automatically. Another of them is an overhaul of scouts which now explore surroundings automatically. Both features are not completely working yet (e.g. big towns also produce useless old weapon types sometimes, and scouts run into enemies with higher action range than them), but that’s a subject of long improvement.

Watch out, I’m going to make a broader test soon before the demo. Depending on test’s results, I’ll make a decision of postponing the demo: because having proper financial state (I’m not in a one because of forced immigration) at the time of demo release would allow this game to gain more from this steam next fest; there are a lot of things to improve yet. Anyone who would be frustrated by the fact that it’s postponed, can request to become a playtester (that for that!). But if everything about understandability and stability will turn out fine as it is, the demo will happen this nextfest!

Also, this week two very cool important games came out: Cantata and Songs of Conquest. One of them features turn-based factory-building too (but in different approach), other one is a continuation of Adventure Strategy gameplay. I advice checking out both.

Thanks for reading! Here is the changelog:

READ MORE

Changelog #46 - Legendary


The most important feature added in this list is a battle engagement effect. Now when you place a movement order, it will immediately display that battle is about to happen. Because now all battles are visible in advance, it became much easier and convenient to play. I’ll show the effect soon in a video.

I won some reddits again with a simple low-effort post about item rarity colors. I always loved feelings item rarities gave in ARPGs and I was intended to do a similar thing here from the beginning. Now finally here it is.

Item rarities will be as: Common (white) < Uncommon (blue) < Rare (gold) < Legendary (red, animated)

Here is a changelog. Not so big as previous ones, though.

READ MORE

Changelog #45 - A Cloud Crystallized


Past two weaks I’ve shown the game to multiple new people and done a lot of playtests. They seem to like it ^_^ Steam NextFest is really soon, I hope I’ll be able to deliver good enough experience for you guys.

I also partially got back to work, so less changes this time: but there is still a lot of important bug fixes, such as movement algorithm fixes; small details and improvements; shortcuts (you can increase production using only keyboard now); some new content (different kinds of scrolls for Spell Scrolls), features and rule changes (advanced productions take one house now).

READ MORE