Optimizing Colonist AI

We are definitely moving into the part of the dev cycle where we can craft the  “mid game” experience of Clockwork Empires effectively. One of the issues we are currently facing with the middle game is one of performance. We have a requirement that the game perform 10 simulation ticks per second, as mandated by our AI. This means that every update to the game state needs to take place in approximately 100 msec to avoid stuttering between frames – the renderer will keep rendering, if necessary, while it waits for the game AI to catch up. If you have 100 characters to be simulated, this gives you a budget of slightly under 1 msec per character. With Revision 36, we started to see people sending us save games with functioning colonies of 70 or so colonists, where stuttering was frequently occurring, and where in general the frame took more than 100 msec to run on my PC at the office. What can be done?

A busy town bustles. What is to be done!

A town bustling busily. What is to be done!

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , ,
12 Comments

Clockwork Empires February Update: THE MISTS OF ANTIPODEA

From the mists emerges- an update to Clockwork Empires with a not-unreasonably lengthy title!

The Mists of Antipodea

This update will go live to every Clockwork Empires player via Steam!

We have also updated our Clockwork Empires: Development Progress report!

(Don’t own the game? Clockwork Empires can be purchased on ClockworkEmpires.com via Humble or from Steam.)

Want to hear about all sorts of updates via email plus receive silly images from development? Sign up for the newsletter here.

Patch Notes:

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , , ,
7 Comments

So You Want To Form A Cult

We’ve been a bit coy about portrayal of cults in Clockwork Empires because we’ve wanted to keep them mysterious. Don’t show the monster. But if a cult forms in the woods and no one bothers to really tell the player what’s going on, did it matter? Perhaps not.

Add three black mana to your pool.

Add three black mana to your pool.

Aside from that, the mechanics we built made it in the player’s best interest to instantly execute anyone they suspect of forming a cult, which happens when you give people any kind of free time. Which is kinda interesting in a brutal way, but if another day of executions is the only valid response to cults, then is this not simply eldritch whackamole?

So we sat back and asked ourselves: Where do we want to go with cults? What player choice should they involve – why would a player want to keep a cult around (aside from morbid curiosity which, granted, our players seem to have in abundance)? How much do we tell the player and how much do we keep as a Fun Surprise?

{ read this article }

Posted in Clockwork Empires, Game Design | Tagged , , , , , , ,
13 Comments

Character Events

I believe it was Rock Paper Shotgun who referred to our previous game, Dungeons of Dredmor, as “a randomly generated spinning roulette wheel of glory and death” (or something like that, anyhow.) Regardless, this is a good design philosophy and one that we can all agree upon. To this end, it is good to put some random events in games – they sparkle things up.

We also have said that one of the key driving forces in Clockwork Empires is your characters; it is very good for them to do various things, based on their personality, character traits, and moods. We want characters – and who they associate with, and who they are organized with – to start making a noticeable impact on the game beyond the incidental impact of being nearby other characters when they do something that may, or may not, affect other members of your settlement.

Dwarf Fortress handles this with Strange Moods; a Dwarf will lock themselves in a room and go insane – or, maybe, produce a strange artifact. Crusader Kings 2 handles this with various events happening, ranging from jousting tournaments to attempting to turn lead into gold.

To generalize this: we have random Character Events.

Well, the content is much more interesting, but that's not much of a choice. Now we also need to get rid of this enormous amount of wasted space.

For instance…

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , ,
6 Comments

The Fog of War and Other Stuff

It seems like revision 35 of Clockwork Empires, Enola Brimble’s Fine Day In Which Everything Isn’t Going To Explode has been a very well-received! We’ve gotten a lot of positive feedback about it, and we appreciate it; players are appreciating fewer slowdowns, script errors, glitches, stutters, or save errors. So, clearly, we’re making progress.

Some folks are still having save game trouble, and we’re continuing to work on that as our #1 debugging priority (including the folks who don’t seem to be able to load save games at all?) – there are also some OS X speed and crash issues that we are currently debugging. However, we’re glad that people seem to be doing very much better with this latest build.

