Player Food and Housing

Okay, the first thing to note right out of the gate is that I’m not trying to do the hunger/sleep meter thing. I absolutely do not want players micromanaging time and rations and hunger levels/points or whatever. I’m not writing a survival game.

However, I kind of am writing a survival game in a sense. The story opens with the player losing their home and job, and so becoming, at least technically, homeless (and partially armless!). I want to drive that home by occasionally “forcing” the player to go find somewhere to sleep, whether that’s under an overpass in the southeast of the city or in a coffin hotel or squatting in an abandoned office building (three actual options). I feel like that’s actually kind of necessary to avoid the severe ludonarrative dissonance of the player character being deeply upset by losing her house and job, but the player themselves traipsing about perfectly happy because they aren’t actually made to care by the mechanics. I plan to enforce this mostly by just adding environmental messages after every action the player takes telling them how progressively more tired and hungry they are if they go too long without sleeping and eating, kind of like I’ve read Savoir-Faire does.

I’m weighing two ways of implementing this, and I’m not sure which would be better. One, I could use adv3lite’s subjective time extension, and have various major game events have times associated with them, and I very few number of turns check what time it is to see if the player is tired/hungry yet. I haven’t fully worked the technical details out yet, but that’s one way. The other way is to find some decent amount of time per turn, and just have an actual objective world clock and consult that.

I’m overall leaning toward the former for game design reasons, it seems a lot easier to find correct times for things to happen and let the system work out turn time than to find an amount of time for each turn to objectively take that actually makes sense. The issue is that the documentation for subtime.t states that you shouldn’t consult the systems clock too much because it can over-regidify things, whereas I’ll need to check the clock fairly regularly, both for the player, and because I have descriptions that change based on the time of day, which I want to properly cycle.

Anyone have any input on this?

4 Likes

My thought would be: like in Savoir-Faire, don’t actually kill the PC, but have increasingly desperate environmental messages until you eat and sleep. Then have certain events in the game world not happen until the second day, the third day, etc, where “days” don’t advance until you eat and sleep.

10 Likes

This might be a third option, but you could avoid the subjective time, and have these events happen on various turns. Once the events for that day are all done, wait a few more turns and then give the player a “You feel weary after a long day…” message or something like that, and finding a place to sleep basically becomes how the player can access the next day (because who wants to spend the night spamming the WAIT command?).

So the player won’t be pressured by a timer or survival mechanics daemon, but sleeping will still play a crucial role in progression.

I think this might fit into one of the two options provided, but I’m not sure. Either way, a possibility.

5 Likes

Sniped me, lol. This is what I get for posting on mobile.

2 Likes

I plan to enforce this mostly by just adding environmental messages after every action the player takes telling them how progressively more tired and hungry they are if they go too long without sleeping and eating, kind of like I’ve read Savoir-Faire does.

I got your first point! But yeah, maybe I should reverse causality and make time based on sleeping or eating instead of the other way round!

2 Likes

Yeah this is definitely a distinct third option — in both of my ideas, time was progressed by player actions or events occurring, and sleep cycles were then layered on top of that as an epiphenomena that you could theoretically process the game without paying attention to. This suggestion is the other way round, where, at least after enough events, you have to sleep to progress time instead of time progressing on its own.

The only concern I have with this is that it might be hard to strike a balance in keeping the story on hold until the player sleeps without making the player feel artificially limited, as that can get quite annoying. It’s something I ran into playing King of Shreds and Patches, where someone you care about is abducted and you can’t immediately start searching for her, you have to go sleep first

3 Likes

Yeah the other downside with my idea is if a day has very few events scheduled and they all happen before afternoon, then this creates two major problems:

  1. “You feel weary after a long day…” Gurl, what? It’s like 2pm!!
  2. The player might get trained to wait until that message appears before trying to sleep, so if the message gets artificially delayed until an actual bedtime then the player might assume more stuff is gonna happen that day and get manic about it, which causes a mismatch in expectations.
