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.
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.
To change this, people now have desires – a character can have a long term want outside of the simple “give me a job, sort the job by priority and utility, and do the job.” How a character fulfills the desires may be up to you – for instance, a character may want an upper class bed, and building such a bed will allow them to claim it and fulfill that desire, which in turn makes the character happy. In this case, the mechanism for fulfilling the desire is going to be done as part of the decision tree rewrite – a character will look for any property related desires they can fulfill and jobs that they can run to claim their upper class bed/house/steam pump/whatever.
We now ask: what is the nature of desire?
To implement desires, I used the same requirements block that we use for jobs and events, because recycling is pretty good and because there are already something like seventy-five different requirement types that we can leverage to create interesting requirements. But this, of course, means that desires can be used for more than personal property. We can give people long term, complex ambitions:
Having a system of desires means we can also add things to it. For instance, characters may gain desires as a consequence of events. Characters may be able to talk about their desires as a conversation topic; if a character has a desire which is the same as another character’s desire, they may be happy. Fulfilling a desire may give somebody a memory of the desire being fulfilled, or a character may gain an unhappy memory by thinking about a desire that isn’t fulfilled. This opens up lots of interesting behaviour. A further extension of the system, which isn’t in yet because it requires adding a little more state to a desire, is to have a desire involving a specific object – for instance, the desire for Josephine Boot to see Gilbert Prattwater dead so she can spit on his gravestone. We will see if this is necessary or adds anything, as there is such a thing as overdoing it.
In other exciting character news, we now finally have alcohol removing your memories correctly, Daniel is still up to his eyeballs in the UI mines, and David has made a bunch of changes to “fishpeople hugging.” My plan right now is to wrap up desires and personal property ASAP, push that and the map generator stuff (which, for now, will generate the map and then place Antipodea and Sogwood back on it; right now, it’ll be a purely cosmetic change, working towards getting the full explore-the-world experience working correctly in upcoming weeks), and then busting as much of my enormous bug TODO as I can until we hit Revision 41.