As the time until the next patch is roughly three weeks away, it looks like we will be primarily focusing the next patch on quality of life improvements – again! We’re rebalancing certain parts of the AI to try and clean up some odd behaviours with combat, social behaviours, and things not working correctly. We’re also just fixing a bunch of AI related bugs. One major quality-of-life improvement that is a new system, however, is fog-of-war, which is getting a rewrite.

Also, fog-of-war is not technically a quality-of-life system. More specifically, it improves our lives, but it makes your life moody and depressing.

There could be anything out there!

“Hello? Nothing creepy going on out there, I hope.”

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , , ,
9 Comments

Clockwork Empires January Update: Enola Brimble’s FINE DAY In Which Everything ISN’T Going To Explode

Suddenly an UPDATE appears! We’re on to v35, filled with mostly a bunch of completely random little things which aren’t easily summarized in a tagline. But we assure you, they probably won’t explode! Unless they’re meant to. Onward-

ce_jan_promo_illustration_half

This update will go live to every Clockwork Empires player via Steam!

We have also updated our Clockwork Empires: Development Progress report!

(Don’t own the game? Clockwork Empires can be purchased on ClockworkEmpires.com via Humble or from Steam.)

Want to hear about all sorts of updates via email plus receive silly images from development? Sign up for the newsletter here.

Patch Notes:

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , , , , , , , , ,
9 Comments

Under the Influence (of Euclidean Distance Mapping)

First off, an announcement: customarily, we release new builds of CE (major ones) at the fifteenth of the month, or as close as we can get to that. This month’s build will be pushed back until next week, owing to the fact that we lost a week and a bit of development time in December due to the Fishmas Holidays; experimental builds will, of course, continue.

That said: Technical Talk Day.

Loosely speaking, this month’s patch is focused on doing spit and polish, maintenance on existing issues, and busting some bugs rather than new gameplay features (although we’ve done a bit of that). In terms of character behavior, you may have noticed that characters occasionally do things that are counter-intuitive; we are narrowing this down as development continues (Daniel has a huge and terrifying spreadsheet). We have received a number of bug reports of the following varieties:

“people wander off into the woods and die”

And, well, that’s about it, really.

Here's a tantalizing sneak peak at the promo illustration for this month's update.

Tangentially, here’s a tantalizing sneak peak at the promo illustration for this month’s update.

The solution to this is that people should calculate when they are, or are not, in the user’s colony. We previously did this with a notion of “civilization”, which computed (for each tile) the closest distance between the tile and any civilization in range. The problem is that the way this calculation was done was a) buggy (if a building was not within some radius of the square being tested, which was quite a small radius, we wouldn’t pick it up), and b) slow (using more than one square root per grid tile, which adds up on a 512×512 map.) I finally got sick and tired of this this week, and decided to look up the right way to compute distances.

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , , , ,
15 Comments

Mining & Maintenance

Prologue: Last month we divvied up tasks based on some Agile concept; I believe we’re “writhing” through the next “suffering revolution” on the “Wheel of Pain”, if I have the terminology correct. I proposed that we shove Mineshafts off the current month’s TODO because I didn’t think they were as important as other features. Naturally the task of implementing Mineshafts ended up being assigned to me, as is only correct according to the Iron Laws of Bureaucracy.

Mineshafts

Subsurface mining is pretty straightforward because we abstract the details: the player builds a “Mine” building with a “Mineshaft” module (and at least one door! we’ve had problems with people not putting doors on things!). Once these are built, the player assigns a work crew to the Mine. Using the recent code done for Chapels and Laboratories, the labourers in the mining work crew are transformed into properly-outfitted miners wearing the correct uniform and everything – it’s great to finally get these occupation-specific models into the game properly!

Hey, you! Stop being sad in my screenshot, you're bringing everyone down!

“Hey, you! Stop being sad in my screenshot, you’re bringing everyone down!”

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , , , , , , , , , ,
8 Comments