4.60 star(s) 67 Votes

Diconica

Well-Known Member
Apr 25, 2020
1,135
1,191
Even then, the mods barely touch the girls' looks except allowing you to customize them with the cheat menu, but that uses the assets that need work anyway. Because of that, I don't even think a total overhaul of the art can save vanilla. What might, however, is if Vren stops messing around in areas of the code that make saves incompatible every single version, because restarting every single version is not the kind of thing most players want to be doing especially when there is actually new content, and instead starts adding actual progress to the gameplay.

All versions of the game, modded by the main mod or not, need a new save at this time. That is what I meant, which I probably should have been more clear on.

As for why the game has to be restarted every version, no, Renpy is not the reason why, this is literally the only game where I have had to restart every time a new version is released. Most games don't make the kinds of changes Vren is making as often as Vren is making them, so very rarely is a restart required for development reasons.

I think you hit the nail on the head on the characters, he didn't plan them out and is making them as he goes, which means adding new things the saves have to track that old saves are incapable of doing. This means requiring the player to restart every new version. The frequency of changes like this is the issue here, he is doing it far too frequently, otherwise there would at least be a small gap of one to two versions between needing to restart each time.

The way Renpy stores stuff isn't really that big an issue except in cases where the developer is messing around with essential areas of the code for saves to track on a regular basis. This is why most games can get away with several versions in a row before ever requiring the player to restart. Other developers don't make changes like this nearly as often as Vren.
Most the games that use Renpy have only a few variables that are saved and that doesn't change much through out the games development. That's because of the nature of the game type.
They spend most of their time adding story content not adding new features to the game or characters. If they did they would have the exact same issue.


Like I said this is an issue with the game engine and how it saves. It is just one of the trade offs for making this type of game on this engine.

I tried Renpy myself. If you add a new variable that is saved or remove a variable that is saved it requires a restart.
The exception is if you use a default variable. Using a default variable will reset that value to the default value any time it isn't provided. Default variable will not work well with this sort of game. If lets say you wanted someone's life to restore to 100 when they reloaded a default variable could be a good choice for that if you don't save the life value.
But lets say you add something like a property value which lists the properties the person owns. What default value could you give it? None you come up with would be suitable it would destroy the progress of the game.

The reasons most games don't have this sort of change is they have relatively few variables in comparison and the developer doesn't make many changes of that nature instead they are just adding content. Those are mostly just story based games.

One problem is the progression of his own learning to program which is something a lot of developers are having to content with.
I doubt most the people new to Renpy fully understand the implication of what all is said in this. Especially when they are new to programming also. I'd bet there are a number of seasoned programmers who don't fully grasp the ins and outs of it also.
 

alex2011

Conversation Conqueror
Feb 28, 2017
7,716
4,461
Most the games that use Renpy have only a few variables that are saved and that doesn't change much through out the games development. That's because of the nature of the game type.
They spend most of their time adding story content not adding new features to the game or characters. If they did they would have the exact same issue.


Like I said this is an issue with the game engine and how it saves. It is just one of the trade offs for making this type of game on this engine.

I tried Renpy myself. If you add a new variable that is saved or remove a variable that is saved it requires a restart.
The exception is if you use a default variable. Using a default variable will reset that value to the default value any time it isn't provided. Default variable will not work well with this sort of game. If lets say you wanted someone's life to restore to 100 when they reloaded a default variable could be a good choice for that if you don't save the life value.
But lets say you add something like a property value which lists the properties the person owns. What default value could you give it? None you come up with would be suitable it would destroy the progress of the game.

The reasons most games don't have this sort of change is they have relatively few variables in comparison and the developer doesn't make many changes of that nature instead they are just adding content. Those are mostly just story based games.

One problem is the progression of his own learning to program which is something a lot of developers are having to content with.
I doubt most the people new to Renpy fully understand the implication of what all is said in this. Especially when they are new to programming also. I'd bet there are a number of seasoned programmers who don't fully grasp the ins and outs of it also.
Exactly, while Vren spends more time adding new features and other core changes that aren't compatible with saves and therefore require new playthroughs. If Vren were to focus on story for a while, which has been out of focus for quite some time, there would be a period of save compatibility.

This isn't an issue with the game engine or it wouldn't matter what he focuses on, even story would cause this issue. The actual problem, and I use the word problem loosely here, is Vren's focus on adding features that include elements the saves from older versions cannot track. He's changing the way the game works on a constant basis and that messes with the saves. If he instead changed what the game told us instead of working under the hood, this would not be happening. For the record, I do understand he does need to make these changes at some point, that's why I used the word problem loosely, because what he is doing is a necessary step. He's just choosing to do it all at once whereas other Renpy developers tend to space out that kind of work, sometimes specifically to allow players some time in between having to restart because they know that some won't be happy with that even if it is unavoidable. Even with this type of game, it doesn't need to be the way it is, the way to change it is to shift focus to something that won't mess with saves like story development.

