Ren'Py Vbar(s). Not hiding when they should (probably?)

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,192
I got define gui.unscrollable = "hide"
Wouldn't be the first time that something is just half implemented. So, you'll have to do it the good old way:

Python:
style myVBar:
    unscrollable "hide"

screen inventory_view(inventory, second_inventory=False, trade_mode=False):
    [...]

        vbar value YScrollValue("vp"+inventory.name) style "myVBar"

screen crafting(inventory):
    [...]
            vbar value YScrollValue("cookbook") style "myVBar"
 

no_more_name

Newbie
Mar 3, 2024
93
28
Dude's seen some shit.
Already too much o_O
One buggy vbar and you end up redoing everything and and delve into the renpy doc for a week (sorry Renpy, it wasn't even your fault). Never dug that hard into Renpy UI as most of my prototype were glorified slideshow (spicy ones tho). Should be alright now.

GIMWTgDbcAArOQo.jpg

"Sandbox VNs" are funny tho.
I need to find some balance outside pointing the obvious and hinting at it. (such a hard thing to do)
Bring me your best "Sandbox VNs" experience if you read this.
 
Last edited:

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,192
"Sandbox VNs" are funny tho.
I need to find some balance outside pointing the obvious and hinting at it. (such a hard thing to do)
Harder than you think, because it's partly a cultural thing. Reason why so many VN end happening in a US-like location, even when made by none US devs. It's a context that anyone can more or less understand through Hollywood cliché and the ones in all US TV shows.
Tell a French guy that you are in college, he will get it wrong. Tell him that because of this you've your afternoon free, he'll wonder what you smoke. Put this in an obvious US context, then he'll understand.

And of course it don't limits to this. There's hint that will be obvious for a European, but pass totally unnoticed to an Asian by example ; the opposite being equally true.
Plus the educational level (in the largest possible meaning, so including country variation). Depending what you've been taught in school, saying, "I wouldn't be your liver", to someone drinking alcohol will be more or less hard to interpret as a reprimand because he drink too much.

In the end, I guess that the right answer is to dilute everything over time. Starting by hint coming from different way, then in the end stating it directly ; the liver thing, then the next time a "so early ?", then a "how many bottle that week ?", and finally the obvious "don't you think you drink too much ?"
It offer a chance to each player to catch it beforehand, while still not loosing those who absolutely haven't got it.
 

no_more_name

Newbie
Mar 3, 2024
93
28
Harder than you think, because it's partly a cultural thing. Reason why so many VN end happening in a US-like location, even when made by none US devs. It's a context that anyone can more or less understand through Hollywood cliché and the ones in all US TV shows.

Tell a French guy that you are in college, he will get it wrong. Tell him that because of this you've your afternoon free, he'll wonder what you smoke. Put this in an obvious US context, then he'll understand.



And of course it don't limits to this. There's hint that will be obvious for a European, but pass totally unnoticed to an Asian by example ; the opposite being equally true.

Plus the educational level (in the largest possible meaning, so including country variation). Depending what you've been taught in school, saying, "I wouldn't be your liver", to someone drinking alcohol will be more or less hard to interpret as a reprimand because he drink too much.



In the end, I guess that the right answer is to dilute everything over time. Starting by hint coming from different way, then in the end stating it directly ; the liver thing, then the next time a "so early ?", then a "how many bottle that week ?", and finally the obvious "don't you think you drink too much ?"

It offer a chance to each player to catch it beforehand, while still not loosing those who absolutely haven't got it.
Ah, it's not really what I had in mind but certainly poorly worded. Was way more down to earth, more on general design aspects than cultural ones (even if both can cross). What I mean was more about balance between strictly linear and story dilution on a "sandbox" renpy VN.

I want/try to avoid showing a clear NPC schedule screen or an Events/Hints one, in a way avoiding "the checklist" to a more organic flow. But I still need communicate the player "where is at" in the game. I have few ideas but feel some of them will become slowy untenable as scope increase.

Goal is having the player a bit lost with small agency without being an absolute click-fest/or fully lost in scope. One way is leveraging on how the NPC reacts to the player, giving subtle hints, but I need to iterate to see how it is. Maybe some kind of visible friendship stat (with an NPC inventory that reflects that stat) forcing player to progress/talk with different NPCs to collect/buy key items they need to progress with other ones.

I should download few other sandbox games to see how they can get away with it.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,192
I want/try to avoid showing a clear NPC schedule screen or an Events/Hints one, in a way avoiding "the checklist" to a more organic flow.
Well, what I planned for the game I'm slowly working on and that should have at least one public release before my death, is to go with a mix of free roaming parts and forced moves.

There will be an internal "time counter" to know how many free roaming events are possible, and what are shown, then when the "time" will come, the MC will say something like, "ok, now it's time to do this", and the player will be sent when he have to go. Something that will obviously be told previously to the player.

So, by example the MC awake, look at his phone and see "Hey, wanna hang out with me this afternoon ?". He'll answer, "of course, 2PM at the usual place".
Then the player will wander in the house and town, do side events there, or advance on some secondary routes. And when the internal counter will tell the code that it's 2PM, the script will take the relay, and the MC will goes by himself to the said usual place to hang out with the girl.

I guess that, the more the story will advance, the less there will be place for free roaming parts. Simply because the more girls the player will pursue, the more busy will be MC's days. Then this will be replaced by some decision made in the morning or along the day. Some kind of "What to do today ? Should I hang out with [girl 1] or with [girl 2]".
What mean that, to balance all this, I'll also have some mechanism to track the number of interactions with each girls, and possibly the time of the last interaction. Therefore, sometimes the player will not have choice, and MC's morning decision will looks more like "What to do today ? Oh, it's been a long time that I haven't seen [girl 3], I'll hang out with her".

That way whatever how many girls he pursue, the player will still have the possibility to see all the scenes.
When it's a scene relevant to the story, he'll be forced to go there. And when it's about a girl, the scene will wait for him to want to see it, or forced to him if he neglected a bit too much a girl he shown interest in.
 

no_more_name

Newbie
Mar 3, 2024
93
28
go with a mix of free roaming parts and forced moves
If I recall well, few games do that, mixing a free roam part and the main story progression.

While I'm sure it works, I want to try to blur/blend the lines further (with the risk of losing/frustating the player tho). Mixing "dead-end/side" events with "story-progressions" ones, without the player really knowing about it, nor what he missed eventually (maybe giving player a numbers of possible events, but that annoy me). Using those "dead-end/side" events to flavor/change "story-progressions" ones, or salt with small "easter-eggs" here and there.

Of course you need some kind of flexible/elastic plot and being sold on player missing non negligible part of it.

As for phone, I'll probably use each time you sleep to check for flags and trigger from there at time/day/week. But I would prefer to keep it simple as possible, triggers event as soon as possible (i.e you answered yes to [girl] date -> [girl date]). Tracking the time of the last interaction would be neat tho :unsure:, especially to hint the player "maybe something to do with that person/location" (of course with few false flags to keep the player a bit blinded).

I need at least to make it works on a small scale and see how it plays and tunes from there. There is probably some terrible ideas :D
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,192
If I recall well, few games do that, mixing a free roam part and the main story progression.
But really few are doing it that way. Most let the player decide when he want to switch from a mode to another, or when he's ready to continue the story line.
The method I presented is the blended way you're searching for. There's no transition, nor choices, between the free roaming and the scripted story. From the player's point of view, the story part is just the continuation of the scene he choose to see at that time.


[...] (maybe giving player a numbers of possible events, but that annoy me).
Then why even bother with a free roaming part ? When given the possibility to choose where he want to go next, whatever the way it's done (explicit, through a menu, or implicit, through a map), you're offering to the player the possibility to choose between at least two possible events. And the player will always goes where he expect to find the girl he prefer.
Here again, the method I presented solve this issue, by forcing the player to catch up with girls he's interested in but also neglected for too long. What, in the end, make him see all the available content he wanted to see, just deciding, to some extend, at what speed each personal route progress, and which one is his priority.


As for phone, I'll probably use each time you sleep to check for flags and trigger from there at time/day/week.
In my example, the phone was purely narrative.
But he can also be interactive, becoming then a third way to offer a choice ; by example by answering, in substance, "yes" or "not today, sorry", to girls asking him if he want to hang out with them.


Tracking the time of the last interaction would be neat tho :unsure:, especially to hint the player "maybe something to do with that person/location" (of course with few false flags to keep the player a bit blinded).
Even something basic would keep most of them blinded ; even if they look at the code.

Something like:
Python:
if howmanyDaysSinceTheStart - lastDayInteractingWithGirl1 > 3:
   "Hey, it's been a while I haven't seen girl1"
elif howmanyDaysSinceTheStart - lastDayInteractingWithGirl2 > 3:
   "Hey, it's been a while I haven't seen girl2"
else:
   "What to do today"
With, of course, less obvious names for the counters.
 

no_more_name

Newbie
Mar 3, 2024
93
28
I thought you gave (for the player) a distinction between the two my bad.
In that case I think we talk about the same thing just with different words.

Giving player a numbers of possible events is just an idea in the air, it could also be the contrary, giving a notification when all side events has been done. Or one when you excluded/added one(s). I'm not dead set on everything. While it doesn't change drastically everything, it's still more a polar/cluedo in spirit where you find clues (find/craft/give/get/use items, talk to people) . So there no really love interests per se or obvious choices for a player to chase (yet).

Otherwise triggering event is not really a problem. I said bed/sleep because it's a reccuring event and will probably iterate from there. For messaging, I really need few story/event done to have a bit of content to play with (and I don't mind people finding clue in the code, I'm not that maniac lol).

I will post progress if I make any (I should have a bit of time in theory) so you can facepalm hard o/
 

peterppp

Active Member
Mar 5, 2020
762
1,347
Abysmal progress due to unfortunate circonstances.
Still redone entire prologue as mouse parallax working exactly as intended.
0% progress on the sandbox part tho.

View attachment 3489750

Lost plenty of time trying return an int that is the number of choices your screen choice will have (basically count number of tuples generated or so I guess). Ended up making multiple screen choices instead and move on lmao.
what's the point of the mouse parallax? do i understand it correctly that you are moving the mouse back and forth in the clip just to make this parallax feature show? why would players do that though? having parallax for backgrounds (not tied to mouse movement) could be a cool feature but don't lose sight of what's relevant and a good game experience for the players and what's you just showing off and/or wasting time on what you think is a cool feature that no one will appreciate.
 

no_more_name

Newbie
Mar 3, 2024
93
28
what's the point of the mouse parallax? do i understand it correctly that you are moving the mouse back and forth in the clip just to make this parallax feature show? why would players do that though? having parallax for backgrounds (not tied to mouse movement) could be a cool feature but don't lose sight of what's relevant and a good game experience for the players and what's you just showing off and/or wasting time on what you think is a cool feature that no one will appreciate.
I guess so. It's also something quite funny to render.
What player has to say is irrelevant.
I'll try to make it good o/
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,192
[...] but don't lose sight of what's relevant and a good game experience for the players and what's you just showing off and/or wasting time on what you think is a cool feature that no one will appreciate.
In the same time, the more devs will use it, the more devs will understand that Ren'Py isn't limited to statics full renders and shacked sprites.
While I agree that in the present case it's more a gadget that a feature, it not by releasing flat games that we will have more creators who find good ways to make more dynamics ones.


you should make a dev progress thread instead of hiding your stuff in here. that video looked great!
I second that.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,957
16,192
Presenting something you may not deliver is a bit hmhm.
Well, 50% of the development threads end when the "dev" disappear, 40% when the dev say that he give up, and 10% when something is finally released. So don't worry about this.

Those threads aren't just about the game, they are also about the journey.
 
  • Like
Reactions: osanaiko