Category Archives: Clockwork Empires

Personal Property and Desires

Systems are interesting in sandbox games because they connect to each other. You can have a system that talks to another system, and then emergent gameplay what happens when the systems interact in interesting and novel ways. Re-usable, data-driven gameplay code is also cool, because it gives you a way to leverage work you’ve previously done on one system to make another system more powerful. Case in point: personal property.

Maybe all Wilbert Pickles desires is to own a bushel of sausages. Why not?

Maybe all Wilbert Pickles desires is his own bucket of sausages. Why not?

One of the TODOs on my task list for awhile has been personal property. While you can build lower/middle/upper-class houses and beds, you can’t necessarily assign those beds to people, nor do people want a bed assigned to them. Instead, people just sleep wherever, whenever. This is going to change.

{ read this article }

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

The People Problem

And now for something a little different. No, don’t be alarmed yet- we’re just letting Chris write the blog post this week!

When developing an early-access game, you have to make a lot of choices about what to prioritize. Do you fix that bug, or implement this new feature? There’s an endless list of things to do and only so many people to do them. Sometimes things that work ‘well enough’ get left alone for long periods – until the time for a rework finally comes around. And this month the time has come to address Immigration.

Stop looking at this alt text, you!

Time for a bracing game of “Where’s Waldorf?”

The initial immigration system was one of the first events we added to the game so that population would grow over time. Getting more people ​is a pretty fundamental part of playing a colony simulation game, after all. The system, however, was built on many assumptions that made sense during our earliest-access period, where starvation was the biggest threat – and that’s not how things work anymore. Gaining 3 prestige for taking 3 people is basically a win-win situation, and no-brainer choices like this don’t make for interesting gameplay. Prestige favours only added to this imbalance, as it was possible to more than double your rate of immigration by constantly “buying” new colonists – not at all what we intended when the system was first implemented.

{ read this article }

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

World Generation And You

I am super happy with Revision 40, and how it turned out. We have had only one reported Windows crash that was a true crash, apparently due to very elderly AMD drivers, and a couple of OS X issues (apparently in the OpenGL driver stack for OS X.) The new problem we have, of course, is that people are now able to produce very large colonies. Consequently, we have had some issues where certain parts of the game (stockpile management, work crew menu, jobs menu) start freezing up under the strain. The new UI code that Daniel has been diligently working on should help fix the problems with the job and work crew menus; this has necessitated a complete rewrite of how UI widgets are resized, a job that is labour intensive, gross, and involves rewriting code that I first wrote back in 2001 or so. Still, I’m very happy with Revision 40. So happy, in fact, I took a tiny vacation for… well, for the first time I can remember. It was really, really weird.

Above: artistic depiction of Nicholas' vacation based on description provided.

Above: artistic depiction of Nicholas’ vacation based on description provided.

For Revision 41, we’ve basically gotten two messages. First, there is a large portion of the populace who want to see us doing more work like we did (from a technical side) in revision 40 – continuing to build on and refine the features that are in the game right now, and fixing long-standing issues with things like military units and stockpiles. There is an equally large portion of the populace, some of whom also belong to the first portion, who are desperately after new content. From the perspective of a game developer, you have to push on with new content in early access because, otherwise, it never gets done. Plus, there is a feature cost. The sooner you get a feature started, the easier it is to retrofit the existing code to support the feature.

So, we’re going to try to find a balance for this patch: cleaning up a bunch more outstanding issues, now that stability seems to be taken care of, while also trying to finish more of the systems that need to be done in order for us to get the game done. There are two big, BIG technology pieces that need to go in right now that don’t exist yet, and which we need to deal with with some degree of urgency because the cost of retrofitting the game to support them gets increasingly higher as we continue development. The first of these is multiplayer, which I’m not working on right now. The second one of these is the global world, because – let’s face it – we’ve all colonized New Antipodea and New Sogwood a million times right now, and it’s time to go fail Make The Empire Proud somewhere else!