So far, everything in the story can be tracked with existing variables, so this is why I say that shifting focus to story development will stop the need to restart at least until something needs a new variable or something along those lines to continue the story, thus giving players some time between restarts. You don't even need to resort to default variables as long as nothing is getting added or removed as far as existing variables. As long as the variable already exists, it won't mess with saves this badly and it would even help main mod development.

Most games are like that and Renpy is largely a VN engine. It can do things outside of VNs, but it is best used as a VN engine, which is part of why most developers use it for VNs and not other types like this. This is part of why the original Lab Rats did so well on this engine, because it was essentially a VN with some management elements and not a full blown management game. Most developers would use something else entirely, Unity for example, for this kind of game, but that relies entirely on whether a developer has knowledge of the engine being chosen and Vren doesn't have knowledge of any other engine that I am aware of.

I agree on this last part, most probably don't understand it fully, potentially even experienced developers. I get some of it, likely due to my own background in programming with the old Visual Basic and the general knowledge that came with that background, though some of it is a bit more complicated than what I had to deal with. It does seem fairly limited if I'm understanding the save portions of the linked page correctly, being only able to save what can be returned to plus the current statement plus a couple other things. That can be a lot depending on the number that can be returned to, of which I am sure Renpy has a hard limit, which could be many or only a few.
 
  • Like
Reactions: lbt

lifesuckz69

Member
Mar 5, 2017
364
257
Seriously, our modder heroes could achieve some serious, ascendant mantle of Horus like status if they could fix the fugly faces.
I have more issue with the hairstyles where basically only 2 look good to me. I have Daz, but sadly i have absolutely no clue about renpy or any game programming
 
  • Like
Reactions: bloodbus

bloodbus

Member
Sep 30, 2020
413
340
Seriously, our modder heroes could achieve some serious, ascendant mantle of Horus like status if they could fix the fugly faces.
Modders can't fix that. There have been plenty of discussions over it, but the amount of time that would take isn't worth it when Vren himself has mentioned doing it himself a few months ago
 
  • Like
Reactions: dalzomo

DA22

Devoted Member
Jan 10, 2018
8,082
16,668
Modders can't fix that. There have been plenty of discussions over it, but the amount of time that would take isn't worth it when Vren himself has mentioned doing it himself a few months ago
Well I think it is not even so much that they can't even, but is also just not up their alley. Better faces would not be a change in code but would need a good artist or aspiring artist that would add or replace existing faces with better art for all their expressions. Now anyone willing to put that amount of work in and design really better faces would be better off offering them to Vren himself for use and only work with modders if Vren would not accept with chance of double work as well.

Besides looking at the changes for 0.49 I suspect modders may well have their work cut out for them, even if this update may well add a better framework and mechanics for the chars in game to develop stories for the future.
 
  • Like
Reactions: dalzomo

dalzomo

Active Member
Aug 7, 2016
914
766
the problem is nobody here except the modders and a few in the know realize the scope of "just" fixing the faces, which is why none of them are doing it. If anyone had any fucking idea what that would entail, and were actually inclined to do the work, they would just make their own goddamned game instead of modding this one because that would be easier

I recently took a look at fixing ONE vanilla scene because it was referring to a face that wasn't rendering correctly. It's the onlyfans one where they're sucking off a dildo or something, and the face was rendering a bit to the side of where it should have been. When I saw that it would take the editing of hundreds of images - which isn't even the total number of faces there are, just the ones that were bugged - I peaced out and just edited the code to use a different pose lol
 

DA22

Devoted Member
Jan 10, 2018
8,082
16,668
and so much for a "just a storyline" change.
What did you expect? :p Then again to be fair if implemented well Vren may well open up a lot more options to do things with chars in game over time that will make extra storylines easier to implement. Most of the changes made some sense to me from a system design pov even as a total non-coder. Somehow I suspect 0.50 to rebalance/correct quite a few things though that will be implemented in 0.49. :ROFLMAO:

You modders have my respect.
 
Last edited:

eldoen

Member
Jun 30, 2021
460
283
Oh I didn't expect any less given Vren, nothing is just a storyline change. and I was hoping he wasn't going slap lipstick on a pig and call it a day. I think my comment on the main thread, was, balance update, what balance update.
 
  • Like