2 Likes

Yeah. These are all the reasons I wanted sleep to be an epiphenomena of time progressed ultimately by player actions, instead of the thing determining time, and enforce it via environmental messages only. It gives players mode agency too. Running yourself ragged and sleep deprived because there’s shit you gotta do is a mood, too.

2 Likes

I can see why you posted this topic, lol. Mulling over the two options you’ve narrowed it down to, and I’m already seeing this becoming a mechanics rabbit hole…

So I’ll probably be thinking about this throughout the day because now you’ve given me a fascinating design problem to gnaw on. However, I did have an old experiment I was working on where different kinds of actions had different durations associated with them. I think I later found out there was an objective time extension for Adv3Lite which did this too. It also lets you set how much time passes when travelling between areas to simulate distance. I feel like this might be more immersive than having a train ride cost the same amount of time as examining a scrapped computer board or something.

Hm. Maybe I should give myself time to wake up first… >>

EDIT: I need to look over the docs for the subjective time extension. I don’t quite remember all the details that one has…

2 Likes

Yeah I already have this a little in my game since when I started I just decided to start with objtime.t and change it later if I needed to. I made outdoor rooms take about 10 minutes to traverse iirc bc the average outdoor room on my map is about the size of half a city block, and set indoor room traversal to take the normal minute or so. I could keep going on that principle and maybe it would end up feeling right, but I’m not positive.

2 Likes

You know what though? I just realized, it only makes sense for certain events to happen on certain spacings of days anyway, so if I use objective time I really will have players having to wait around for things, or sleep to progress the story anyway, since they’d have to sleep to skip enough time for the next set of events to happen, so it’ll end up being mechanically basically the same, except way more awkward, if I do objective time. Maybe I could just have fuzzy objective time based on turns just for the world time of day cycle but have sleep actually progress the story between days.

2 Likes

God my brain fog is so bad I don’t even feel like I understand what I’m saying or any of the concepts here… I think I need to take a week off from this project again just to get back to a place where I’m not in danger of an existential crisis from feeling stupid lmao

3 Likes

Here’s an idea: Modify the WAIT command to allow the player to choose how much time to pass (maybe in 20 minute chunks?). Each day, they get a certain amount of “patience” that they can spend that on waiting, which will mostly be shown by the max amount of time decreasing. As the game gets closer to sleeping time, the patience also decreases. This prevents the player from waiting for the night to pass, but also allows them to wait for daytime events to occur, if they aren’t already busy with other things.

To be fair, this is a proper can of difficult game design worms. Your health has priority, though!

2 Likes

Hmm. That’s very clever, but I feel it’s a but overcomplicated, and, honestly, it doesn’t solve the underlying point, which is that the events in my story make the most sense paced out in terms of what happens each day, so you’re going to end up with the same “can’t do anything until you sleep” experience as the Anchorhead option you suggested except with the added headache of hour/minute level time granularity which is something, as I mentioned a second ago, I don’t really need (or want).

The more I think about this, the more I think just manually scripting out which events take place on which day and telling the player they should sleep when the last event for the day happens feels like a better idea…

2 Likes

Yeah, problem is, PPCS destroys my working memory, and gives me severe cognitive fog, and that creates a nasty vicious cycle with my checking OCD and imposter syndrome until I become nearly nonfunctional. I’m starting to hit that point. Sorry if TMI, I just needed to vent a bit. :upside_down_face:

3 Likes

This feels to me more like a writing/story-design problem than a technical one. So I think it depends on the details of what you’re doing?

Like in games that are moving you through a fixed story, you could have a turn-timer for time of day that sets a pretty generous time-limit to how long a day can be but then have higher-level commands for the major events, say, MEET GARY so the players can skip ahead if they’re done playing around. And those commands set the time and have a sentence or two narrating what you did to kill time. “Your appointment isn’t for hours yet, so you take a quick nap under your favorite tree in the park.” Or if you’re getting near time or past time for an event, you can either urge the player on or just jump them into it: “you suddenly remember that it’s almost time to meet Gary and race back to his office, only a few minutes late.” And maybe only report the time of day vaguely, like “mid morning” rather than “10 AM”.

