Technical Progress Updates as Viking Saga; or, “The Kalevining”

(With thanks to the Twitter user
who suggested that the history
of all of the code in Gaslamp
should, for comedy, be provided
in the form of Viking Saga.
Let it be known, this is your fault.)


Totally unrelated: the Battle of Sausage Farm.


In the frozen lands of Gaslamp,
in the midst of record wind speeds,
while a power outage goes on,
and our coders, drenched with fever,
and the drippings of their noises,
hunker over scarred computers
plotting code for Clockwork Empires.
Verily, a mighty plotting.
Verily, it is cold season.
A plague descending through the office,
and our lungs are filled with wheezing.


Nicholas Vining, attempting to transform himself into John Carmack.

In the midst of Gaslamp’s office,
strides the coder, Nicholas Vining,
holding two large pints of coffee,
in each hand, for double fisting
in the manner of a wizard,
or at the very least John Carmack –
here we use poetic license –
to do battle with the codebase.
(Also, let us now please note that
when a wizard double fists we’re
merely talking about drinking.)

“Tell me now,” asks Nicholas Vining,
“Tell me, what should I be coding?
Magic runes of lethal graphics,
to dazzle bitter game reviewers,
and the men of foulest Youtubes,
craving 60 frames per second?
Shall I work such magic runings,
shall I weave intricate codings,
in the mystic ‘Shader Language’
known to only true devotees
of the sacred graphics circles?”


Daniel Jacobsen, official Forbes Thirty Under Thirty over thirty.

Suddenly, there came a voicing
of a man of mighty Business,
as was recently acknowledged
by Forbes’ “Thirty Under Thirty”,
freshly returned from Seattle.
Proudly ringing was his laughter,
proudly calling, “Ha ha! Business!”,
freshly returned from Seattle,
not entirely sure what happened.
“Nay,” admonished Dan Jacobsen,
“do not cast your graphic weavings.
This is why the other indies
spend their coin to purchase engines,
such as Unity or Unreal.
But, instead, like proud Sisyphus,
pushing up a hill a boulder,
take from me these JIRA tickets,
full of tasks you’d rather not do.
Yet again the sprint is ending,
yet again you slack in coding.
Decision trees await your typing,
and the offices need writing,
‘ere we can proceed with getting
the hell out of Early Access.”

Thus ashamed, your poor narrator,
feeling not the least heroic,
slunk back to his mighty fortress,
clutching both his mighty coffees,
and slumped into his throne of Aeron.
Mighty was the throne of Aeron,
powerful its weaving,
for it keeps one sort of upright,
in an ergonomic posture.

We called it "Fort Murder".

We call it “Fort Murder”.


So ashamed, our noble poet,
proud programmer Nicholas Vining,
sat down and split the building menu,
sundering the earth from heavens.
While the code was still compiling,
all the office heard him musing,
“We have far too many buildings,
and it is very confusing
for the poor neophyte user.
See, a GIF by Chris Triolo.
See, how well it’s animated.
See how intricate the detail.
Well, I’m sure not doing that, then.”
How noble is the Lead Programmer!
Knowing when he should be precious,
and knowing when his time is precious,
knowing when a thing can quickly
be swept under the rug for later.

In a previous frozen winter,
workshop code was quickly written
by that mighty Wizard Whitman,
for our original intentions.
The intentions of the workshop
slowly changed throughout the course of
making a game in early access.
(Once upon a time, the system
did not have building interiors!
We then threw out much of our artwork
and code to add building interiors
so that the actions of your people
could be observed in fussy detail.)
Yes, bits were often bolted to it
by many hands, in great big hurries,
adding one thing, then another.
In fact, it was a load of bollocks.

Previously, it was rewritten,
and the code was moved from Lua,
where it was a great big pile of
oozing from a, well, never mind.
Now the workshop code is cleaned up
and rewritten in C Plus Plus
and it smells like new mown daisies
and the smell of hay in summer.
(Hopefully it lasts a few weeks.)

“Now,” he said, “the workshop code calls.
In previous days, the artisan
would have to wait for an assignment
to be complete, before he could start
a new one, with a fresh mandate.
From now on, let all of our workshops
be full of happy, healthy labour,
and let every citizen amongst them
do whatever work is able
to be done in these conditions.
Let’s instead have one assignment,
which all jobs inside a workshop
shall be attached to when created.”
This was shipped in a fresh alpha,
known as “Alpha forty-two-C.”
Player feedback was quite lovely;
we are thinking about letting
the work crew affixed to a building
also perform such small repairs
to modules as may often occur
when a proud and mighty module,
over-used in its employment,
becomes broken and needs repair.
We may not; we’re not quite sure yet.

