I understand the frustration, but writing a novel can be like fighting a war. And no battle plan survives the first arrow. So I accept that a VN developer will get inspiration, or need to change events, and sometimes have to create entirely new gameplay elements at any point within the code. Even with a good story outline in place, this kind of thing is going to happen. It may not look pretty or follow "proper" convention, and it may seem random – thought it's not – but I much prefer that over having to restart from the beginning because all save files are suddenly incompatible with a new update, which happens with many VNs unfortunately. In those cases I tend to lose interest in the project because I hate wasting my time having to redo all the previous choices. So again I have to come to the dev's defense on this one. I'm glad if the Unbroken developer is prioritizing function over form.Declaring global variables at random points within the code is very bad form and really should be fixed. At the very least, global variables should be declared at the start and defined later, though I recommend giving the variables a default value (not relevant to Python, since you can't declare without defining). It is normal to declare, define, and (if the language requires it) delete local variables as needed.
I figure it wouldn't be that simple, and python would require having to catch an error. Yeah, that sucks. But good to know I guess.This gives you a variable undefined error. You have to use a try/except/else block:
Sorry, but you're mistaken here. Despite how poorly most VN are coded (especially rife with spaghetti code), most games manage to organize their variables better. There is even a bold note in theI understand the frustration, but writing a novel can be like fighting a war. And no battle plan survives the first arrow. So I accept that a VN developer will get inspiration, or need to change events, and sometimes have to create entirely new gameplay elements at any point within the code. Even with a good story outline in place, this kind of thing is going to happen. It may not look pretty or follow "proper" convention, and it may seem random – thought it's not – but I much prefer that over having to restart from the beginning because all save files are suddenly incompatible with a new update, which happens with many VNs unfortunately. In those cases I tend to lose interest in the project because I hate wasting my time having to redo all the previous choices. So again I have to come to the dev's defense on this one. I'm glad if the Unbroken developer is prioritizing function over form.
My point is that setting defaults in one section at the top of the code like you suggest is not always possible in a VN. Take the Ines variables I passed along as an example. It's reasonable to assume that the dev had not planned on making aspects of Ines' personality a path/choice for the player in the first release of Unbroken many moons ago, and they only decided to add that in recently. However, the story and game was already many versions deep by that point. So the only way to accommodate that late addition – given that the callback solution you noted wasn't in place – is to simply declare, initialize, and begin using those scores for Ines at the start of the code for the new chapter. It's functional, and it makes complete sense.Sorry, but you're mistaken here. Despite how poorly most VN are coded (especially rife with spaghetti code), most games manage to organize their variables better. There is even a bold note in theYou must be registered to see the linkswarning developers to default all their variables. While I definitely appreciate the author's ability to tell a good story, their coding is rather clumsy and amateurish.
As to your implication that coding is like combat, there's a little truth to that, with veteran programmers keeping level-headed and organized, while the green programmers rush about, just trying to make it to the next day. My hope is that I can pass along some advice that will help others improve.
I think there might be a misunderstanding about theMy point is that setting defaults in one section at the top of the code like you suggest is not always possible in a VN. Take the Ines variables I passed along as an example. It's reasonable to assume that the dev had not planned on making aspects of Ines' personality a path/choice for the player in the first release of Unbroken many moons ago, and they only decided to add that in recently. However, the story and game was already many versions deep by that point. So the only way to accommodate that late addition – given that the callback solution you noted wasn't in place – is to simply declare, initialize, and begin using those scores for Ines at the start of the code for the new chapter. It's functional, and it makes complete sense.
splashscreen
, before_main_menu
, and main_menu
. From the main menu, things typically transfer to either the start
special label or the "load" function. The load function will overwrite any variables from default statements with their saved value (the current value of "defaulted" variables is always included when creating a save file).$ inessubmission = 0
, it will not be saved if the user bypasses that line, such as when choosing a different route or loading an old saved game. This is especially bad when all other references to this variable are $ inessubmission += 1
, meaning that they too will fail without the initial value.config.after_load_callback
list and after_load
label, these are built-in capabilities of Ren'Py that execute automatically prior to calling the "start" label and after the "load" function runs.As I think my above statement covers, declaring variables at init time actually occurs before any of the labels are processed, so it's before the script. Ren'Py will stop you from "defaulting" a variable more than once, so there's no way to have duel [sic] initialization. Putting them together "at the top of the script" isn't technically necessary, but it is the standard practice, due to the headaches that can be avoided if the code is well organized. Many developers, myself included, will have an entire file specifically for constants and variables, so that they can always be located easily.Some may argue that duplicate declarations should also be added at the top of the script when a new variable is required like this, mainly for documentation purposes. However, duel initialization can cause maintenance issues, where it's even allowed in the first place, so I can see why a dev would avoid it and only want a single entry in these cases.
The release of software in an iterative manner is more of the norm, rather than the exception, at least in my professional and personal experience. While there are certainly some peculiarities to a visual novel, I don't find it to be different from other forms of software development in any meaningful way. Applying industry-wide good coding practices and having an adequate understanding of how the engine runs means that writing visual novel code is far easier. It's because Ren'Py is so forgiving that software can be released with "sub-optimal" code.The core issue here I think is that writing an iterative novel with multiple releases is a very different beast than pure software development, and some practices simply may not translate well between the two disparate projects. I can relate to the desire for organized and well-formed coding though. It just may not always be possible given the limits imposed on this type of endeavour.
When it's ready.Do we have an approximation when next release could come ?
well render counts are steadily increasing each update, we are currently sitting at 3k stills, last update was like 4k renders and that dropped early september. So just with very crude math and speculation, that's 3k renders in six months, so 500 renders a month. Let's say new update is 4500 renders, so that's 3 more months. But I could be speaking out of my ass for all we know, dev didn't give any estimates, could be next month if it's a shorter update.Do we have an approximation when next release could come ?
You know, I almost wrote something along the lines of: "There is probably some way these limits can be avoided with extra work or knowledge in setting up the project, but that's not what I'm talking about here." in my last response, but I figured I'd wait to see if that infinite abyss was where this was headed. And once I saw the wall of text response, I wished I had put that in of course. But just like coding, there's something to be said for avoiding overdesigning and putting in a whole bunch of unneeded stuff, even if it's just when writing a quick forum comment.It begins with engine startup...
Serena is more or less a fuck buddy for now. Nothing wrong with that.Not sure if this has been asked recently but is Serena the Lawyer a side or is there just little content of her? Seems like everyone's relationships are getting more established with Valentine but outside of two scenes with Serena, i dont see much else however she's on the banner so i thought there would be more with her?
Or.. Are there more scenes & i just happened to be knocked off her path because the cat hates us or something? lol.
Good to know i didn't necessarily miss anything with her. I enjoy her contrast compared to the other girls & her model is beautiful. But cool cool, good to know, appreciate the answer.Serena is more or less a fuck buddy for now. Nothing wrong with that.
those points are directed towards Vi, so lower the better. As for the other question, looking at the dev's other game, for the majority of the game you're free to do as you wish with the girls in the game... towards the end you'll most likely have to make a decision however who you want to end up with (not a harem game). But we're not there yet.ines desire to protect points ..to whom are directed ? versus her best friend o versus MC? i don't understand if this is a game where u can be with more than 12 girl at the same time or not...any hint?
I think these points are for Vi, Ines knows that Vi has had a crush on the MC since forever, if the MC is a nice, loyal guy, she will approve the MC and will know that Vi will be safe with him, but if the MC is a stud, flirts with everyone, even the best friend of the girl who has a crush on him, then she will have misgivings about the MC, and she will try to show Vi who he really is, that he is not the prince charming that Vi imagines... To protect her.ines desire to protect points ..to whom are directed ? versus her best friend o versus MC? i don't understand if this is a game where u can be with more than 12 girl at the same time or not...any hint?
day after tomorrow.When a fanart thread of this wonderful vn?