Big Brother Torrid affairs pre-release discussion [locked]

Status
Not open for further replies.

NoesisAndNoema

Member
Game Developer
Oct 3, 2017
282
679
How important is it for you guys to "roll-back" in a game?

Eg, Rolling back through dialogue and choices, to make different ones along the way, or just to see what text you just flew past, while clicking.

I think I can retain a good majority of rolling-back, but due to RenPy's limits, with Python-code, it fails in certain situations. I can force hard-stops, so it only rolls-back, when it is safe to do so. However, that is a narrow window, until I can figure-out how to un-glitch RenPy in these odd instances.

With "no wrong choices", I don't think this is going to be a big issue. Playing any path forward will expose you to much of the same images and events. It is just the dialogue which changes to reflect the choices made by you.

I found-out, about four days ago, that there was an issue with rolling-back. Prior to this more complex game-code, I had not noticed it. In the forums, asking for help, I am not getting much of a response for any possible resolutions. However, I am a creative thinker, and I am sure I might be able to work something out. Just not in time for release.

EDITED NOTE: It seems that the "HISTORY" of dialogue functions as intended. So, you can sort-of "go back" and see what dialogue just passed. However, that doesn't help the issue with rolling-back. Maybe I can put a day-tracker, which auto-saves each day, and just backs-up to those points, one at a time, or by selection of a date, in game-time...
 

Max Headroom

pauper commilito CtSH
Sep 27, 2017
1,499
7,638
How important is it for you guys to "roll-back" in a game?

Eg, Rolling back through dialogue and choices, to make different ones along the way, or just to see what text you just flew past, while clicking.
"Very" Sometimes when I'm bored from dialogs I'm very fast with clicking through and then I'm clueless when I'm ask from something before or worse I hit a decision line before I notice there was any. So I like the possibility to go one or two steps back.
 
  • Like
Reactions: NoesisAndNoema

NoesisAndNoema

Member
Game Developer
Oct 3, 2017
282
679
"Very" ... So I like the possibility to go one or two steps back.
EDIT: Just adding that I am not letting this mini-hurdle stall me, at the moment. It was just an observation found recently, which needs future resolution.

The "history", records all text and choices which were spoken, or shown on the screens. It is like a rolling-log of a conversation in a smart-phone or any updated e-mail program. That still seems to be 100% functional, since all text displayed is recorded. Values for stats and things are not part of that feature.

I could make that a quick-access display, instead of being nested within the MENU system, where it resides now.

As for the "questions" which go along with the "choices"... I present them side-by-side, so you always know what you are replying to. You will never see something that presents you with choices like, "Yes" and "No", without a clue as to what you are agreeing to. I hate that too. (However, I get that you might want to make a more educated selection, by rolling-back and seeing what context led you to that question. That should still function for rolling-back for review.)

Well, here is the ugly details of what is happening, for those interested.

1: The roll-back functions 100%, if within a "dialogue-run", of ONLY RenPy style dialogue/menu code.
2: The roll-back functions partially, when encountering specific "Python code and values", and some specific "non-dialogue elements". (Buttons and menus, for some obvious reasons. You don't normally want each button you clicked in a menu to "replay", but you might expect the selected output of the button to replay, but it doesn't.)
3: Destroyed values, often done to reduce memory consumption, do not get restored when rolling-back. Deleting a value within a complex variable, will leave it empty forever. Thus, when going back, it no longer exists to "reload".

What I am thinking, is to limit the "normal" rollback, to the points between events. Thus, you can roll-back, and forward, while doing a single "Event" or "Quest" interaction. However, when it is done, you can't roll back again, until you enter a new event or quest. (That kills the ability to show the menu-selection, or roll back past that point.)

However... I may be able to add a type of "undo", at the end of the interactions. That would simply return you back to the point where you made that first choice, and couldn't roll back to. (Might be a nice feature itself. Giving you the chance to see all possible outputs, before you pick the one you actually wanted.)

Ultimately, as I sat on the shitter, just moments ago... I came up with this idea.

I may end-up programming a DAY or WEEK, auto-save. Limiting it to saving the last 100 days, or last 52 weeks. Thus, you could manually go back in time, to that DAY or WEEK, from your personal play-through. Manual saves would just be saved along that path. However, going back would start replacing auto-saves, from your new starting point.

That option would be presented at the end of each day, after sleeping. Giving you the ability to instantly select "replay yesterday". You would have to keep doing that, after each day loads, to jump back five days in time. But... you could play that day, to see if that is the correct one you wanted, if you were unsure. (Or just pick one of your manual saves, which all have forward auto-saves, but no go-back, past the point where you manually saved that game.)

