Course of Temptation Dev Diary #51
Added 2024-08-16 19:36:41 +0000 UTC
Hello friends! Happy Friday! Unless Friday is not happy... I once had a retail job and weekends were noticeably much less happy than weekdays. But I digress...
Today I have updated to v0.5.2e! This addresses bug reports made in the last week, and makes a crucial change to the game's Findr app.
Previously, Findr tags you chose tended to be subtractive rather than additive... meaning that if you had a tag that an NPC did not match, they would not "like" you and you would not end up with a match. More tags, therefore, often meant you matched with fewer NPCs.
When this came up in the Discord, it turned out that people overwhelmingly expected it to work the other way... that tags should be additive, and having more tags means you match with more NPCs! This may seem like the obvious thing to do, but sometimes, as you're coding right along, you find you've made odd assumptions without really thinking about them that you later can't really explain... until somebody forces you to confront them and you have to think to yourself, "But why did I do it like that..."
But anyway, it'll now work more like how everybody seems to expect!
Progress on 0.6: The River Rat expansion
I've been spending the week on writing what you'd probably call the baseline events for the River Rat server job. Technically, in game engine terms, it's one event, but with a whole bunch of variations, options, and outcomes. At several hundred lines and with the supporting widgets and whatnot, it's already longer than some entire event sets.
The purpose of this baseline narrative is to represent how orders should usually go. How it actually plays out depends on many factors, such as your existing relationship with the people at the table (those awkward times when you have to serve your friends...), their personality types, and whether they're physically attracted to you.
You, in turn, get a choice about exactly what sort of server you wish to be. You can be the consummate professional, or well, definitely not professional...
Naturally, how you present yourself here is influenced by the bar's uniform, if there is one, and your choices here also have a cumulative effect on the atmosphere of the bar. If you're always flirting with all the customers, then those customers may have certain expectations when it comes to things like apologizing for a delayed order, and suddenly trying to lean on professionalism may not go so well.
Comping the order tends to be an easy way to settle an angry customer, but by doing it, you're also cutting into the owner's profits! Some amount of comping is expected as the cost of doing business, but do it too much in one shift and it'll quickly impact the owner's opinion of your performance.
So, as a server simulator, there are a few things to juggle here, and my goal is to have enough variation with customers and outcomes to make it a reasonably interesting minigame. But, again, this is just the baseline, establishing the essential gameplay loop. My next focus (and my main task for next week) is to add in more random events and interesting occurrences. The baseline event has a low frequency, so as soon as something unique is cued to happen, it'll easily take precedence.
Speaking of events and event frequencies, it occurs to me that I've never explained how events actually work, since I wrote that system long before release and before I was doing dev diaries.
How events work
Events in the game are all defined in one big event database (we're approaching one thousand of them). The game hooks into the event system in many, many places — it's basically the backbone of the whole game.
When it's time to pick an event, the engine first builds an event set. It does this by handing the system a set of tags, a list of words or short phrases that identify which events we might want to fire. For example, when looking for an event for serving a table, we start with a generic "river rat server" tag, but we also add on a tag representing that table's attitude. The tags "river rat server" and "friendly" will build a different set than "river rat server" and "angry".
When I talk about event sets in these dev diaries (and I do, a lot), that's basically what I mean — events that share tags in common and will therefore be in the running when a certain part of the game is looking for an event to fire. There are tons of other possible event conditions too, like time of day, wardrobe considerations, whether a prerequisite event has fired, whether a certain kind of NPC is around, and on and on.
So once we have the set, the question is, which event in that set gets picked?
Again, there are a few possible factors here, but the most important factor is event frequency. Each event is assigned a frequency number — usually around 100 as a baseline, but it depends on the set. These numbers are all just relative to each other, so it's basically a weighted random pick. If we have Event A with frequency 100 and Event B with frequency 50, then think of a hat where Event A is written on a hundred slips of paper and Event B is written on fifty slips of paper, and then we reach in and pick just one slip of paper.
The combination of frequency and other conditions sometimes makes an event's actual likelihood difficult to predict. For example, if an event has a frequency of 1000, but it depends on a rare type of NPC being present, then it's still pretty unlikely! So, boosting the frequency of an event that's firing too infrequently often only goes so far — sometimes, it's other conditions that need to be addressed. This isn't always obvious when just staring at a bunch of code and database info, so I rely a lot on player feedback to determine when an event isn't firing frequently or reliably enough.
As the final part of the process, each event is associated with a passage. When an event is picked, the player is forwarded to its passage and the game proceeds from there. Exceptions apply: sometimes an event set is used in a different way, such as during adult streaming or with the bulletin boards, but I won't go too far into the weeds here.
Anyway, since events are so important to how the game works, I thought I'd write down this little summary of them. I hope someone finds it interesting!
Your comments
You all have been going nuts with the comments lately — and that's great! It's hard to respond to all of them, but I try to drop a short note or at least a like when I can. At the very least, I do absolutely read all of them. Much of what's been commented here lately has made it onto my shortlist for monthly update fodder, so I hope you'll be pleasantly surprised next time I drop a changelog!
Anyway, that's all for this week. I'll close by saying what I always say, and I really do mean it — thank you all for your support, it truly does mean a lot, and it's all of you who make this project possible. Have a good weekend and see you next week!
Comments
Definitely — there's very little currently in the game that I can say I definitely won't revisit, and a lot of storylines and characters remain ripe for more content. I think there's a contribution or two related to the quarterback that I've gotten recently, so they may get a bit of attention quite soon!
Anarchothaumaturgist
2024-08-23 18:54:42 +0000 UTCi just had a quick question if there were any future plans for the quarterback. he's one of the NPCs i hope gets more fleshed out/gets more events in the future.
Jeffrey C
2024-08-23 18:23:55 +0000 UTCYeah! I have some similar ideas written down in my notes. Homework and exams were basically just what I needed to do to get the game ready for release... at some point, I absolutely want to add some variation and narrative to them.
Anarchothaumaturgist
2024-08-22 01:36:00 +0000 UTCI definitely want to add music stuff at some point, and have a band storyline. The River Rat expansion will lay a bit of groundwork for this with the option to add a stage. The community center would be a good place for shows too.
Anarchothaumaturgist
2024-08-22 01:34:38 +0000 UTCMay I ask you a question regarding the semester exam? Do you have any plans to expand the format of the exams in the future to include more diverse approaches? For example, in the [Acting] class, how about having students perform roles on stage as part of their exam? The PC could prepare a script and act alongside a group of a dozen or so NPCs. They might need to gather daily for 1-2 hours a few weeks before the exam to rehearse. I would be particularly interested in seeing the PC take on a provocative female role, performing a sexual scene on stage in front of the professor and other students.
Dunan Rayne
2024-08-22 01:12:10 +0000 UTCJust a thought to add to interests for both the MC & the NPCs what about Music interests which could be added at the start or even being able to at the sports shop being able to buy an equivalent NBA or NFL team say the Tennessee Giants who could be a fictitious Football team the MC could follow
Ian Kinnell
2024-08-20 23:56:40 +0000 UTCWhether or not a student drives often depends on what school you go to. For example, at my university, which had sparse parking areas, students weren't allowed to have cars on campus until senior year (and even then, there was a lottery for parking spots). So until then, unless you knew a senior who had a car on campus, students took bus or train.
Theyeti
2024-08-18 13:21:33 +0000 UTCIn the very first design document, I originally envisioned the trip to town being 1) walking, with the possibility of hitchhiking 2) riding a bike 3) owning a car, with the possibility of rare car trouble, or 4) a bus option, but it would cost money and be on a schedule so you might be waiting awhile too. I ended up simplifying all of that down to the free and flexible bus option that exists today, but that was mostly just part of getting the game ready for release. One day I imagine I'll take a look at this again and think about those early ideas.
Anarchothaumaturgist
2024-08-17 20:25:51 +0000 UTCGood thoughts!
Anarchothaumaturgist
2024-08-17 20:22:07 +0000 UTCSteve has an excellent point!
Hugo Trainor
2024-08-17 16:04:32 +0000 UTCIf I have a whole fucking cult of people who just despise me for some BS reason, combat better be getting added too
Emmzzz
2024-08-17 15:50:40 +0000 UTCThis seems like a good lead into or part of the Greek system when you start working on that.
Steve
2024-08-17 00:40:04 +0000 UTCWhile writing the comment about reputation and rumors, I suddenly had this idea, so I thought I’d add it in. Would you consider adding a system that could trigger jealousy among same-gender NPCs? While it might seem like a cliché, I think it could be an interesting idea for a PC to be ostracized by same-gender NPCs. This could happen if the PC is a nerd, is too attractive(Traits related to the face?), popular with opposite-gender NPCs, or if the PC is seen as promiscuous. It could even be due to physical characteristics (like boob size) that provoke jealousy and lead to hostility from same-gender NPCs. (I always choose the Sex Appeal Perk when playing the classic Fallout. It gains the favor of opposite-gender NPCs, but the jealousy and hatred of same-gender NPCs. :)) They might gang up on the PC to mock or bully her, or they could scheme together to publicly humiliate the PC, completely trashing her reputation. Some of them might even pretend they're not part of the group, befriending the PC, only to reveal their true intentions at the perfect moment and betray her in the worst way possible. As cliché as it sounds, they’ll constantly be spreading false rumors about the PC, just for the fun of it. They might even persuade or threaten the PC’s close friends (especially the vulnerable loners) to turn against her. The PC could find herself witnessing a former friend suddenly ignoring her, only to realize they’ve become part of the group harassing her—or more like their lackey. What I’m suggesting is not just having the PC disliked by a single individual (a rival), but rather being targeted by a group of NPCs who share a common perspective. These groups could collectively bully the PC, putting her in situations that are difficult to handle alone. This leads me to wonder if adding more complex faction dynamics to the game might be a good idea. For instance, something similar to the Milkshake Makers... It’s natural for people to form groups. When the PC enters college, wouldn’t it be natural for freshmans to either form new factions or join existing ones established by senior? If the PC becomes disliked by these factions, their dorm life could become quite challenging. The easiest way for the PC to protect herself might be to join a faction as well. Depending on whether the PC is a model student, sufficiently cool, or meets other specific criteria, some factions might even try to recruit her. Alternatively, the PC could take the initiative to approach a specific faction and request to join, though they would likely have to pay a significant price for this. In any case, if the PC joins a faction, they would naturally become disliked by factions that are in competition or have hostile relationships with that faction. One more thing… Although it may be a bit of a cliché, I think it would be interesting if the PC could choose to remain a lone wolf, standing up against the packs that torment her. From the perspective of others, the PC might be seen as an outcast, a charismatic loner, or simply an easy target. But after all, being a lone wolf always has a certain appeal, doesn’t it? It would be great if, by remaining a lone wolf, the PC could become even more attractive to opposite-gender NPCs (and perhaps a few same-gender ones as well). Alternatively, the PC might be perceived as vulnerable prey, leading opposite-gender NPCs to pretend to support her while actually attempting to dominate PC.
Dunan Rayne
2024-08-17 00:29:24 +0000 UTCQuestion or suggestion idk but I was just playing the game and I was wondering or a bright idea popped if it’s a college game are you thinking about implementing like driving as most university students driver overall take a bus? Or will that be something done maybe far out into the future when your roadmap is kinda close to being completed?
GVO
2024-08-17 00:21:32 +0000 UTCI'd love to see rumors in this game work a bit more dynamically. Our PCs gain various reputations, right? But it seems like those reputations don't really play out in a noticeable way. For example, if a PC gets a reputation as a "slut," I'd like to see that rumor spread, and for NPCs—even those who are meeting the PC for the first time—to react based on what they've heard. The reason I’m bringing this up is because if the PC works at the River Rat, I’d love for rumors about her to spread among the townsfolk and students. Even NPCs who have never met her would have heard the gossip and react accordingly. You know, something like: “Have you seen the new blonde at the River Rat?” “I’m going to get the number of that big-boobed chick at the River Rat.”
Dunan Rayne
2024-08-16 23:55:24 +0000 UTCI think it's likely River Rat will end up with more, given that I plan a couple of different promotions, and all the variations based on upgrades and so on. The baseline event I was talking about today has about the same number of lines as the entirety of the standard event set for working frontend at QuickieBurger. It's difficult to get an exact word count... I can copy and paste it into a word processor but then it'll attempt to count the widgets and bits of code as well, so there isn't much accuracy.
Anarchothaumaturgist
2024-08-16 22:47:39 +0000 UTCHow does working at QuickieBurger compare to what's planned the River Rat in terms of wordcount and number of unique encounters/events/occurrences? I'm assuming there's more for the River Rat, just owing to the difference in waiting tables vs working a till?
James Rabbit
2024-08-16 22:18:07 +0000 UTCThanks for the update! The River Rat stuff looks great so far, can't wait for that.I think that certain types of clothing may be a little too "safe" from wardrobe malfunctions though, like pants for example. Which is the idea I understand, but it'd be nice to have a small chance of something going wrong with them too!
Benjamen EightySix
2024-08-16 21:25:30 +0000 UTC❤️
Ludociel
2024-08-16 19:55:22 +0000 UTC