Player Food and Housing

Sure, that makes sense. I think your decision to make problems out of it is the right choice, so that it doesn’t feel like busywork.

3 Likes

Yeah, it feeling like busywork is what I’m most afraid of — its why I want to keep away from objective time and quantified food/sleep meters as much as possible too. Parser IF imo should really not have standard RPG mechanics!

3 Likes

In my first game, I leaned hard on periodic environmental messages, and was warned by my beta testers that they were being printed too often. You might find telling the player every few turns just as effective. That, plus finding other ways to drive the point home (such as the player passing a cafe and having the smell reminding them of their hunger, etc.)

I’ve not used the subjective time extension, but from my read, if you check the clockManager every n turns, rather than every turn, it might work out. You could make n a random number bounded by reasonable values, and/or only check after “action” events and not common, more-static actions, like Examine, LookIn, etc.

5 Likes

Solving a problem of food/shelter resolves the Anchorhead issue with ambiguity re: when the day ends. Introducing the problem telegraphs the player status/progress in the day and could even provide a pointer for the player. “Once I do x I can try to find something to eat” or some such.

Without agreeing/disagreeing re: RPG mechanics (I need to think about that!), I do agree that simulating a minute-to-minute clock would require a very narrow and specific reason. People don’t enjoy going back to Infocom’s Deadline, for instance, despite its reputation as an “important” game.

2 Likes

True. I think you actually had to go to the house and the bedroom to get the “You’re sleepy” message, or something like that.

3 Likes

Anchorhead’s another great example of what I was imagining: you need to go sleep in order to progress the plot, because the night doesn’t pass until you do, and certain things aren’t available until the second day.

1 Like

Another thing (I may be late on this): Instead of killing the player or nagging them with environmental messages, perhaps as they get more hungry or tired the player becomes limited with regard to what type of actions they can perform.

Too tired? The PC refuses to jump across that gap, or climb the ladder, or go to work, or search a location for a key, or read long item descriptions “It’s a magical book that definitely holds secrets of the universe, but seriously you’re too tired to concentrate on this right now.”

Too hungry? The PC can’t concentrate on driving and refuses to enter any location that doesn’t involve lunch. Interacting with NPCs becomes difficult because the PC is hangry and disagreeable. “You attempt to converse with Bob about non-food related subjects, but this proves frustrating and he tells you to come back when you’re in a better mood.”

7 Likes

It depends on how much freedom you give the player, but it sounds like you need to keep track of hunger and energy behind the scenes and just write certain interactions to change a bit depending on the player’s condition levels. I don’t think you can avoid condition meters, but if you chose 2 or 3 and figure out how to change how the game worlds reacts to the player based on those, you might find that interesting level of player empathy and engagement you are looking for.

I would also consider a third condition called spirit. Maybe something good happened (spare change, befriend an animal, etc.) and it lifts you up a bit. Something bad and it demoralizes you further. It’s optional though, as the 2 other conditions are the basis for making it all work.

To keep the 2 or 3 conditions manageable, I would combine them into one rating called well-being. This is the only thing you check to see how things play out most of the time. I would do something like, 40% hunger, 40% sleep, 20% spirit = well-being. You could do certain things based on the individual conditions, but I don’t think you would have to.

Maybe someone tried to offer you help, but you snapped at them when they asked you a personal question… like maybe the condition of the player creates some unavoidable and undesirable scenarios. Can you get from point A to B in time? Will your condition make you look rougher and less approachable? Will you eat something from the garbage? Will you share some food with another? (being too hungry won’t allow you that choice, etc.)

This is just spit balling. I have no idea what your game entails, but maybe there’s something here in what I’ve said. At the very least, hearing what you don’t want can be helpful too. :wink:

Good luck with your game!

1 Like

That’s an amazing idea, I will almost certainly integrate some of this. It’s definitely how I often experience the world given my chronic illness too, so it could be cathartic to have players be able to feel that a little.

2 Likes

Those are all fascinating mechanics, but the game I’m working on is already going to be huge (map size and story size-wise) even if I implement it in a relatively straightforward classic school manner e.g. Anchorhead, and I’m no Emily Short, so I’m trying to keep all of the mechanics I do introduce as simple as I can.

3 Likes

in my WIP is only a day, but the time is definitively abstract (suffice to say that the player can’t figure the ToD for a reason), but the middle game has two parts, separated by the break of daylight, whose is fused by player completing the first half of the middle game.

2 Likes

That’s kinda what I’m working on, only days are divided into different time slots: morning, afternoon, evening, night, and [other].

