SakeTami
courseoftemptation
courseoftemptation

patreon


Course of Temptation Dev Diary #94

Hello friends! Happy Friday to all! "But it's Saturday" I hear some of you saying. Even so...

I've continued my work on NPC simulation stuff this week. It's still mostly backend stuff, but I've begun surfacing some of what gets simulated as a prototype Elkbook timeline, which I'll show in a moment.

I've seen some concerns about save file size, processing time, and all that. I share those concerns! I've been coding this pretty cautiously to prevent it from running away from us. For one thing, the worst case scenario I was testing in the previous dev diary really was the worst case — 2,000 NPCs all having a defined relationship with all other 2,000 NPCs. In practice, we can have plenty of stuff going on by capping the number of defined relations at 10 or 20, which drastically reduces data storage needs. Also, some NPC relations will be determined procedurally, which means they can have a value without needing to store anything new (a technique already widely used throughout the game to save on data storage).

I did try some other methods of arranging the data but I wasn't able to find anything better than what I worked out last week. There was one method I was sure would be the best, but it came out even larger, and had a ton of overhead besides! I'll likely keep trying different things, though I think where it is right now is pretty good. The methods involved are pretty self-contained, so it isn't hard to try different things.

The next task was starting to list out specific simulation events with prerequisites for picking them, which is almost completely but not entirely similar to the event picker that chooses which events fire in the game. Since these events are NPC-first, though, it's the existing people picker that does most of the heavy lifting.

There are data storage needs here as well — since we want to be able to see these simulation events as a timeline and see a history of them, we need to slim them down as much as possible and, at some point, cap how many we're storing. I used a similar trick here as I used with NPC relationship storage, so that a stored simulation event is just an inscrutable array of integers. Then, on demand, this array can be parsed into an entire event:

Here's a look at the very first prototype NPC simulation event timeline. This is just a proof-of-concept that I put into a plain passage, but in the long run, I envision this looking like a proper social media timeline. These are mostly fluff events (commentary on their classes and the time of year — I just wanted stuff to fill out the prototype timeline) but you can see one relationship change surfaced as well.

I want to spend the rest of today working on surfacing simulation events in the other way as well, namely by turning them into events that you can witness as you walk around campus. This won't make sense with every possible background sim event, but it will with some of them!

With that done, we'll have the very basics of the background simulation working — with just a handful of prototype event types, but still. After that, the task will be expanding the variety of simulation events, extending what they can do, and surfacing them with prose events and a revamped Elkbook.

But, next week, it'll be time to turn our focus to preparing the October update. There are a couple of things I have it in mind to look at, like making encounters work better in large groups, or adding a new seasonal event like homecoming. Anything you'd particularly like to see polished or extended? Let me know!

That's all for this week's dev diary. I'll be back next week with some talk about what we'll have in the October update. Please have a good weekend! And thank you as always for your support, it means a lot!

Comments

Hello. ... Great Game, great job. I do have a question about World Seeds and have no idea where to ask it. I have been trying to make a world of NPC bullies, and have tried various combinations. Single dangerzone, meangirlsdangerzone, firmhanddangerzone, etc. However, following the same basic interactions for each new game, I have not found any difference in each 1 week test run. Do the World seeds really have an effect that can be felt, or are they more for flavor? Thanks.

Barney2525

This is so exciting! Worth creating a new save over lol

Egypt

I'd love a homecoming event! A big game followed by a formal dance. It could open the door for gossip, such as comments about how well you dance or who's leaving the dance with whom.

QueenJul13

It would be nice if the River Rat was extended on the normal setting, not being a lewd restaurant or high class restaurant but for being a normal restaurant, meaning there should be a bar for Friendliness that helps advance your position at the job. Mini-events for the normal vibe could be restaurant parties events, where you are dealing with multiple tables and have to deal with them all at once. Another could be dealing with a food critic, social influencers where you have to serve them well to give the River Rat a good review with success giving you a boost in performance. Another could be discussion with daily special where you and other workers are given a vote on what should be the daily special, with you being the deciding vote, between each three dish, you choice will either be popular, normal or unpopular by the customers, with each affecting performance, positive, neutral or negative. Factors for what makes each dish popular, normal or unpopular, depends on day of week, month/season and weather. These events would help fill in the content for working in River Rat under normal conditions while advancing in your position at River Rat.

Hugh Mccabe


More Creators