What I learned building Idle Civilization

Heya guys and gals,

I always wanted to keep a development blog of Idle Civilization but I never got around to it and it’s too late now. So I’m going to skip a few things that a devblog has… mostly a lot of the development part and just get to the “polishing and what I learned” part (let’s face it, the last 10% of development takes 90% of the time). Anyway, here are a few stupid things I’ve done towards during the development of this game.

First of all, what do we have?

We have an Idle game called Idle Civilization which started out as not quite all that ambitious. Just a few features, cobbled together rather quickly, a few hastily drawn things and bam, published it straight online to get feedback from real players outside my circle of friends (which, let’s face it, can never be counted on for actual objective feedback).

Now here’s the first lesson (which is from the START of the dev cycle, not the end):
choose your test group carefully and remember there is a sacrifice if you don’t

In retrospect, I probably would’ve done a lot better if I had come here with a devlog, gotten feedback in closed, specialized circles, because putting a prototype out there on the actual page where you want players to play a finished game has quite the ups and downs.
The ups:
– brutal feedback
– honest opinions – love or hate
– if you listen to that feedback, you’ll build a loyal fanbase
The downs:
– a lot of players won’t accept/care that your game is in testing and will just damn it
– your rating will suffer heavily
– the initial exposure to a huge mass of players that won’t like the unfinished game means players you might not get back.

Ok, now here’s what the game looked like in the first ever release:


as compared to what it looks like now:


I’m not saying it looks WOW! no, because it doesn’t, I’m just saying it looks BETTER and it would have mattered if I had chosen my testing differently. Don’t get me wrong, I don’t regret for a single second that I published the game extremely early, it helped me shape it into what it is today and it got me some fans that really helped out both in motivation and in valuable feedback, tweaks, suggestions, etc.

But be very very careful and think about what you want to sacrifice in advance.


So things moved along and I added more and more things to it until I decided it’s time for Steam. The game is getting pretty big and has moved outside the scope of most idle games out there. It has RPG elements, management, warfare, quite a lot of things if I do say so myself and because the Unity webplayer is slowly becoming deprecated, it was time for a change (or, rather, upgrade). So, time to move it to Desktop!

Here’s what not to do when you do that:
Don’t ignore the people who are following your game while you work on it
Ok, so you got a fanbase! It’s not cool to vanish for a couple of months and stray away from the usual schedule I had imposed of updates and bugfixes while you do your thing (in this case, porting it). A lot of people will walk away. Certain markets and genres have a bigger or smaller “attention span” than others. For idle games, especially for people who saw the game “grow up” so-to-speak, it’s quite important to maintain a close relationship with often improvements.

We’re indies, we’re not yet that busy that we can’t take some time to chat to our followers…

Right, so working in parallel at both a PC model that saves on your hard-drive and on a web-version that saves online, I realized that my save system was very, very inefficient. Now, the rate at which I added features in the game was not anticipated at first. So the game didn’t exactly scale very well, a lot of stuff got piled on other stuff and the code became cumbersome, because I kept putting refactoring off…

So: Refactor early and think scaling!

Seriously, it’s going to save you a lot of trouble if you keep refactoring as your game grows or if you simply PLAN AHEAD a little better than me.
I wasted a lot of time when things became critical rewriting a lot of the code, cutting down on redundant things, refactoring and making things more efficient.

Now, I started from the saving thing. That caused me the most head-aches and some of the most player-pissing-off mistakes. With the final changes to the web-version, I prepared the content for the Steam Greenlight campaign and upgraded the save system to be more “efficient”.
But I failed to test it thoroughly…
So my “new and improved, lighter, faster” save system ended up making players unable to load their games, some of them lost all of their progress, some could not even start new games without a little magic…
And all because I forgot to change the type of the database field to the appropriate type and on very long save strings, it would simply run out of space and truncate the entry, therefore corrupting the save.

Now you can imagine the kind of effect that has on one’s campaign when you tell then: Hey, my game is on Greenlight and needs your support and…uh—right, you just lost all your progress and can’t play anymore…yeah…

This is probably how EA/Ubisoft feels like at every launch, except I don’t have their money and can’t sweep it all under the rug.
So, you’re not out of the woods until you’re out of the woods. Don’t rush at the end, don’t forget to test

Just because something worked last time you built the game, doesn’t mean it’ll work next time you build the game. My save error didn’t occur all the time, just when you had more features unlocked which resulted in more game that needed to be saved. So yeah, guess what: who got affected? My oldest and most advanced players… :'(

But, we get up, we dust ourselves off, we smack ourselves over the forehead and we move on, we never stop. Lesson(s) learned and I think I’m all the wiser and better for it.

Hope you all enjoyed this and I will keep you posted with more developments.

And here’s a bit of self-promotion at the end. If you actually want to learn more about the game and you enjoyed the little article I wrote, here’s the Greenlight campaign:
Idle Civilization on Steam

Thanks for reading and see you around! Looking forward to hearing some of your experiences!