But if you’re building around puzzles that involve the player figuring out how to do the events, then maybe you only have the plot points advance the time, and possibly a turn counter in between to give them hints or nudges if they’re taking too long?

If the events are things that the player could find or not find, or maybe do on different days, then maybe you need yet another structure. What was I playing recently that had lots of different things to do but just gave you two main actions per day so you had to choose…? Oh, Mask of the Rose. And that’s choice-based. But I feel like if you’re clear about which things happen at what time of day you could get away with giving the player commands that start the thing that’s going to take a big chunk of your day then it’s OK if it glosses over the intervening time.

But yeah. I think the usual advice for IF is “don’t simulate what you can fake, unless it’s central to the story.” And obviously there are exceptions. But it feels like what design would fit best is going to depend on more detail about the kind of story you’re telling and the kind of experience you want the player to have, and I don’t have a clear picture of what you’re doing here…

7 Likes

you might also take inspo from how disco elysium does it. I’m too exhausted right now to explain thoroughly but basically time passes in different chunks of minutes - reading a book might forward time a few hours - based on what actions you take. if you don’t take any significant actions (ie something other than walking around) time doesn’t pass. the mc doesn’t can’t afford to stay at the hotel at night so needs to scrounge $$ or another location to sleep (can be a dumpster). you can’t go to sleep before a certain time (9pm) and you can’t progress the days w/o sleeping.

1 Like

I think Anchorhead did this really well. After you achieve certain tasks, the day progresses into evening, and when you’ve achieved all the tasks for Day 1, then you have to sleep. Then I think on Day 2, when you’ve achieved all the tasks, you get sent to the asylum.

I remember being very struck by how well that game achieved a realistic sense of time.

7 Likes

The protagonist can only traipse if you write them that way. Eating and such might be a way to avoid that perception, but I think narrative voice and in-game events would still require attention.

Besides the community wisdom re: writing vs simulation, I would also say that the value of immersion and what I guess I’d call universal consistency was overrated by the IF critics of the aughts and late 90s. In truth, most players make allowances for the “videogaminess” of video games. Sure, logically Nathan Drake of the Uncharted series is a mass murder and a looter of cultural treasures, but players still seem to laugh at his jokes and worry about his relationship with Elaine. The protagonist of any Dragon Quest game likely kills thousands of incredibly cute monsters.

I can’t remember if eating is ever mentioned in Anchorhead. Does anyone remember? I remember sleeping, because it was important. I can’t remember eating, because it wasn’t.

Even though there are bathrooms, the protagonist of Planetfall never uses them. I think we just assume certain necessary yet uninteresting things happen off camera.

I would only implement hunger and sleep as player-initiated action if I wanted to fully implement them and make them in-game problems to solve. If it’s ambiance, there are probably easier and more effective ways to do it.

A final note: one thing that Anchorhead (and Ballyhoo before it) stumbles over is making it clear what is required to finish the day. While that seems easy, if a game as polished as Anchorhead can do better, it must be challenging to get right.

6 Likes

You raise a good point, but I definitely think it would be useful in my case to drive the point home by requiring the player to find somewhere to sleep. Yes, in general, ludonarrative dissonance is something people can just suspend their disbelief about, but for my specific game I think it needs a sleep cycle at least. Especially since I have one or two puzzles and cool set pieces/scenes designed around finding shelter, yet I can’t find a way to motivate the player to interact with them properly without sleep being required at least occasionally somehow. Needing the basic necessities of life is what motivates the character to actually get involved with the rest of tbe plot (standard cyberpunk “just one job”) and so I need to actually motivate the player who’s directing the character to di what the character is motivated to do.

2 Likes