If it’s the afternoon then maybe if you go by Alice’s place she’s mowing the lawn and if you go by Bob’s place he’s grilling burgers in the back yard. If you just wander around, time doesn’t advance. But if you help Alice with the yard work or hang out with Bob and have a burger, then it becomes evening. Then if you go by Alice’s place she won’t be mowing the lawn any more, and at Bob’s place he’s no longer grilling burgers.

When you advance time via an evening event, it becomes night, and then you can wander around, but aside from specific events, there’s nothing special to do in that time slot, so time won’t advance unless you go back to your room and sleep. The game will nudge you with messages about getting tired or needing some rest if you loiter around for too long, but there’s no underlying mechanic forcing you to end the day at any specific point. When you eventually go to bed, it advances the clock to the next day.

Specific in-game events can trigger other sorts of time passage—agreeing to meet up for the midnight showing of a movie or spending the day travelling to some location and that kind of thing—and then the clock is advanced via the event and then normal scheduling resumes.

There’s no explicit “time will pass” notification when the player is presented with most of these options, although it will frequently be obvious from context. But there aren’t any hard deadlines in the game keyed to these kinds of events, so they player isn’t punished for accidentally advancing the clock too much or anything like that. The intent is that players will pick up on the fact that “complex” interactions with NPCs will tend to advance the clock and just faffing about doing normal adventure game stuff (picking up small objects, trying to get into every remote corner of the map you can, and so on) won’t.

There’s no hunger mechanic or anything like that, and eating is mostly just part of the background of events: if the player is waking up and travelling to some location, the travel message will mention that they picked up a bagel on the way, or if they’re spending the afternoon discussing something with an NPC they might be doing it over lunch at the diner, and that kind of thing.

The basic unifying idea in all of this is that I don’t particularly want the player worrying about hunger and sleep mechanics, so I’m not implementing them. I do like having food and sleep embedded in the narrative, because they’re something we (that is people in the real world) track the passage of time using, so they’re narratively useful for giving a sense of passing time in-game.

In gameplay terms, the main reason I want/need a passage of time mechanic is that I want to have NPC reactions that have to be built toward over time. That is, if you ask Alice if she’s up for investigating the UFO crash site (or whatever) and she doesn’t like you/trust you/whatever enough to agree, I don’t want the player to just be able to buy her a taco or take out her trash or whatever and then ping she’s instantly willing to help you out. You’re basically constantly giving NPC reactions little nudges in various directions, and on any given day you can basically roll the dice to see how they feel…but if you fail the check for the day, you need to let them sleep on things and try again the following day.

2 Likes

In the game I’m currently working on, I have a core function to cover time. Each section of the day (eg “afternoon” or “evening”) is broken down into smaller units. The current time/day/season is calculated based on variables I progress via parameters I pass in. I then pick where to run it and what to pass in.

For example, if current_time > 0 and current_time < 10 then it’s dawn. If current_time > 80, then set current_time back to 1 and set day to day+1. Same with new season, when day hits 30.

Then I run that function when I want to advance time. Moving to a different room might cost 1 time, but watching a movie might cost 10 or 20 time.

Then I can create basic npc behavior by checking what time of day it is, what their mood is, quests, tasks, etc to determine their location and behavior. For example, if it’s morning and Sally is happy, she might be in her workroom experimenting and will smile and chat with you, but if she’s sad she’ll be in the study reading a book and will only talk to you if you’re friendly with her.

3 Likes

I found it’s much less annoying to use day-phases instead of lots and lots of time segments. RSPM has morning-afternoon-evening-night and I had a flag that would trigger when the player did something to advance the clock like go to work or sleep and I had a counter that counted phases where the player didn’t sleep so if it got to 5 or 6 when the player returned to their room they would automatically sleep and advance to the next phase which might cause them to miss important plot during and potentially knock sleep patterns out of whack - if they sleep in the morning and didn’t sleep again that night they would start getting sleepy again in the afternoon or evening if they didn’t get back on track.

This also allowed me opportunities like the situation where if the player hangs out too long with Ivan playing video games they lose track of time and a phase will advance unexpectedly. Or if they got high with Ivan and distracted on the way back - didn’t click the link to go directly home - they got preoccupied and missed a phase, or time could warp the other way (as cannabis can seemingly cause time-slowdown) and there was a way to gain an extra phase as if the player got preoccupied and lost track of time. I’ve experienced that as “What am I doing? Have I been brushing my teeth for a whole hour? Oh, no it’s been like two minutes!

2 Likes