Yea, my options are limited, unless I can figure-out an internal way to force RenPy to remember the shit it needs, for a true "roll-back".

I will make a video, after release, of this "issue", and the possible "test resolutions", to see how well they might work.
 
Last edited:

SDaddy666

Active Member
May 5, 2017
948
736
i think rollback is kind of important, just to see the qick impact of the choices we make (ex. DMD to check what points are added). but for me i just spam click through the dialogues bc i find them too long sometimes and maybe sometimes theres something not to be missed. so i like when i can rollback a few clicks
 

rhev

Member
Apr 29, 2017
157
739
How important is it for you guys to "roll-back" in a game?
CRITICALLY important. I've uninstalled and quit playing games that wouldn't let me rollback and let me make a different choice. Let me explain why that is just so you don't think im one of those people who want things to be 'perfect.'

Big brother is one of the worst offenders of this type of thing where you can't "rechoose" a choice once youve made it, and I fucking hate it. Because what the author of the game may 'think' is a normal dialgoue choice doesn't always translate to the person playing it. So I may pick a choice when given one, and the result is absolutely not what I meant to say.

Here's an example:

Sister: "Oh brother, you're looking mighty fine today."
Brother: CHOICE - 1. Thanks *blush* 2. You're looking fine too sis. 3. Yeah, fine enough for you to get down on that dick?

Now I may look at that and think to myself that option two sounds like a good middle ground, something that is very complimentary but not lewd. Also that maybe option one might be too 'passive' for the tone of the character that I've been playing up until that point. So I choose option 2. Right?

Wrong, I choose option 2 and then the character responds with, "Me? You're looking fine too sis, I can see your nipples poking through your shirt and the way those jeans hug your crotch you've got some sexy camletoe going on." *sister slaps your face*

Now, obviously this isn't what I wanted, so I try to rollback, that wasn't at all what I had in mind when I picked option two. Sure maybe option 3 would have been even worse, but it feels very jarring and game breaking when you think you know what your choice is and it ends up being something else. You can 'write' around this a fair bit, but because of sociological and experiential differences in viewpoints of the users, you'll ALWAYS have this type of a situation where the user expects something different then what you wrote. It will just happen, maybe not as blatant as my example, but I was being hyperbolic for edification obviously.


My suggestion would be that you allow as much rollback as possible, and any time there might be a coding issue, just disallow it. I think if you make it clear that rollback will be limited at times, people will understand.
 

NoesisAndNoema

Member
Game Developer
Oct 3, 2017
282
679
CRITICALLY important. I've uninstalled and quit playing games that wouldn't let me rollback...
... where you can't "rechoose" a choice once youve made it...
... what the author of the game may 'think' is a normal ... doesn't always translate to the person playing it.
TLDR, JK... :p

Yes, that was my biggest gripe too. Which was part of the reason I went with RenPy, which should do this natively, within the game. However, as I stated, it doesn't, 100%.

So, Even with the few replies I have gotten, which are as strong as my beliefs... I think I have the answer I need.

Yes, it is important.

So, now all I have to do is figure-out a decent solution to the issue at hand. I will try to see if there is a "Python" way to solve this issue. Since, at the moment, I seem to be a python programmer, playing with RenPy, instead of the other way around.

Keep the feedback coming, on the subject though. Suggestions welcome, even if you are NOT a coder. Sometimes it is simple non-code suggestions that lead to desired coding solutions.
 

NoesisAndNoema

Member
Game Developer
Oct 3, 2017
282
679
If you can make it compatible with Galin's mod you could use his time machine to go back, it's what I do in BB
Actually, since this is a whole new engine... Galin would have to make a new mod for this version. That is a little hard to explain to everyone, about game-engines and mods V.S. conversions.

Short reason why none of "Big Brother's" mods will work for mine...

Big Brother is made with another program. I am not modifying his game, I am creating a whole new game from scratch. Converting it, in essence, from one game-engine, into another. Like the difference between Mac and PC. Both have similar "windows-like" structure and function, but the code is not compatible.

I have, ultimately, decided that this will eventually become a 100% unique game. Including all the artwork. At the moment, it is only the artwork, in part, which is being used from the original game. Just like apple essentially did to windows. :p
 

gladiactor