From this revision, sprung a framework
for running tasks inside a building.
Now, when we look for a new job,
if the building is an office,
we examine all the jobs that
are stored up inside this building.
(We might have covered this already.)
Thus a person’s wounds are treated
by a happy half-crazed barber,
or a demand for confession
may be soon sated by a vicar,
preaching their own choice of gospel
depending on their mental status
and alternative religions.
A new “F-S-M” is added,
where a member of your township
may wait in place to have a job done,
and will get angry when it’s not done,
and thus forcing timely obesiance
to your colonist’s ambitions
to receive prompt medical attention
before bleeding on the carpet,
or for spiritual salvation,
lest they do something they should not have.

These disgusting organs require science.

These disgusting organs require Science!


From the hills there came a shouting,
and the hoarding of quinoa,
(which only scans if read incorrectly,
for actually it’s pronounced “keen-wah.”)
Yes, t’was artist David Baumgart,
freshly full of vegan lunchmeat,
puzzling about a problem,
vexed by user interactions.

“Here again,” he muttered idly,
“things are put in the event system,
things that maybe should not be there.
For instance, bandit interactions.
Should you wish to shoot a bandit,
with your mighty flint and musket,
you cannot change your past decisions,
unless a new event is firing,
caused by, maybe, other bandits,
than the ones ripping your stuff off.
In the past, we’ve said that buildings
are the source of interactions
with your townsfolk, and their worldview.
Let us place, in-game, an office,
a foreign office, where the player
may make wise policy decisions –
or not, as the case may yet be.
Yes, a mighty foreign office,
the perfect place for dreaded Novorus
and Stahlmarkian interactions,
and other sorts of jingo-ism.”


David Baumgart, filled with vegan lunchmeats and vexed by quinoa.

“For these things,” said Nicholas Vining,
“we shall need all sorts of widgets.
Yes, our code has many widgets,
many widgets of all sizes,
humble scroll bars and small buttons,
text entry fields and tree view widgets,
all hooked up by mighty signals,
to a model view controller.
Long ago, I cast these widgets,
wrest them in a fiery furnace,
actually a small apartment,
and now they have grown fat and sassy.
Yet, who amongst us can go in and
write UI code for all offices?
Alas, we must add widget code now,
designed for use in office buildings,
where the UI is configured
depending on the type of office,
and this must be done from Lua,
for the many types of office.”

Broken down, we see each office,
has two types of interaction:
some policies, and then a job list.
Policies are sent as messages
from the widgets, to the building
and may be global or per-building
depending on the type of office.
For instance, inside a barracks,
we may choose our choice of firearm,
or the nature of our training,
or when soldiers shall be training,
requiring many types of widgets –
rows of icons, and checkboxes,
all drawn upon a WACOM tablet.
Here your narrator is still coding,
but stopped today to pen this update,
in trochaic tetrameter,
which may have been a poor idea. Hmm.

What a lovely kitchen!

What a lovely kitchen!


Go about your daily grumblings,
post today upon our forums!
Send us all your broken save games,
so we may yet fix nagging issues,
for Early Access is like toothache,
but the tooth is in a serpent.
(Apparently, that’s like a cobra.)
Bravely, we salute the warriors
fighting on through Early Access,
and are horrified to see that
Prison Architect is coming
out after thirty-six revisions.
Now we pray to mighty Odin
that he will take our souls in combat,
which is why today we ordered
many cans of silver spraypaint
to adorn each other’s mouths with.

(Next week’s blogpost is haiku, now.)

Posted in Clockwork Empires | Tagged , , , , , , ,

Art Is Pain: Marketing For Queen & Empire

I’m going to write about digital painting today (edit: actually, marketing and project management, but let’s pretend it’s still about art) because everyone else is too weak and sickly to stop me. Are you happy? This is what happens!

Isn't it fun?

Some early promotional art. Isn’t it fun?

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , , , , , ,

Stockpiles and Gabions

It’s instructive to just sit down for a quick, relaxing game of Clockwork Empires and then make a note of all of the little things that one finds frustrating or otherwise demanding improvement. As a result of this particular exercise, gabions are now built in assignments in the upcoming experimental build, rather than as individual elements. (Once certain graphics code is made to work again, we can also leverage this code to do things like brick walls and fences, so that at long last we may be Perfectly Safe.) I think we still need to do some more UI work on the gabion line placer tool in order to make it something you would actually want to use, though; however, large walls are now a thing you can have. Following the same line of thought – “does this annoy me? YES” – I finally fixed the overseer counter so that it only displays overseers and not artisan workers (including but not limited to vicars, artisans, naturalists, barbers, and basically anybody not in Her Majesty’s 5th Regiment of Swole); artisans now get their own idle counter. (We probably need to change the term “artisan” soon as well, as it doesn’t make a whole lot of sense anymore.) This way, you can see how many people are doing the base work of resource mangling, and how many people need to get new stockpile jobs assigned to them. Management!

Get to it, layabouts!

Get to it, layabouts!

