Last time I wrote a programming team update about Clockwork Empires, I made a comment that was somewhere along the lines of “the game is starting to hit that point where it transitions from a bunch of technology bits to something that looks like a game.” Well, we’re a lot closer to that goal than we were last update. Some of the edited highlights:

The Lua code, which has been a major time investment, is now starting to pay dividends. Pretty much all the old code has been moved over, and every job is now represented by a mix of XML markup and Lua scripting. Some of the XML may not be flexible enough, and may suffer from the same problems as Dredmor’s old spelldb.xml, so we’ll see what format this ultimately ends up in. Nonetheless, progress is being made: people can now harvest berries, clearcut forests, and construct their own buildings. This represents a lot of infrastructure that hasn’t directly translated to gameplay; at some point, though, somebody will start banging in gameplay using this existing infrastructure and all the assets that David and his crew have been working on, and it’ll start to feel more like an Entertainment Product.

Hunger is now in the game. Since we don’t have starting colony loadouts yet, if you don’t start harvesting food in the colony something like this happens to everybody…

… with the exception of one poet, who managed to get to a berry bush. Rather than harvesting berries, however, he was inspired by its beauty and attempted to create a magnificent work of poetry. He failed, however – and then died of starvation:

Shortly after that, we got people actually eating food. This created the usual cavalcade of bugs: people eating the same food, people eating invisible food, people eating food in somebody else’s hands and in one case inside somebody else’s body.

Biomes are in a “done-ish” state for now. You can now define distributions of in-game objects across the world, using various sorts of noise kernels and types to determine their clumping and sparsity. Here, for instance, we see somebody hanging his head in abject disgrace in a marsh terrain full of bamboo – probably due to an inability to create poetry:

Incidentally, we have poetry in the game and it is wonderful.

Here is a forest scene, again all specified procedurally by the biome generator.

Mr. Whitman, having completed the task of biome generation, is now working on Animals. We expect to have capybaras savaging the population shortly. Naturally, now that we have trees, we have the ability to cut them all down:

When a job is created, it has the option to create an “assignment.” This is hidden from the user, but the engine uses it for book-keeping. When a tree falls in the forest, if another tree is nearby, it will post itself to the first tree’s assignment; the work party responsible for tree cutting (or individual, or whatever) will then move on to the next assigned job in the assignment preferentially, which is assumed to be as useful as the original job. In this manner, we can have useful behaviours like workers repeatedly harvesting berries, clearing mines, or cutting down an entire forest. These all represent cases where you want to think of something as an individual job, but in our system it is really a system of individual jobs glued together.

People can also haul things back to stockpiles if a stockpile exists, and if the object in question requests it. Right now we are definitely using Dwarf Fortress’s model of “leave the log where it is, we have more trees to kill.”

Finally, this happened.

I swear, I was nowhere near the poet at the time.

Micah and Ryan are busy working on networking stuff, which is fairly boring and which we don’t want to talk about. I also spent a certain amount of time last week optimizing things and fixing bugs in the rendering engine, which we did using a really neat software package called Telemetry that deserves its own blog post in a couple of weeks.