(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.)
I. THE CAFFEINATION
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.
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?”
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.
II. THE ACTUAL BLOODY UPDATE
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.
III. THE CALL OF THE KING-UNDER-THE-MOUNTAIN
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.”
“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.
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.)