Category Archives: Clockwork Empires

The Rerendererererering

I’m very happy with a lot of the changes in Alpha 44; a bunch of the seemingly less-consequential AI improvements, such as the stockpile rewrite, seem to have been very well received. I therefore decided to do something fun last week on Thursday and Friday, and start rebuilding the rendering pipeline to support interior and dynamic lighting. On our old development report this was actually the last rendering ticket.

David Baumgart, "painter of light".

What a nice house. I bet it’s not totally full of cultists or something.

The thing that made me grumpy about the interior rendering is that we don’t want exterior dynamic lights to leak into the interior – if you put an outside light on a building, you don’t want it shining in the interior. Similarly, you don’t want to have a light inside a building reflecting the outside of the building. Finally, it would be nice if we could set the interior and exterior lighting of the world differently.

{ read this article }

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

Clockwork Empires October update: THE MEMORY OF INFINITE TERROR & MALIGN VASTNESS

Suddenly we remembered the Clockwork Empires update that haunts us each night! We present for you:

ce_2015_oct_promo_illustration_small

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.


We’ve radically changed the format of the development report to be less numbers-focused and more a qualitative description of the month’s work and the work that remains to be done. The primary content will be an annotated changelog that looks a little something like this:

{ read this article }

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

Decision Tree Rewrite and Requirements Code Cleanup

First off, a status update: we will not be releasing Alpha 44 this week. We will do an Alpha 43C at some point, and will aim to do Alpha 44 next week. This is due to a number of non-work factors, and we apologize for being a little out of sync. Alpha 44 will be better for it.

Business as usual.

Business as usual.

Last time I wrote a blogpost, I noted that we were redoing the barracks to use a new user interface. Well, the interface code was written, but disabled, because we needed to set the AI to use all the new goodies (and, also, to make sure that we fix some of the long-standing military bugs that make our soldier friends less than effective.) The issue here is that we have a big block of decision tree code which should drive military decisions, as well as your hierarchy of Maslowian needs. Right now, this code doesn’t really have a unified mechanism; there is a big block of code that is hard coded for colonists which evaluates their military tree, and that’s sort of a big ugly mess. There needed to be a mechanism to evaluate a decision tree – a series of requirements and “do I succeed at this requirement or do I fail at this requirement?” decisions, which we can run through consistently and without touching the scripting system. I planned on doing this – and even blogged about it! – a few months ago, but kept putting the rewrite off because I knew it was going to be terrible, and because there we always other things that needed to be done first. Anyhow, I finally ran out of things I could meaningfully do before doing this horrible rewrite, so I finally said “ugh” and started in on it.

{ read this article }

Posted in Clockwork Empires, Programming | Tagged , , , , , , , ,
10 Comments

Sometimes you have to show how the trick is done

One of the first years we were lucky enough to go to GDC (a yearly game developer conference), we had breakfast with a guy who worked at Bullfrog during their heyday. He told us a story about one of their games that’s been echoing in my head for years since.

This image constitutes a spoiler for the contents of this blog post.

Warning: this image constitutes a spoiler for the contents of this blog post.

During development of the title (which we will call “Cheese Wrangler” to protect the innocent) they created a sophisticated simulation of the environment to determine which challenges to present to the player. Months of painstaking work went into cheese wrangling challenge* simulation in an attempt to create a model that would feel intuitive to players, but the system was taking way too long to finish. Eventually they decided to test players against a purely random event driver, and they found that after all that work players couldn’t tell the difference between simulation and chance. So they threw out the simulation.

(*Not actually cheese wrangling challenges, but we’re sticking with that theme.)

Simulation just doesn’t matter if the player doesn’t care about it.

{ read this article }

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

What lies in the heart of a Fishperson?

In the planning meeting last month I was tasked with “adding some creepy stuff”. Lovely, easy! Right?

As is ever the case in a game such as Clockwork Empires, with as many complex systems interacting with as many other complex systems as we have here, it turns out that much of simply “adding some creepy stuff” consists of tracking down the creepy things we’ve previously made then testing and updating them so they play nicely with all the other new things (creepy or otherwise) we’ve made. Plus there are the back-end refactoring passes that have made certain things obsolete, left other threads hanging, and the usual additions of better systems to replace old bits that were a little rougher and/or hacky. So there’s cleaning up to do which not only makes things work better, but makes things work better with other things. This explains how a subtask of my primary directive, “make sure all the eldritch transformations work”, turned into “review all cult-related actions and events” which turned into “overhaul every instance of madness in the game to work with both aforementioned items and with new madness visualization”. Then I found myself fulfilling the contingent requirement of “check every single job in the game and make sure it’s doing what it ought to be doing with what it should be doing it with, and split the 8000 line jobs definition file into smaller files”.

Adding some creepy stuff is not necessarily straightforward. Happily, that last paragraph describes what I did for the last major patch.

study_fishperson_corpse

“Blood, mostly.”

{ read this article }

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

Strange Moods At Gaslamp Games