Reactions: DA22

Edwarf

Member
Jun 8, 2017
392
441
Well, bodies, faces and hairstyles are not as important in the base game as they are here in the modded one.
And I think is time for Trollden, Tristim and LZ_Starbuck to put a name to their mod, BTW.

Base game main NPCs default apearance really pisses me off, and change them to my idea of how they should look like as soon as I can in every version I play; so yes, I think Vren should reserve an update to add some new bodies, faces and hairstyles...

...but also somebody with the time and resources could start rendering models and their variations, so others could implement them in the code later on; it would be priceless.

Just venting out. :coffee:
 

themagiman

Well-Known Member
Mar 3, 2018
1,450
472
Is there some way in the code to make all the girls have the same pose? I have to manually make them set to a pose after I hire each of them to keep the poses the same or it drives me crazy
 

Diconica

Well-Known Member
Apr 25, 2020
1,135
1,191
Exactly, while Vren spends more time adding new features and other core changes that aren't compatible with saves and therefore require new playthroughs. If Vren were to focus on story for a while, which has been out of focus for quite some time, there would be a period of save compatibility.

This isn't an issue with the game engine or it wouldn't matter what he focuses on, even story would cause this issue. The actual problem, and I use the word problem loosely here, is Vren's focus on adding features that include elements the saves from older versions cannot track. He's changing the way the game works on a constant basis and that messes with the saves. If he instead changed what the game told us instead of working under the hood, this would not be happening. For the record, I do understand he does need to make these changes at some point, that's why I used the word problem loosely, because what he is doing is a necessary step. He's just choosing to do it all at once whereas other Renpy developers tend to space out that kind of work, sometimes specifically to allow players some time in between having to restart because they know that some won't be happy with that even if it is unavoidable. Even with this type of game, it doesn't need to be the way it is, the way to change it is to shift focus to something that won't mess with saves like story development.

So far, everything in the story can be tracked with existing variables, so this is why I say that shifting focus to story development will stop the need to restart at least until something needs a new variable or something along those lines to continue the story, thus giving players some time between restarts. You don't even need to resort to default variables as long as nothing is getting added or removed as far as existing variables. As long as the variable already exists, it won't mess with saves this badly and it would even help main mod development.

Most games are like that and Renpy is largely a VN engine. It can do things outside of VNs, but it is best used as a VN engine, which is part of why most developers use it for VNs and not other types like this. This is part of why the original Lab Rats did so well on this engine, because it was essentially a VN with some management elements and not a full blown management game. Most developers would use something else entirely, Unity for example, for this kind of game, but that relies entirely on whether a developer has knowledge of the engine being chosen and Vren doesn't have knowledge of any other engine that I am aware of.

I agree on this last part, most probably don't understand it fully, potentially even experienced developers. I get some of it, likely due to my own background in programming with the old Visual Basic and the general knowledge that came with that background, though some of it is a bit more complicated than what I had to deal with. It does seem fairly limited if I'm understanding the save portions of the linked page correctly, being only able to save what can be returned to plus the current statement plus a couple other things. That can be a lot depending on the number that can be returned to, of which I am sure Renpy has a hard limit, which could be many or only a few.
Adding story content wouldn't usually cause any form of change in the save. The reason is that is essentially fixed data that doesn't change during the game. The dialog lines and so to that effect aren't adjusted and then saved back to a variable or built on the fly. Which is why none of that stuff causes an issue.

I get were you are coming from you are putting the blame on Vren for making the types of changes he is doing.
My point is if the engine was written differently he could still make changes like this and it not require new starting new games.
I know that for a fact because I develop game engines. That's where I spend most of my time these days building game engines.

Vren could have also done a few things differently at the start of the development for this project. If say the character attributes were saved in an array rather than as individual variables you could write the code then so it doesn't require a new start easily.
But like I said above most people don't fully get the implications of the way Renpy saves stuff.

Just because I say the engine is at fault for something doesn't mean I am saying the engine is bad. I'd say more the issue is this game is using an engine that isn't suited for the purpose he is wanting to use it for.

But if you want to fair assessment of the engine. It's excessively slow for what it does. If we simply look at the graphic performance and not bring python into the factor. Renpy is built on Pygame. Pygame can move about 1000 objects on screen at 60fps on a 3.0ghz system. Pygame is built on SDL2. But they don't fully use its capabilities instead for some reason they nerf the fuck out of it. You can move to pysdl2 and get 3400 objects moving on screen at 60fps. Use ModernGL with python and you can make use of several features that SDL2 doesn't and bump it up even more. Use Vulkan and you can get a bit more. Really depends on what you are doing and your skill at coding.

