AI Porn is here, Create and Fap TRY FREE
x

Daddums

Member
Oct 26, 2019
410
1,383
320
Checked error log and RAM usage?
No error logs show up, as for RAM I can check that. I'll have to tip my hat off to Inno if 32GB of RAM isn't enough... or should I tip my hat off to Java?

Anyways, yeah, it seems to climb up steadily and plateaus for a bit before climbing up more. Went as high as 2.5GB before I got the picture. Every step, every action added to it without actually lowering, it would sometimes lower, but it seemed pretty steady once it climbed.
 

Sarkath

Active Member
Sep 8, 2019
547
949
245
No error logs show up, as for RAM I can check that. I'll have to tip my hat off to Inno if 32GB of RAM isn't enough... or should I tip my hat off to Java?
By default, Java only allows applications to use a fraction of your memory for the heap size. I'm not sure how this would work in the EXE version, but you can directly control the maximum heap size using the -Xmx parameter (e.g. -Xmx8192m to set the limit to 8GB) when using the JAR file.

As far as the memory issues, it's more that LT holds all objects in memory all the time than anything else. It doesn't really have a concept of zone-based loading or anything like that, so when you have a long-running save with hundreds of NPCs it's going to track all of them at all times. If LT were a C++ application and were written the same way it is now it'd still have the same memory problems.
 

Daddums

Member
Oct 26, 2019
410
1,383
320
By default, Java only allows applications to use a fraction of your memory for the heap size. I'm not sure how this would work in the EXE version, but you can directly control the maximum heap size using the -Xmx parameter (e.g. -Xmx8192m to set the limit to 8GB) when using the JAR file.

As far as the memory issues, it's more that LT holds all objects in memory all the time than anything else. It doesn't really have a concept of zone-based loading or anything like that, so when you have a long-running save with hundreds of NPCs it's going to track all of them at all times. If LT were a C++ application and were written the same way it is now it'd still have the same memory problems.
I suppose I'll have to switch to JAR then so I can do that. I think it just builds up to the point it reaches a threshold that my computer just can't handle for RAM. I never managed to actually see what the final tally was up to that point.

What would be the solution for Inno to solve this if they could? Asking because I find this bizarre enough to pique my interest.
 

StapleComm

Well-Known Member
Apr 24, 2020
1,094
1,093
338
By default, Java only allows applications to use a fraction of your memory for the heap size. I'm not sure how this would work in the EXE version, but you can directly control the maximum heap size using the -Xmx parameter (e.g. -Xmx8192m to set the limit to 8GB) when using the JAR file.

As far as the memory issues, it's more that LT holds all objects in memory all the time than anything else. It doesn't really have a concept of zone-based loading or anything like that, so when you have a long-running save with hundreds of NPCs it's going to track all of them at all times. If LT were a C++ application and were written the same way it is now it'd still have the same memory problems.
So the solution is to just not have many NPCs in your save file? Or is it basically impossible if you play for a long amount of time?
 

StapleComm

