Course of Temptation Dev Diary #131 (Patreon)
Content
Hello friends! We are on version 0.8.2h as of a few minutes ago, with two bugfix updates going out this week.
And now... it's dev diary time, and furthermore, time to look at the development focus poll.
Aggregating the platforms, we end up with:
Breaking this down, there's a strong contingent for new stuff (campus lake, spring break... arguably roommates, since it's building on the housing I just added), and also a strong contingent for extending existing content (pregnancy events, the basic campus/town/residence hall/Greek event sets, NPC sim events, starting options, QoL stuff). So I'll be mindful of not always just adding shiny new things (however tempting that is) and making sure I also spend time extending existing events.
It's also clear that the general consensus here is a strong focus on new events (which totally makes sense, they're the soul of the game) and a bit less on things that would focus on mechanics or under-the-hood sort of stuff. Which also makes sense, as 0.8.0 involved a ton of under-the-hood work that could now stand to be filled out and surfaced more.
In any case, the clear number one winner is to continue my work on housing and implement roommates, so that's what I will be working on for now.
The closest thing to a roommate situation in 0.8.2 is being over at a partner's place after a hookup or permanently having access to their house. You might have noticed that this uses a little bit of a hack: it just always places your partner in the room with you, with the exception that they refrain from following you bathrooms.
Why is this? Well, it's because the game doesn't quite know where townies are supposed to be, and this dates back to decisions I made way back before release.
Now, not to shatter the illusion, but in a game like this, appearing to simulate something is often mostly identical to actually simulating something when it comes to the player experience, yet is a lot cheaper. NPCs don't really move from place to place in a way that the game keeps track of; rather, when you move to a location, it will quickly assemble a list of NPCs that could be there and then pick a subset of them to actually be there, tending to prioritize NPCs that you've shown interest in or that the algorithm thinks you might be interested in.
There are exceptions to this, where an NPC's presence is more deterministic, and there have been more exceptions added as the game develops: students are at their classes, people are reliably at their nightlife locations, and so on. This isn't to say NPCs have no schedules whatsoever, but the granularity tends to diminish with their distance from the player. Students in Chicory Hall have the most specific observable schedules: they shower at specific times, eat at certain times, and so on.
Townies, on the other hand, don't really get any granularity at all. They're just a big pool of people that are around town mostly randomly, and while the nightlife system (added post-release) now directs them in the evening, it's mostly a free-for-all.
This works to the degree that the player isn't in a position to notice discrepancies. If you see an NPC at a park, then head to a store and see them there too, that isn't implausible; if you got there in that timeframe, so could they. But if an NPC is sleeping in your bed, then you go to their workplace and they're on shift, then you go back home and they're still in bed, then suspension of disbelief starts to break.
So far this hasn't often been a problem simply because it's difficult to observe a single NPC closely enough to notice discrepancies. But once almost every NPC in the game might become your roommate, this changes! So, the first step to knowing whether an NPC should even be home when you are and what they're doing is to nail down all NPC schedules.
So, that's been my project for this week. This plays into another goal that's been on my list: to let the player locate NPCs during the day and not just through their chosen nightlife activity. A big part of this is giving them actual work shifts, instead of picking randomly from the pool of possible employees when you walk into a job location. NPCs will now work up to five days a week at specific times. Students, naturally, are most available on weekends, but may take late shifts through the week that don't interfere with their classes.
Townies have now also gained the same kind of basic schedule that students have always had, so we know when they should be asleep, when they shower, when they'll eat, and all that. With all of this done, we can determine not just when NPCs are at home but also which room they're in and what they might be doing there. That gives us the basis we need to start fleshing out the experience of living with somebody else.
Another necessary extension I took care of is that it's no longer enough to know who owns a housing unit, we also have to know who each bedroom belongs to. I'll probably let the PC override NPC decorations in common areas (it'd be annoying to have to live with NPC decor and never be able to upgrade it), but bedrooms will be private areas. Housing information will record one owner and however many roommates, and similarly, a bedroom might have one or multiple owners.
All of that more or less takes care of the foundation of the roommate system. I've also planned out several of what I call "key narratives" — experiences I want the player to be able to have that will be conveyed through events and mechanics. These include arguing over chores, a housemate bringing over a date, a roommate walking out of the bathroom wearing very little, and things like that. My logic is that once a bunch of key experiences like that are possible, then the system at least has a good start. So, for the remainder of the week and into next week, I'll be writing the events that lead to these.
That's where we are for now! Thanks for reading, and as always, a huge thanks for your support, it means a lot. I'll be getting back to work on the project now, and I'll be back next week with another progress report! Have a good week!