So there is a crap load of performance thrown the hell away this game engine could make use of.
If they made a glyph system with SDL2 textures rather than what they are doing now and moved to SDL2 textures and not just the surfaces they would get more than 3x performance.
You can still have the ability to change stuff while using texture. What you do is store a surface and then keep bool for if it is modified. If it is modified you copy it again to the texture. When it isn't modified you just keep using the texture as is. That way you get the ability to modify surfaces and the performance of textures.

The save and rollback system in Renpy:
He created a script system and the rollback system which was a good bit of work. However, they save a massive amount of information they don't need to. In most game engines we don't save the state of something like python. Renpy does. It also saves the state of its own functions right down to what function you are in and what iteration you are on in a for loop in renpy script. In C and C++ or even other python games we simply save the information to recreate the state of the game at that time.
You might think that won't work for rollback. You would be wrong.
You can create systems that are reversible. In fact there is an entire programming language that is reversible. You don't need to go that far though. What you are primarily in need of is the functions that effect variables and things like arrays and so on.
That would be things like add,sub,mul,div and anything that adds to an object,array, tuple,dic... It should be vastly a good bit easier under python than C and C++ for this. You primarily need to create a standard way at each scene to call a reverse on what was done. The simplest way is creating two functions one called forward and one called reverse. The character selection is provided to it for that event type or screen and it makes the change according to it. Yes, it means creating a forward and reverse for each scene but it doesn't mean doubling the code or anything like that. In truth variable manipulation in stuff like visual novels is rather low. Even in lab rats 2 it isn't that high.
Then you effectively need an vector or array in this case that stores a tuple with location and the change that happened so you can go back through it and just undo stuff. In the last system I used this on it amount to 2 variables one that was the game state and the other was the choice selection. The game state variable indicated location and screen and so on. This was made rather easy because we treated locations like screens the same.

The resulting difference in that method vs Renpy's is you can undo many more events for the amount of space renpy uses. Also because you aren't saving such a large amount of data each time with the auto update it will give back a lot of performance.

If you think its a lot of work we used a modified version on a proof of concept for a 2D rpg where all the characters actions that caused changes in their stats were saved. This was built into each character. That way we could look at the progress of the characters. We wanted the ability to rollback through it based on time so we did have to add a time stamp to the tuple in the array. You could then scroll through the time line allowing you to see each characters progression over time.

That said Renpy's method takes next to nothing for story developers to implement other than adhere to some guidelines.
With the system above you have two options. The first is build the reverse system into the script and that would be hidden as this is from the developers. Given he wrote a script and a more complex rollback system. I think the time would have been better doing that instead. But that's just an opinion based on stuff I built. The second alternative is the forward and reverse function method you can have game developers create for each scene and screen method. That would require the game / story developer to be actively involved in building the rollback methods. It also would require developers to learn a different design approach for building games from what they are currently using. So while this is a lot more efficient and would work for seasoned developers it wouldn't work for most of the developers who have little to no programming experience.

So Renpy's Save and Rollback system in my book is good. It isn't great and it isn't bad either.
If I looked at it based on target users I would rate it a good bit higher than I would for general users.
Lets say it was designed with people new to programming in mind. Then its a 8 or so.
If you look at it with the general user in mind including those with medium to advanced programming skills it drops to a 6.
If I was looking at it from an advance programmer perspective it drops to a 5. (Primarily because we don't have to spend time building it thus raising it up a point)
 

Diconica

Well-Known Member
Apr 25, 2020
1,135
1,191
Well I think it is not even so much that they can't even, but is also just not up their alley. Better faces would not be a change in code but would need a good artist or aspiring artist that would add or replace existing faces with better art for all their expressions. Now anyone willing to put that amount of work in and design really better faces would be better off offering them to Vren himself for use and only work with modders if Vren would not accept with chance of double work as well.

Besides looking at the changes for 0.49 I suspect modders may well have their work cut out for them, even if this update may well add a better framework and mechanics for the chars in game to develop stories for the future.
The problem is less about people's ability to do art than the amount of work it would take because of how many images it encompasses.
The only way to do so economically would be to render all new images with new models. Doing that would mean they would be incompatible with any update or changes Vren does. Also you would have to make all the images work inside the same constraints as the old images or you would have to change all the image location data for putting it on screen.

A better solution would be port this game over to a different python engine that uses opengl and use 3D models and schenes rather than images. The quality of these renders isn't any better than what you can do with opengl in a game. In fact doing so probably would let you update the quality a good bit. Not just that given you could rig the characters you could add in all sorts of sex positions and event types. You could actually have the girls dance and use the stripper poles and so on. You could add in toys and bondage implements for them to use.
Given the current quality of the images you could exceed that with a mid poly character with around the low end of the mid poly character range could easily exceed the current image quality.
 
  • Like
Reactions: DA22

DA22

Devoted Member
Jan 10, 2018
8,082
16,668
The problem is less about people's ability to do art than the amount of work it would take because of how many images it encompasses.
The only way to do so economically would be to render all new images with new models. Doing that would mean they would be incompatible with any update or changes Vren does. Also you would have to make all the images work inside the same constraints as the old images or you would have to change all the image location data for putting it on screen.

A better solution would be port this game over to a different python engine that uses opengl and use 3D models and schenes rather than images. The quality of these renders isn't any better than what you can do with opengl in a game. In fact doing so probably would let you update the quality a good bit. Not just that given you could rig the characters you could add in all sorts of sex positions and event types. You could actually have the girls dance and use the stripper poles and so on. You could add in toys and bondage implements for them to use.
Given the current quality of the images you could exceed that with a mid poly character with around the low end of the mid poly character range could easily exceed the current image quality.
Ok I already said I am a non-coder. I thought if an artist would deliver all the needed renders it would be possible for modders to replace the existing renders of for example face 12 for the new ones. Seems I am wrong. :)