Member
Oct 28, 2017
107
45
Hi, first of all, I would like to congratulate you for your idea. Sorry for my English. I would like to translate all the texts of the game into Italian. If you send me everything I can translate them and send them. I hope you'll soon make a preview of the conversion
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,131
14,812
3: Destroyed values, often done to reduce memory consumption, do not get restored when rolling-back. Deleting a value within a complex variable, will leave it empty forever. Thus, when going back, it no longer exists to "reload".
The roll-back mechanism keep track of all the deleted variables and works fine with them. It even flag them so, if the variable was deleted during the previous interaction, but exist in this one, a roll-back delete it again. Even when you reach the roll-back limits, the variable is still assignable without problem, Ren'py still knew that your variables existed and have been deleted. And here there's no differences between a scalar and a complex structure.
I really don't know how you achieved to break Ren'py this deeply.

You don't have permission to view the spoiler content. Log in or register now.

As for the memory consumption...
All the scripts are stored into the memory during the whole time the game run. The screens supposed to be used in a near future are predicted, and so all stored into memory, way before they are really used, sometimes even when they aren't used at all. Take the say screen by example, there's always something like ten of them stored into the memory.
There's at least one game with an array leading to a +200 000 characters representation which, because of the roll-back mechanism, lead to MB of memory used only for this array. And there's games with more that 3000 variables/objects. Same, because of the roll-back mechanism, all the variables are store a lot of time into the memory, with the value they had during the related interaction. All of them run fine without problems.
The history is an array of all the say statements encountered. You use more memory by enabling the history than by not deleting variables.
Anyway, deleting a variable will save you what ? Each previous values of the said variable is stored config.hard_rollback_limit times into the memory. So, until you reach this limit, the variable will still use some place.

If you really want to save some memory space, it's playing with renpy.stop_predict_screen() and renpy.start_predict_screen() that you need to do. And if you really want to "delete" your variables, set them at None, it's the meaning of this value after all. Each one will use less than 50 Bytes of memory and it will correct your problem.
 

NoesisAndNoema

Member
Game Developer
Oct 3, 2017
282
679
Hi, first of all, I would like to congratulate you for your idea. Sorry for my English. I would like to translate all the texts of the game into Italian. If you send me everything I can translate them and send them. I hope you'll soon make a preview of the conversion
I will see what the "text output" produces, and try to assist you with it.

It should be as easy as changing the values, but some may require internal adjustments. Once made, I can include it in the original, as a selectable option.
 

NoesisAndNoema

Member
Game Developer
Oct 3, 2017
282
679
The roll-back mechanism...
I'll have to let you look at the code, and see if I can get your help with it.

The problem, I think, is that I don't code like that. There is little done manually, on the "run of RenPy script". All the things I do, are within functions, as they must be dynamically created. Then they are parsed in a dead-loop...

Code:
label MyLoop:
    #stuff here
    #MyFunctionMenu(All stuff managed in here)
    jump MyLoop
RenPy seems to get amnesia from my code. It rolls-back fine. But when rolling-forward, it forgets what was just there a second ago. (Popping it off the list, in memory, prematurely.)

This is not real code... just what might be in a function, in "spirit".
Code:
A = 0
for i in 10:
    A += 1
Rollback values... (current) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 (original)
Rollback only to 5... Now roll forward to position 10...
Values shown... Rolling back. (current) 10, 9, 8, 7, 6, 5 (New current value)
Now rolling forward 5 positions to return back to 10. (current position 5)-> 5, 5, 5, 5, 5, 5 <- (Should be 10 here, at position 10)
EG, Should have been, 5, 6, 7, 8, 9, 10

Thus, my program has amnesia, or the hiccups... :p
 

NoesisAndNoema

Member
Game Developer
Oct 3, 2017
282
679
I think I found a way to just "not build events", until they are needed. While still maintaining the ease of creating new events and quests and generic-actions... Though, it will not be any more roll-back friendly. Just error-friendly, potentially.

Here is a video of another "issue" I am currently fighting at the moment. Rollback seems to work here fine. So that is a BIG bonus, kind-of.


This is part of the rollback issue... It is not just the random values, it is everything. I don't have that video though. :p However, you can see the code where everything is "managed". That code will output to standard RenPy values. They are being recorded fine, and rollback fine, but they don't return when rolling forward. It even moves you to a place you never were!

 
Last edited:

NoesisAndNoema

Member
Game Developer
Oct 3, 2017
282
679
In any event... I am rolling right along with the introduction.

The "glitch" is not often enough to matter, and when resolved, it will not be an issue at all. I'll kill the narrator if I have to. Who needs him! (Seriously though, I will just move him "off screen", as a ghetto solution, unless he is actually speaking. That, or I will hire a replacement narrator. :p )
 

Ob Nixillis

Member
Aug 1, 2017
143
167
your >>> <<< just leads to a start your own page page
That's the button to become a content creator. There's a much larger blue button that says "My Patreon Page" and has a link. THAT button takes you to N&N's patreon page.
 
Status
Not open for further replies.