While Matt finishes some UI code work necessary to make our Research system happen, I’ve been improving the Spaceface log system. The end result is that citizens now have rudimentary personalities!
In Alpha 3 and earlier builds, the process by which citizens would post to Spaceface was simple: when a given type of event happens - getting tired (rest need crossing a threshold), eating a meal at a pub, gossiping with someone - they’d refer to a list of lines written for that particular event and pick one randomly. The first screenshot above shows the selection of lines for “duty need reached a critical level” in the Dialog Database tool we’ve used for every Double Fine game since Brutal Legend. (Aside: this tool also provides a framework for translating the game into different languages, which we absolutely want to do at some point! See our Frequently Asked Questions list for more on this.)
The deficiency of this purely random approach is that citizens in the same circumstances all tend to sound the same. We might write a range of lines, each expressing different quirks and viewpoints, but citizens would appear to flit randomly between these voices, losing out on any real sense of characterization.
Before we even launched Alpha 1 I had a plan for how to improve on this, and only just recently had the time to make it happen. Now, citizens have a table of personality variables (debug text in the second screenshot above) which the log system cross-references with tag data we’ve added to lines (right-most column in the first screenshot) in order to rank the available lines and determine which one best fits their unique psych profile. They’ll also refer to other status attributes such as their morale, current duty, and needs levels. It’s very easy to add new tags, and now that we have a range of personality traits we can, in future updates, have these traits influence the decision-making process.
So now we can, for example, write a log about a miner doing their duty while thinking about delicious sandwiches, and next time a miner is mining and wants to log about it, the system will pick that one if their hunger level also happens to be high. The strength of the system is that we don’t have to write lines for every possible permutation, just tag ones that jump out as being appropriate for a specific voice.
I also added queue functionality for new logs, so that if a citizen tries to post lots of logs within a certain interval the system will only post the most important or appropriate ones.
This system is entirely compatible with the writing we’ve already done, and the only extra work now needed when writing new lines is to just tag them appropriately. The flavor and uniqueness of the Spaceface logs now has the ability to scale with our resources for writing new lines.
What sort of things would you like to see citizens posting to Spaceface about? What kind of personality quirks do you think would make for interesting writing? Let us know in the Spacebase forums!