“Periodically, individual dwarves are struck with an idea for a legendary artifact and enter a strange mood. Dwarves which enter a strange mood will stop whatever they are doing and pursue the construction of this artifact to the exclusion of all else. They will not stop to eat, drink, sleep, or even run away from dangerous creatures. If they do not manage to begin construction of the artifact within a handful of months, they will go insane and die soon afterward.” – Dwarf Fortress Wiki

Strange moods abound in the office. It must be Autumn.

David screams "I must have steps!"

The programmer screams “I must have steps!”

I was seized with the strange mood recently after I got annoyed when implementing a new feature – more office code, I believe. Writing and testing my code required me to make a change to the Lua scripts, open the game, build an office, test the feature, see my stupid mistake, shut down the game, change the Lua script, open the game again, and continue ad infinitum. Uggh. Inspired by Casey Muratori’s Handmade Hero approach to hotloading – even though our approaches are totally, conceptually dissimilar – I decided to add the ability to reload Lua scripts on the fly to the game. The UI code is crude and nasty, but it looks something like this:

{ read this article }

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

Clockwork Empires September update: THE TERRIBLE TRUTH

A Clockwork Empires update has been discovered, but at what terrible cost? We present for you:

ce_2015_sept_promo_illustration_small

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

We have also updated our Clockwork Empires: Development Progress Report! Let’s try something new this month and include the overview section from the development report in this blog post, like so:


September 2015 update notes:

If I were to sum up this month’s work, it would be that we worked on addressing the question of how a player queries the state of a character then how the player makes decisions which affect that state. (You like that sentence? Chris said it needs another comma, but I told him No!) … Naturally the full story is ridiculously complex.

This month is a story of rabbit holes, of the noble intention of working on a seemingly superficial feature, prying back the cover, and ending up elbow-deep in wires and pipes. Possibly we found Lemarchand’s box holding up a leaking conduit and now We have such pointers to show you. I’ll give a shot at working this into a comprehensible narrative provided we all acknowledge that broad strokes are being painted with here.

First, to follow up on the revised Work Crew UI panel from last month, we set our sights on a revised Character Information panel. Sounds great, natural progression! What goes into this character panel; what is a colonist but a miserable pile of memories? Digging in to memories, ah, looks like this system needs some core operations re-jiggered to work according to our present assumptions. We’ll also roll the madness system back into being attached to memories and put a better display on the character panel. And while we’re at it, we should better visualize the emotional effect of memories. While we’re at that, being able to better visualize memory lets us rebalance the effects of memories – let’s do that. We really ought to check every instance of memory creation in the game while we’re at that; and every social job that is executed based on mood state to change mood state – heck, let’s check every job in the game while we’re there. Oh dear, this’ll need fixing; and this. We’ll also need to provide players better means to address negative moods and madness, so let’s get the “office” type building infrastructure working properly so that we can make, for example, effective chapels that give real feedback about their state (and this follows up nicely on the barracks from last month).

Got all that? Let’s review:

  1. redo character info panel
    1. overhaul memory system
      1. review all memories in database
      2. review all memory creation points in script
      3. add madness to appropriate memories
        1. review all madness-related systems
          1. review cults & fix them to use revised madness
          2. rebalance all madness jobs
      4. implement the Lament Configuration with linked lists
    2. review & balance all social jobs
      1. review & balance all jobs in the game, period.
      2. oh hey, it turns out some jobs worked based on outdated assumptions. Re-do or can them!
    3. properly implement office system
      1. redo Chapel in particular to use new system
      2. meddle with theology, generally
      3. cults again, probably
    4. where we’re going, we won’t need eyes. Or roads. I always get those ones mixed up.
  2. attempt to re-activate the black hole for some reason
  3. release album

And that’s not including the stuff I couldn’t cram into a tangled web of related systems, which would be some optimization & finishing on stockpiles, some /other/ UI, and the whole workshift and time of day system. Plus the review of all jobs fixed a number of outstanding AI errors. And we did more balancing. And … it’s in the changelog and in the sub-categories listed below.

It’s not clean and easy to explain, but we think players will be very pleased with progress from Alpha 42 to Alpha 43. We’ve particularly made an effort to address the divide between player knowledge about characters and what those characters choose to do. Next month should be interesting as well – we hope to focus more on finishing the backend for core system (like offices) and – well, we’ll talk about that next month.

(Read the entire development report at the Development 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 for alpha 43:

{ read this article }

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

Willy Wonka, Toto, or something to do with a sausage factory

Now that we have a much more detailed view of how we envision the specifics of Clockwork Empires, we’ve been revisiting much of the UI we initially wrote to carry us this far. Now we’re looking at it with an eye for usability and better presenting the information that should be important and visible to the player. You may recall the revamp of the Work Crews element last month – the element that we’re looking at right now is the character information panel.

"So how long exactly has the Queen reigned; does anyone really know?"

“So how long exactly has the Queen reigned? Does *anyone* really know?”

We have been getting away with a very crude character UI because most people don’t seem to expect that a deep, complex character simulation is going to give you a way to immediately decipher exactly what is going on within that character. Not only is that a tall order to ask for a user interface but it might even lower your appreciation for the simulation by peeling back the curtain a bit too far. A certain element of mystery can be a good thing.

{ read this article }

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