Need some help with optimizing a multiple path visual novel without having to make a ton of renders (abandoned project)

I want to make a wg visual novel with multiple paths depending on the player’s choices. The problem is that I don’t know how to make events featuring more than one character work since every character will be able to gain weight at different speeds depending on the path you take.

In “the weighting game” the story is moved forwards by how much the main character weighs. This makes all of the other characters gain only when the main character does and always the same way, the game is pretty linear.

I want interactions between characters differ depending on the weight of each of them, so it’s different if one is fat or when they both are. A chunk of the game will use sprites so that won’t be a problem but bigger events will use scenes with the characters actually in a physical environment.

I was thinking about using dates (like the day 20 or day 56 etc.) as triggers for certain events. If you choose a certain character to fatten then you lose time from the day making it not possible to fatten another character that day. This way it would decrease the amount of possible weight combinations at a certain date. The problem here is that the longer the game goes on the more variations of that one event I’d have to make. If I make the events trigger by a character reaching a certain weight then the combinations increase even more, so that doesn’t help.

I want the characters to have around 10-15 stages of weight (from around 130 to 300lbs). I don’t want to lower the amount of stages or the characters will look too different with each stage. With so many stages the amount of combinations increases of course.

I had an idea to make the characters slowly gain on their own even if the players does nothing, this way the amount of possible combinations decreases but also takes away the fun combinations where you could fatten one character fully and one not at all and have them interact.

I could make moments where the player chooses between one of two characters to fatten. This way I decrease the amount of combinations but also allow to keep a character you want slim.

I also thought that some events would play out the same when characters are in a specific weight range (stage 3-5 for example). This way I could render each character on their own for every weight possibility for that scence and then combine the renders depending on what combination I’d need. I’d change the dialogues a little bit depending on which stage they are but only to not make it exact same.

Does anyone have any thoughts on my ideas and what ideas do you have on how I could handle this problem?

2 Likes

I think this is a fantastic question that isn’t difficult just from a renders perspective, but writing as well! With actual studios and multiple dedicated people working on everything, his branching narrative interaction can be quite resource intensive, which is why so many solo dev games (my own few included) end up with very limited/no branching, or branching that ends up a little half-baked.

To provide actual feedback on a problem I myself would love to see solved, I think the best route to achieve what you want is to, at minimum, stick to the weight “ranges” you suggested. Sure, it might look a bit off if a character is size 5 and you are using the stage 4 image for a render, but it ultimately won’t detract much and greatly reduce how many individual scenarios will have to be created.

Of course, the most obvious solution is to scale back your pathways as much as possible, but that does lend to more linearity than I think you’d like. I’ll be interested to hear what others think!

2 Likes

The problem with not matching weight stages can be fixed by just rendering the same scene only changing the weight, the characters in the scene will all have the same poses in every weight variation. I would have to maybe in a few places change the pose because of the different shape of their body, but I think it’s doable.

This is one of the biggest obstacles for people making these types of games. Just having variations at the same time can explode the number states to handle. That’s why I would love to build a game that renders models on the fly rather than rely on static images.

One game that deals with complex plot lines and graphic combinations is A Struggle with Sin [RPGMV][Chyos]. Take a look at how scenes are combos of backgrounds and foreground images as well as managing different states of characters on screen. Also, there are many possible plot line states that get managed coherently.

It would actually be illegal to try and use daz assets to render real time images in a game engine usually.

But really if you want there to be 1000 variations the solution is just you literally have to use sprites instead of placing the models in scenes. The #1 sprite render farm workflow I’m familiar with is the one the guy making lab rats 2 uses. Where his game has like 10,000 low quality sprites. He also uses some other techniques, but the tl;dr is endless variations, sandboxy, non-linear non-narrative locked VN? =sprites.

1 Like

