throbzombie

Well-Known Member
Oct 15, 2020
1,136
2,413
Is this literally the only text based game on this site that has scenes that can happen outside of your control that you just stumble upon? Letting your slaves do their own thing and discovering them fucking each other is hot. No other game that I've found satisfies my voyeurisms fetish.
Uh, CoC? TiTS? I'm sure that there are others, but those are the only ones I follow.
 

NODOGAN

Well-Known Member
Dec 11, 2017
1,397
2,182
bit late to the party, is the newest update just fixes? nothing new added?

BTW do the enforcers STILL attack you if they see you with Enforcer Gear after doing Wesley's quest/having the contractor liscence or that was fixed?
 

BaloneyAmone

Active Member
Mar 3, 2021
554
1,005
bit late to the party, is the newest update just fixes? nothing new added?

BTW do the enforcers STILL attack you if they see you with Enforcer Gear after doing Wesley's quest/having the contractor liscence or that was fixed?
There was a pretty good injection of content in the latest patch for Elis. I can't confirm the enforcer gear bit, though.
 

redcynic

Member
Jul 12, 2017
156
634
What's the exact issue and has it actually been reported somewhere?
Mind that I may in fact just be very stupid and unable to figure out the way to remove the status effect but tldr, if you put a chastity cage or belt on you get the status effect Locked in Chastity. if you then remove the cage or belt, the status effect stays on even if you go have an orgasm or whatever, eventually reaching its maximum stacks and tanking your lust resistance.
 

Daddums

Member
Oct 26, 2019
292
851
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
510
855
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
292
851
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

Active Member
Apr 24, 2020
749
479
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

Active Member
Apr 24, 2020
749
479
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
292
851
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,224
1,556
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,305
1,777
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
85
270
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
510
855
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
26
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

Member
Jan 22, 2020
478
420
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:
4.10 star(s) 119 Votes