Well-Known Member
Apr 24, 2020
1,094
1,093
338
What would be the solution for Inno to solve this if they could? Asking because I find this bizarre enough to pique my interest.
Well... zone-based loading, as the guy said. I honestly have no idea why it isn't a thing yet, if you program something you should usually try to make it as memory and time efficient as possible. Except if it's like... rock-paper-scissors app, I think you would actually need to try to make it lag (that is if it doesn't have some sort of graphics or a video)
 

Daddums

Member
Oct 26, 2019
410
1,383
320
Well... zone-based loading, as the guy said. I honestly have no idea why it isn't a thing yet, if you program something you should usually try to make it as memory and time efficient as possible. Except if it's like... rock-paper-scissors app, I think you would actually need to try to make it lag (that is if it doesn't have some sort of graphics or a video)
Is that something you can implement so late into development? I was curious if maybe it's too much at this point for the code.

Well, either way, despite my present frustrations with the game at least I'm learning something. Not sure how useful it'll be for me, but it's something.
 

tehlemon

Well-Known Member
Jan 26, 2021
1,229
1,583
197
By default, Java only allows applications to use a fraction of your memory for the heap size. I'm not sure how this would work in the EXE version, but you can directly control the maximum heap size using the -Xmx parameter (e.g. -Xmx8192m to set the limit to 8GB) when using the JAR file.

As far as the memory issues, it's more that LT holds all objects in memory all the time than anything else. It doesn't really have a concept of zone-based loading or anything like that, so when you have a long-running save with hundreds of NPCs it's going to track all of them at all times. If LT were a C++ application and were written the same way it is now it'd still have the same memory problems.
Yeah, you nailed it again. Not that it surprises me at this point lol

The EXE version is weird. I don't know if its a bug with how it works, but sometimes it caps off the memory usage around where the JAR limit is, and sometimes its able to go *way past* that limit. I have a feeling that's a memory leak causing it though. I was finally playing the latest version and I switched back to the JAR version after I ended up using 11GB of memory on a save that had zero slaves, and only like 5 children. I don't know how the fuck I managed it, I wasn't playing enough attention because I was trying to check out the new writing, not test anything (but hey, I actually think the newest bit of writing is pretty good! Credit where credit is due to Inno. I still think the second half of Nyan's rework is terrible, but the new stuff mostly seems alright. My only issue is that there's a bunch of weird inconsistencies in different places. That tends to happen after you placeholder shit and then forget things. But those are all over this game, so fuck it.)

And yeah. If we ever get past the front end issues you discovered, proper loading and unloading of assets would be the next thing to tackle. There's *so much shit* kept in memory that doesn't need to be.


So the solution is to just not have many NPCs in your save file? Or is it basically impossible if you play for a long amount of time?
The number of active NPCs is definitely a huge contributor, but it's not the only problem. Like I said in the previous blurb, I managed to kill my save with only like 5 non-required NPCs loaded.

Is that something you can implement so late into development? I was curious if maybe it's too much at this point for the code.

Well, either way, despite my present frustrations with the game at least I'm learning something. Not sure how useful it'll be for me, but it's something.
It's absolutely something that *could* be done. But it would be a big rework, since the game was clearly never designed with this in mind. It's not something I'd expect to see anytime soon.
 

BupoTiling03-Retired

Well-Known Member
Modder
Jul 21, 2018
1,387
2,042
468
No error logs show up, as for RAM I can check that. I'll have to tip my hat off to Inno if 32GB of RAM isn't enough... or should I tip my hat off to Java?

Anyways, yeah, it seems to climb up steadily and plateaus for a bit before climbing up more. Went as high as 2.5GB before I got the picture. Every step, every action added to it without actually lowering, it would sometimes lower, but it seemed pretty steady once it climbed.
Memory leaks can tank any amount of RAM, inefficient use can too. Such as n numbers of the same never-changing (guaranteed) objects when you could just use a reference instead.
So the solution is to just not have many NPCs in your save file? Or is it basically impossible if you play for a long amount of time?
It'll probably happen eventually to all saves.
Well... zone-based loading, as the guy said. I honestly have no idea why it isn't a thing yet, if you program something you should usually try to make it as memory and time efficient as possible. Except if it's like... rock-paper-scissors app, I think you would actually need to try to make it lag (that is if it doesn't have some sort of graphics or a video)
"make it lag" ???
By default, Java only allows applications to use a fraction of your memory for the heap size. I'm not sure how this would work in the EXE version, but you can directly control the maximum heap size using the -Xmx parameter (e.g. -Xmx8192m to set the limit to 8GB) when using the JAR file.

As far as the memory issues, it's more that LT holds all objects in memory all the time than anything else. It doesn't really have a concept of zone-based loading or anything like that, so when you have a long-running save with hundreds of NPCs it's going to track all of them at all times. If LT were a C++ application and were written the same way it is now it'd still have the same memory problems.
That's why I mentioned checking to see if it was a memory leak or just bad practice, as you mentioned.
 
  • Like
Reactions: Sarkath

Taak

Newbie
Jun 21, 2017
99
314
228
Two words from the latest changelog that describe state of this game perfectly? Probably "placeholder content"
 
  • Like
Reactions: aroeah126

Sarkath

Active Member
Sep 8, 2019
547
949
245
What would be the solution for Inno to solve this if they could? Asking because I find this bizarre enough to pique my interest.
It would pretty much be to only load the NPCs close to the player exist. There are a few issues with doing that at the moment (I'll cover that below) but it's not insurmountable.

So the solution is to just not have many NPCs in your save file? Or is it basically impossible if you play for a long amount of time?
I believe it can be fixed. I've hacked together a (greatly reduces the amount of status updates per turn, particularly on files with a ton of NPCs), and resolving this would taking that to its logical conclusion.

Is that something you can implement so late into development? I was curious if maybe it's too much at this point for the code.
Yep. There are some things to consider, but with the way LT's code is structured it shouldn't be too bad.

One of the reasons that all of the NPCs currently need to remain loaded at all times is due to the way status effects work. Right now, every single turn, the game runs through all of the status effects and updates any NPC that has those status effects. When there's a lot of NPCs, this causes a ton of memory usage (all of those NPCs must remain loaded, and the game tracks a surprising amount of data for each character) as well as CPU usage (the status effect calculations are pretty comprehensive and occur across all NPCs every time the player does anything).

There are a few things that would have to happen. Firstly, status effects would have to have some sort of flag indicating their scope. Basically, indicating how far-reaching the status's effects would reach. In the case of pregnancy, at this time it seems like the offspring would appear within the same city, so a pregnant NPC in Lilaya's Manor would have to be kept active while the player is in Dominion (including Submission, since the offspring could be an imp), but if the player is in the Fields the update could be deferred. If the status effect is a clothing effect, it can be deferred until the player shares a tile with the NPC.

After status effects have been extended appropriately, an NPC loader/unloader would have to be implemented. This could fire off whenever the player enters or leaves an area. After all, you normally don't need Slave Alley NPCs loaded if the player is roaming the streets of Dominion.

I think the trickiest part about this is that it is going to essentially require the game to autosave. Right now you can massively improve inter-map performance by disabling autosaves, but that NPC data is going to have to be dumped to and restored from somewhere if it's not going to live in memory in perpetuity. I contributed a patch that cuts down save times by 33-50%, but if you have a couple thousand NPCs that still leaves you with a 2-3 second save time, which is pretty nuts.

I suspect that skipping the XML serialization step might be a viable solution as well. Using a compressed binary cache for something like this would probably be pretty fast.

It's probably possible to reduce the memory footprint of a GameCharacter instance, since that thing is kind of an untamed monster. I haven't looked into that too much yet.
 
  • Like
Reactions: Daddums
Mar 18, 2020
98
28
94
I am using an older version of the game (specifically 0.4.0.5). There's a weird bug that causes only Centaurs, Slime people and Snake people to spawn as characters during random encounters and brothel encounters. Is there a way to fix this? It affects all of my save files.
Should I just update to the new version and hope for the best with save transfer?
 

X Death

Well-Known Member
Jan 22, 2020
1,724
10,913
707
uh... i cant stop having cunnilingus sex with scarlett, i already lost my previous progress as i forgot to save, i thought its just an error and so i try it again, but nah, i cant even do quick sex, im stuck with her pussy.

Edit : the only way to not get this bug is just dont choose to lick her pussy and you good to go.
 
Last edited:

BaloneyAmone

Active Member
Mar 3, 2021
665
1,310
267
uh... i cant stop having cunnilingus sex with scarlett, i already lost my previous progress as i forgot to save, i thought its just an error and so i try it again, but nah, i cant even do quick sex, im stuck with her pussy.

Edit : the only way to not get this bug is just dont choose to lick her pussy and you good to go.
This is a bug in the new version. For now, just avoid that specific interaction and wait for a hotfix.
 

Toramizu

Member
Game Developer
Oct 14, 2017
219
431
288
uh... i cant stop having cunnilingus sex with scarlett, i already lost my previous progress as i forgot to save, i thought its just an error and so i try it again, but nah, i cant even do quick sex, im stuck with her pussy.

Edit : the only way to not get this bug is just dont choose to lick her pussy and you good to go.
I've reported the bug, and Innoxia confirmed it will be fixed next version
 
  • Like
Reactions: X Death

uberalles333

Newbie
Mar 30, 2019
22
31
174
The game becomes frankly boring despite all the changes. I would like to see a truly hardcore quest line that changes the whole style of the game.
 

tehlemon

Well-Known Member
Jan 26, 2021
1,229
1,583
197
like how?
Clearly the best way is to add another quest line that requires you to repeat the same action 20 times to reach the conclusion, but you're only able to perform that action once every week at specific and arbitrary times, preferably that overlap with another quest's specific and arbitrary times.


wait... no.
 
Sep 7, 2020
81
127
165
Dude Innoxia can't even consistently update the game, and you're asking for an entire style change? Be realistic here my guy.
They're right though. The game is super linear and lacks any actual gameplay loop. It should go down the DoL route by being a battle to get through the story against the corruption and lewdification of your character, balanced around rng elements so you will inevitably lose. It needs more bad ends and more unexpected sandbox content. Zones, especially Dominion, need redesigning around forcing you to travel through danger spots instead of all the safe streets. Randomly generated enemies need to have things like bondage giver fetish and physically put you in items. Enslavement has been waited on forever. And a focus on the player entering a cascading degradation of moral values should occur. Use Trap Quest and DoL for inspiration but really lean in on the randomly generated characters doing a lot more stuff. Apply tattoos. Put the player in items that are cursed that have negative effects. Apply effects that make the player unable to NOT submit to an opponent. Etc etc etc. On top of this make sure to actually create a gameplay loop event (rising rent costs? toll roads/gates that rise over time?) to force the player into requiring larger and larger sums of money just to barely survive, this will actually give the player something to struggle against in the world and make how they end up spending their time a meaningful choice instead of literally just going to your bed and spamming "skip to sunset/skip to sunrise" for several days to skip to an event you want to do.

There's an absolute mountain of stuff that could be explored if the game had a proper gameplay loop to balance around and a vision of what a gameplay loop actually is.

Right now it's a linear visual novel without any visuals. Build it into a struggle against transformation, corruption and moral degradation with proper timelimits as a driving force for the player to use their time wisely and push forwards. Right now it's trying to be way too many things and the answer given is "just RP it" and this mindset results in it failing to be anything but mediocre at a lot of things.

The foundation is fantastic, the fundamental understanding of what a game actually is happens to be what's missing.
 
4.00 star(s) 131 Votes