my advice, get some paper as step zero, step one is to start small like the interactions between the main character and a singular individual, a pure strain route so to speak from beginning to end, and plain vanilla route ie just the general plotline of events without anything wacky, then make several of them between the main character and another character until you have made one per main character combination all of them with no wacky shenanigans to act as a baseline, then double it by making versions where it is the main character gaining to get an idea as to how they will react to others gaining, another where the other character is gaining instead to get a feel for how they will feel about themselves gaining, mayhaps another set where booth characters are gaining, these routes will help you to get a baseline feel for the characters personality and interactions with the main character
next is cross pollination which will have you making routes where the characters interact with eachother to figure who are friends, who are enemies, etc, from their basline no gain crosses and their reactions to one or the other gaining and to both of themselves gaining, then move into multi crosses and various stages of weight until you are satisfied
this will be the framework and reference notes to plot out your stories and scenes not to mention endings but may take you awhile, a way around is getting ocs and ask their owners how they would interact with certain ocs etc in order to help save some work for yourself, and that’s about it from me
don’t tale this hound’s word for gospel though, do what you feel is right until you find a method you are comfortable with

1 Like

My suggestion would be to reduce the number of weight stages by taking advantage the fact that girth increases follow an inverse square law. So if a character’s weight doubles their girth only goes up by the square root so 1.414…

The difference between a character at 130 and 150 is going to be dramatic, but between 280 and 300 would be hard to notice. So instead of working by weight stages, work the images by “girth” stages. Easy to do with code - you’d still track their weight as the key variable.

If you have 15 stages between 130 and 300, that’s a little over 12lbs a step: 130, 142, 154 … 287, 300.
If you work by girth the weight change is non linear so you can have: 130, 142, 155, … 281, 300 - but in only 12 steps. Make it coarser and you can get it down to 10 steps: 130, 145, 161, … 277, 300.

For sceens where there are two fattened characters that still leaves you with potentially 100 variations though (still better than 15*15=225). Obviously you can composite scenes, but for full renders that’s still a lot. While your best bet is to limit the number of variations through game mechanics - you’ve already mentioned some - you can also dynamically use fewer girth ranges. You don’t need as many if one of the characters is in the background for example.

But, yes, combinatorial explosion is why most games go to great lengths to avoid this! Also sheer file size is going to be an issue: if you have 20 scenes with 225 images of 400kb each your game it’s going to be pushing 2Gb of images!

3 Likes

Do you have some sort of chart I could reference on the ratio of weight to girth depending on height or some such?

Okay, uh, it’d be nice if we could get a calculator that converts inches of girth into lbs gained using the whole 1.41 square root of 2 exponent thingie dingotush explained.

But also there’s this Weight Gain Calculator: Learn How to Gain Weight which is kinda cool.

Anyone have any idea how to write either/both calculators in python?

It’s usually easier to work the other way: lbs-gained to measurement.

As a first order approximation you have to look at two kinds of measurement: straight forward dimensions (such as how wide a character is across the hips), and circumferences (such as waist size). Find a thin model (or clothing sizes/ergonomics data) and get the smallest measurements and weight. Then find a extreme example with the body shape you are going for and get the same measurements and weight (some measurements helpfully provided by the individual, others have to be measured and scaled from photos).

For example (excuse old units and simple numbers):

Thin (base) Fat Delta
Weight 80 580 500
Hips width 12" 38" 26"
Waist circ 24" 64" 40"

For a simple measurement (such as hips width) the result is:
x = a × sqrt(gain) + c
We have x = 38, c = 12, and sqrt(gain) is sqrt(500) or 22.36. So:
38 - 12 = a × 22.36
a = 26 / 22.36
Giving a result for any gain (weight - 80) of:
x = 1.163 × sqrt(gain) + 12

For a circumference like waist circumference it’s even easier:
x = a × gain + c
We have x = 64, gain = 500, c = 24:
64 = a × 500 + 24
a = 44 / 500
Giving a result for any gain of:
x = 0.08 × gain + 24

Hope that helps!

1 Like