Fullness as a game mechanic

I can’t really vouch for WG or food stuffing, but I have thought of how to use inflation properly as a debuff in an RPG. Do you know about the toxicity system in the Witcher? The stronger the potions you make are, the more toxic they are. That way you can’t just keep chugging super-strong potions, else you’ll poison yourself.

Compare that to an inflation RPG, where buff or health potions would puff you up proportional to how strong they are. A health potion that healed you for 25% wouldn’t do much of anything in terms of inflation, but a 100% health potion would really make you nice and taut. That inflation state would then affect the player negatively in some way, be it damage vulnerability, reduced agility or something else.

2 Likes

Actually, the idea of toxicity (in the case of the example I’m going to mention, it’s akin to drunkenness) has been parodied before, but never used in a serious context with healing potions, that I can remember (the early Epic Battle Fantasy games joked that ‘pots’ could mess you up if you drink too many)

Digging this up since I’ve been working on the fullness mechanics for my game the last couple of days. I really like the ideas in the initial post, I don’t think I’ve seen those implemented before, but they sound really feasible and would allow for a lot of variation. I feel like some parts of Vale City are close to that, especially with the quest/misc rewards that allow you to consume higher tier items for a reduced cost.

Yamhead’s suggestion of replenishing mana was implemented really effectively in Nerds’ “Some Bullshit Stuffing RPG”. My rpg game is currently using a really similar system, although it’s with an AI npc that the player won’t control during battles.

The question I’m running into now is deciding on a mechanic for increasing the base capacity. In the two games I mentioned, it’s incremented with the player level. Dingotush’s Yaffaif has a somewhat appealing system of increasing the top limit by a portion of your food if you eat when very near max fullness. However, you must then drop below a certain fullness level in order to increase it again. The idea of an instant stretch from overdoing the stuffing is great, but the straightforward method to grind increased capacity is a weakness. That said, I’m not really sure what methods there would be for obfuscation that would improve the experience, since any “cooldown period” has the same grind method, just with more steps.

In Tiggertoo’s Weighting Game, the “what to eat” choices are mostly handled with some hidden stats that progress naturally over time. This is pretty much my favorite implementation so far, since you get clues that you’re making progress, but it’s obfuscated in such a way that you’re not just grinding and waiting for a set of numbers to increase. Unfortunately, I can’t steal this mechanic completely since it doesn’t introduce an upper limit in most cases.

The other examples I can think of fall under the “sit at X% fullness for Y amount of time” in order to make a chance. This is probably the most used scenario and what I’m leaning toward, since it’s engaging and is easy to convey to the player. I’d be interesting in hearing what formulas people have used for this, since it seems like the “Y amount of time” can vary widely. I had planned on taking the FetishMaster formula as a starting point, but I think I’d actually simplify it a little since it’s pretty overwhelming.

After typing that out, I had a really basic idea for a starting point: Use the Yaffaif method of hitting the top-out state, then roll an RNG chance against some hidden stats. The hope would be that this wouldn’t encourage single-mindedly grinding until the other values have been raised, at which point those stats would also positively feed back into the process. So, a sort of snowball approach.

For my fullness gauge, there’s 4 main stats that play a role, I think two of which will be visible to the player:

  • Capacity - Obviously represents the max capacity of the fullness meter. Consumables in the game have a size (planning for grams/mL) and calories associated with them, I’ll probably be googling all the food types for the actual calorie density so I don’t have to think about it.
  • Metabolism - Affects how many calories your character can have in a day without gaining weight. In combat, affects the fill speed of the ATB meter, food digestion speed, and mana gained from food. I’ve tied the digestion rate to it directly for now, where each combat “turn” simulates a certain amount of game time.
  • Greed - Invisible stat that helps determine the minimum fullness at which the npc eats, will allow exceeding 100% fullness, and determines item eating speed. At 0, fullness will drop to 0% before the npc will interrupt any action with eating and the max fullness is 100. At 100, the minimum would be 50% and the max fullness is 125%. Eventually these values will run into each other, so I think I’ll cap minimum fullness at 100% capacity as a stopgap.
  • FatDesire - Invisible stat that determines the “preferred fullness” of the NPC (explained later) and reduces the penalty for being over 100% fullness. Once this stat gets high enough, it ends up being a bonus to ATB speed to be over max capacity.

The two hidden stats are then used to determine 8 or 9 other stats that regulate the list of items the npc will eat, when it will eat if there’s no other priority, when eating is the priority, how many of an item to eat, and the penalties for going over max capacity (which won’t happen at base stats). It really spiraled out of control quickly, so I ended up making this graphic in Paint to help me visualize it:

Apologies for the wall of text, this was helpful for me to think through some of the mechanics of other games and decide on a path forward. Any answers from others about how they’ve handled expanding capacity would be helpful, I haven’t looked into the nitty gritty details of very many games so far.

Edit: Ended up implementing a slightly modified version of the idea. Instead of using the stats to rng upon entering the Stuffed fullness, it rolls based on how far into the range you are. So if you’re in the middle of the range, it’s a 50% chance at increasing capacity. This still ends up meeting the sort of snowball effect I was looking for, since at base stats or without large food items one won’t be able to reach that state.

3 Likes

Since you mention it, the current Yaffaif version requires you to drop below a level of fullness and for a certain amount of time to elapse before you can stretch capacity again. It also factors in species and height to determine the set points. I haven’t decided yet how to limit the “advancements” you can make this way, but there probably needs to be an upper bound that becomes harder and harder to reach.

What is in the pipeline for a future version is that overstuffing will cause the development of a gluttonous trait where the PC will randomly snack on things if they are feeling peckish, removing some of the player agency. Given that some of the food items may not be … entirely wholesome, this can be both a blessing and a curse.

Ah, ok. If you’re looking to limit the advancements, one simple approach is to log the “starting stomach volume” and use this to make a stretching modifier. So if starting at 1000cc and going up a potential 100cc, it’s currentVol + currentVol/baseVol * stretchAmount. For the first stretch, you’d get the full 100cc, but if you’re already at 2000cc, you’d only get half that.

The baseVol could be something that updates slowly over time to match currentVol or via quest progression if the game is heavily stuffing-centric.

I’m not sure if you’re using a hard or soft cd timer, but you could couple this with the elapsed time against a “recoveryTime” and say if it hasn’t been at least X amount of time, then no stretching happens, but along X to Y you get either a linear or a logarithmic scaler for the stretching. I think I mentioned it later in the post (and this isn’t directed at your game), but I’m biased against a hard cooldown timer since it doesn’t generally contribute more depth to the system.