That in itself would already be a big enough job likely that unless someone would want to play around and learn facial renders and see that as a good project to do so it is reasonably unlikely to happen.
 

bloodbus

Member
Sep 30, 2020
413
340
I have been one of the people who considered making new models. I tried Blender and realized I'm not skilled enough (and don't have the time) to take on a project that size. Daz might be an option but as I said Vren mentioned he's going to look at revamping the models (More likely his render pipeline.) If they get touched up, the conversation can be resurrected. We've compiled an incomplete list of the assets Vren used that should help get something similar. At this point in time though it's not going to be changed by modders. Hell I tried making buttplugs for the game and while the results were fine, I never got past the render stage because the adjustments I needed to make were so tedious that it took away a lot of the drive I had for it
 

Ironclaw1

New Member
May 22, 2018
1
0
script.rpy, in the label "create_random_person", is the code:

Code:
        if age is None:
            age = renpy.random.randint(18,50)
Change 50 to your high-end desired age (24).
Hi all,

Currently it is not possible to edit this line of code right?

I've searched for it even in the base game without a mod, and with unren in this version and I couldn't find it.

is there any way? I don't want random fifties either xD

Thanks in advance
 

Phoexist

Member
Mar 11, 2020
473
514
I've gone the other route as far as 'models and animations' go for my personal mod. I mean it is still just ren'py after all. Rather than try to make hundreds of renders just to get a new hairstyle on the existing 3d model, I took images and movies from other games I enjoy and just put them into the code with the standard 'show' command and a hefty number of nested IFs in various locations. They run in conjunction with the game rather than just staring at a location background image during conversations and sex. Since I started this mod, I rarely play anything other than this game anymore. I literally can visit all of my favorite characters from dozens of other games by playing this one. You can separate all the images and movies using the roles easily enough for unique characters and I've added functionality so even the randoms get 'anonymous' images based on skin color and age.

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

shane420

Active Member
Jul 6, 2018
578
500
I've gone the other route as far as 'models and animations' go for my personal mod. I mean it is still just ren'py after all. Rather than try to make hundreds of renders just to get a new hairstyle on the existing 3d model, I took images and movies from other games I enjoy and just put them into the code with the standard 'show' command and a hefty number of nested IFs in various locations. They run in conjunction with the game rather than just staring at a location background image during conversations and sex. Since I started this mod, I rarely play anything other than this game anymore. I literally can visit all of my favorite characters from dozens of other games by playing this one. You can separate all the images and movies using the roles easily enough for unique characters and I've added functionality so even the randoms get 'anonymous' images based on skin color and age.

You don't have permission to view the spoiler content. Log in or register now.
Can I try your mod????
 

Phoexist

Member
Mar 11, 2020
473
514
Can I try your mod????
I've been documenting and planning on how to transfer my code changes into the new version once the main mod here gets updated again. I plan on releasing that info here when it's done. It's not really packaged well as 'clean mod' as I simply altered code wherever I needed to make it work. I will release a framework so people can plug their own movies and images into it though. I wouldn't feel good about distributing the actual image/movie files though as they are not my own work. All of them can be found on this site though.
 
4.60 star(s) 67 Votes