{ read this article }

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

Clockwork Empires June update: THE REACTIVATION OF ASSEMBLAGE 14538

A Clockwork Empires update has been awakened from its aeons-long sleep! We present for you:

ce_2015_jun_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.

Patch Notes:

MAJOR FEATURES

  • Obeliskians! (What are they? Find out for yourself! It might take some digging.)
  • Foreign military units!
  • Massive save/load stability improvements
  • Deathwurm shoving

{ read this article }

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

Hunting the Pointer Wumpus

First, a bit of scheduling news: the monthly update of Clockwork Empires, revision 40, will be released next week. Due to E3 and a giant Steam sale there’s not a lot of point in releasing anything this week.

Last time I wrote a blog post, I had written half of the Clockwork Empires codebase in order to fix various issues with autosaves being reported by users. Naturally, these things never happen when I am playing the game; instead, we got DMP files and sorted through them. (I wrote a little in house tool to process these for me; now I can run a batch file and it runs all the DMP files we get through a little script which automatically outputs their call stacks and other pertinent information.)

The moment of truth.

The moment of truth.

To try and fix these issues, I rewrote the entire jobs system in order to move everything into nice, flat arrays, and to get rid of direct references to pointers. My original hope was that this would fix the save game crashes we were experiencing, which were due to various instances of dead pointers to jobs being left in Lua space. Well, it fixed *some* of those crashes. Once Revision 39A came out, we got a bunch more crash reports: various people’s assignments were crashing, due to assignments being held in Lua after they were dead. Well, it wasn’t part of my original plan, but they got the same treatment – assignment handles are now first class citizens, and we can now actually tell if an assignment handle exists or not, and is deleted or not. Starting from Revision 39B, all the workshop assignments were also moved over to a new system where they were controlled by C++, and we were able to remove huge chunks of broken Lua code. Now the workshops were starting to feel good, in a way that they hadn’t felt since… well, since we first put them in – but yet, we still had save game crashes.

{ read this article }

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

Political Change Through Faction Crises

“Begin with a function of arbitrary complexity. Feed it values, “sense data”. Then, take your result, square it, and feed it back into your original function, adding a new set of sense data. Continue to feed your results back into the original function ad infinitum. What do you have?”

– The Clockwork Empires game simulation! (Thank you, Academician Prokhor Zakharov.) Specific acts in the simulation itself may provoke crisis events. Crisis events allow a player to change their settlement’s policy toward certain factions. I’ve talked about this subject before a little in “Event Design Using Twine”. Let’s pull a newly implemented example: A Fishperson finds a source of meat and butchers that meat, then consumes it. Perfectly natural, but in conflict with the pseudo-Victorian values of the player’s faction. What do you do?

fishpeople_politics2

Obviously.

{ read this article }

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

You have to refactor all the jobs!

Practice makes perfect; once you have a system, you can improve it and you can refine it, but the hardest part is getting the system up in the first place. As a wise man once said:

mcedd

Case in point: I’ve spent the period since the release of Revision 39 and today rewriting a good part of the jobs system.

{ read this article }

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

Fishy Foreign Faction Missions

Players order their colonists around in the grand bureaucratic tradition by creating assignments which are claimed by workcrews with the appropriate filters toggled. This is all very appropriate, hierarchical, and Victorian. What about the other factions in the game, won’t somebody think of the Fishpeople, the Bandits, and the Foreigners?

The first goblin-level implementation of Fishpeople involved spawning a whole mess of ’em and giving them the desire to rush the player’s colony and murder everything in sight, human or cabbage. The second level implementation of this sort of thing saw Bandits spawn with a notion of a group that has a home camp. The improvement pass on this gave bandit gangs names, leaders, and connected the morale state of bandits to one another.

Worthy allies or anti-monarchist revolutionaries?

Worthy allies or anti-monarchist revolutionaries?

{ read this article }

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