I have also spent a certain amount of time this week rewriting the stockpile code, which I’m hoping to have rolled out in the next experimental. There are two parts to this.

{ read this article }

Posted in Clockwork Empires | Tagged , , , , ,

Clockwork Empires August update: FRONTIER BARRACKS SIMULATOR 2015

A Clockwork Empires update has been discovered scuttling around our freshly cleaned floor! We present for you:


This update will go live to every Clockwork Empires player using Windows via Steam! The MacOS build will be delayed for a couple days because our mac hardware blew up. We’ve ordered a new one and shall inform you when the MacOS build is released.

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

(Don’t own the game? Clockwork Empires can be purchased on 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 42:


  • agriculture update: crop choice is really important now!
  • a massively improved Work Crew UI
  • added the Barracks to conscript & train military
  • and we fixed a million things!

{ read this article }

Posted in Clockwork Empires | Tagged , , ,

A Home for Her Majesty’s 22nd Dragoons

We added a first implementation of barracks to Clockwork Empires in experimental revision 41D (as teased in the last blog post). This is the start of giving the military mechanics more depth, providing the player with more feedback about the status of their squads, and providing the start of a structure to give more control to players over how their military operates.

"Tonight you pukes will sleep with your muskets."

“Tonight you pukes will sleep with your muskets.”

The basic pieces of the Clockwork Empires game (relevant to this topic at least) are the character, the work crew, and the building. Up ’til 41D colonial military had only the first two. Giving them a building  means military work crews an on-map home base, an anchor, and gives the player an on-world access point to see what the squad is up. And in terms of gameplay, it makes a proper functioning military require investment of resources! (From a game design perspective, we’re always looking for opportunities for the player to dump resources at potential problems to reward economic success.)

So how’s this work?

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , , , ,

Quality of Life Improvements, Offices, Forest Meat

With Clockwork Empires becoming significantly more stable over the course of the last few patches, we are seeing a lot of people playing the game for much longer, which means that – in turn – when a bug happens, it’s the sort of thing that gets at you rather than just being something to be ignored. The pain threshold has, shall we say, shifted.

These things happen.

These sorts of things happen.

I’m trying to deal with a few long-standing issues this week, which mainly means dealing with small annoyances that detract from the quality of life of a Clockwork Empires player.

For instance, we have now fixed the work crew window slowing the game down when you are faced with > 100 citizens (and Daniel is busy doing Experiments on the work crew window anyway, so who even knows what it will look like after we’re done.) Similarly, the code base now correctly picks a random object from the list of items that can fulfill a job instead of just the last one; this has the nice and useful effect of making it so that citizens randomly distribute themselves in buildings to sleep in at nap time, instead of just choosing the last building chosen. David is in the process of sorting out the problem of citizens getting stuck in an infinite loop of burial, which occurs when a bandit corpse somehow thinks it’s at (0,0) on the game map which is usually stuck in a mountain. There is some work going on to make things more consistent, like ensuring that you can consistently cancel jobs and assignments in consistent places with consistent interfaces, that sort of thing.

And then there is the problem of people dropping meat onto forest meat.

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , , , , , ,

Clockwork Empires July update: SIR, WHERE’S OUR COLONY?

A Clockwork Empires update has been discovered somewhere entirely unexpected! We present for you:


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 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:


  • starting loadouts!
  • first implementation of character desires and personal property
  • Very Serious economic balancing in-action
  • started implementation of overworld
  • UI overhaul rollout

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , , , , , , ,

Choose Your Own Misadventure

First, a note from the Management: The monthly patch has been delayed due to some last-minute stability concerns but we’re working on it and will update you when we’ve got it sorted out. In the meantime we’ve asked Chris to hold the fort with a blog post about some cool stuff he’s been working on over the last month. Over to you Chris!

It’s time for another game balance post! Last time I wrote about immigration, but that’s not the only big game progression change in this month’s patch: we’ve also added Loadouts.

There's some kind of crazy map there too, but don't worry about that just yet.

There’s some kind of mysterious map there too, but don’t worry about that just yet.

For a rather long time we were extremely generous with the materials given to players when they launched a new colony; this was useful for testing hard-to-get-to midgame stuff, and hadn’t been given a serious balance pass since we implemented the idea of starting materials in the first place. However, just as with immigration, we’ve reached a point where it’s necessary to make players have to work for stuff so they can experience more actual gameplay. And that means not giving loads of high-quality materials at start.

With balance comes opportunity, and this was a real fun opportunity; We’ve always wanted players to be able to bring different stuff to their colony depending on their needs, and being that we were in the middle of balancing your starting materials anyway, what better opportunity to try out a bunch of different settings and see what people like? Thus, we set up a system that allows for different starting loadouts that can change values like:

{ read this article }

Posted in Clockwork Empires | Tagged , , , , , , , , , , , , ,