More Awesome Than You!

TS2: Burnination => The Podium => Topic started by: Mootilda on 2011 February 08, 18:37:48



Title: Removing sims without removing links to them.
Post by: Mootilda on 2011 February 08, 18:37:48
I just found a group of people who recommend using the Clean Installer to remove some of the sims packaged with a lot, without removing the memories, relationships, and family ties which link to those sims.  One person who is making this suggestion has explained that this will remove the possibility of corrupting your neighborhood, since you will no longer be installing the sim stubs which are inevitably packaged along with a family which has not been properly cleaned.

On the face of things, this seems absurd.  I cannot help believing that the game deals with stub sims much better than it deals with memories, relationships and family ties with non-existent sims.

Can anyone confirm this?  I'd appreciate hearing from someone who had actually done research in how the game deals with stub sims, vs how it deals with non-existent sims.  Obviously, the best alternative is to properly clean up both the unwanted sims and the links to those sims, but does anyone know whether it is better to have stub sims or links to non-existent sims?


Title: Re: Removing sims without removing links to them.
Post by: rufio on 2011 February 08, 21:55:19
Well, I was under the impression that all of "stub sim" problems actually arise as a result of deleting sims without deleting memories and links to them, a subset of which problem is moving sims who already have memories to a new hood where the sims referenced by those memories do not actually exist.  Deleting sims from within the game without deleting the memories that link to them certainly does cause corruption, and I can't imagine that this would somehow be different just because you just deleted them from from a house using the clean installer instead.


Title: Re: Removing sims without removing links to them.
Post by: Mootilda on 2011 February 09, 01:43:54
I believe that there are two major problems with "stub sims", separate from the issue with links to non-existent sims:

1) Since each family which is packaged has its own version of the stub sims, you can end up with a large number of identical Goopys (or other sims) in your neighborhood.  As if one wasn't enough.

2) Since each family drags along a number of stub sims, you will reach the "sim limit" of the neighborhood much faster than if there were no stub sims.

That said, I have always assumed that stub sims were EA's "fix" for broken connections.  Obviously, not everyone believes that.  Now that I'm doing the development on the Clean Installer, it's clear that the Clean Installer doesn't actually clean up the broken connections when you remove one of the stub sims.


Title: Re: Removing sims without removing links to them.
Post by: rufio on 2011 February 09, 02:08:47
That said, I have always assumed that stub sims were EA's "fix" for broken connections.  Obviously, not everyone believes that.  Now that I'm doing the development on the Clean Installer, it's clear that the Clean Installer doesn't actually clean up the broken connections when you remove one of the stub sims.

This was what I thought too, based on reading Pescado's posts here - that when you package sims or put them in the lot bin, the game figures out, oh we are moving neighborhoods now, all these pointers will become broken, and creates partial character files for them to point to and stuffs them in the lot, too, and then problems arise because they are not "real" sims and lack a lot of data that the game will inevitably try to access anyway.  If that's the case, the "stub sims" are just a deferred dangling pointer issue, rather than something that will immediately cause crashing and corruption, but are still the same basic problem.

Could Clean Installer actually be modified to clean up stubs and broken memory references, though, maybe even to the point where you could move occupied lots into the bin and export them, purify them with CI, and safely install them in a new hood?  I understand the old hood would probably still be hosed, but if you are evacuating sims from it you might not care about that.


Title: Re: Removing sims without removing links to them.
Post by: Mootilda on 2011 February 09, 02:33:22
Yes, I've been wondering whether the correct solution would be to have the Clean Installer remove all of the broken connections whenever the user deselects a sim.  I'm pretty sure that it's safe to just remove the broken family ties and relationships, but I have heard that it can be bad to remove some kinds of memories.  If this is true, then it might make sense to change (some of) the broken memories to point to the "mystery sim" instead.  If I had a list of memories which could be safely deleted and those which cannot, then it should be a fairly simple matter to delete the ones that can be deleted and change the rest.

I've also been working on a neighborhood corruption detector which may eventually have a "fix all issues found" button, which would do the same thing but on a larger scale.

I wasn't aware that the game might attempt to access invalid portions of the stub sim's data.  That may explain why these people believed that removing the stub sims was the safest option.  Can I assume that the game is smart enough to avoid accessing invalid portions of the mystery sim's data?

Can anyone confirm that there are only three things that I need to worry about: memories, family ties, and relationships?


Title: Re: Removing sims without removing links to them.
Post by: rufio on 2011 February 09, 03:36:28
If I had a list of memories which could be safely deleted and those which cannot, then it should be a fairly simple matter to delete the ones that can be deleted and change the rest.

Which ones can't be deleted?  Tabula Rasa deletes all the memories of a particular sim; would that need to be fixed too, now, if there are some that really shouldn't be deleted?

I wasn't aware that the game might attempt to access invalid portions of the stub sim's data.  That may explain why these people believed that removing the stub sims was the safest option.  Can I assume that the game is smart enough to avoid accessing invalid portions of the mystery sim's data?

I don't actually know that it does - this is another impression I've mostly gotten from reading posts here, and it could just be that the stubs add to the list of sims that has to be iterated over for set to next/etc., and that that is the only reason they are anathema (well, and also because they take up space).  This whole aspect of the game seems very poorly thought out to me, though, and it wouldn't really surprise me if this was a feature they put off until the very last minute or something, and which they therefore may have failed to account for in other places in the code besides just the obvious ones.  I would also be interested in confirmed information about this.  FWIW, I have never heard the mystery sim being implicated in any problems.


Title: Re: Removing sims without removing links to them.
Post by: Mootilda on 2011 February 09, 04:59:00
Here's a thread which has some advice about removing corrupted resources from a neighborhood:
http://www.moreawesomethanyou.com/smf/index.php/topic,4634.msg131583.html#msg131583

Cleaning up memories of met sims who are shown as unknown, just delete every single one you can find including invisible memories which are gossip.   Don't delete passed on gossip memories of the Mystery Sim, though, unless you have used the FFSdebugger to wipe mystery sim memories.  If you have such things as noaplusspam or nodeanspam, then you can delete all but the first of the actual memories (ie, Dustin got an A+ (Brandi) one memory is all you need, Dustin got an A+ (Beau) one memory likewise is all you need.  However, don't go deleting a lot of the invisible memories of this, as this is gossip and will only be added again so there's no point.)

Never delete any memory that has a token!

I hadn't considered SWAF (Sim Wants and Fears), but I suppose that should be cleaned as well.  Wants for interactions with a specific person could usually be changed to the more general version of the want.



Title: Re: Removing sims without removing links to them.
Post by: Inge on 2011 February 09, 07:52:34
The only problem would be if a player didn't want their sim to "forget" things that had happened in the past.  The stubs as I understand it are holding just enough info to fill in the strings in the memories stored on each sim - eg name, to provide "had first kiss with <name>" "was potty trained by <name>".   To get rid of everything that needs a stub, the sim would have to look like an amnesic without a past!

What would have been better for EA to do is assign fixed NIDs in a particular range to their townies and NPCs so that if your sim liked Goopy in town 1, rather than making a stump to him in town 2 where there is already a living Goopy, she is preset with relationships to the new town's goopy.


Title: Re: Removing sims without removing links to them.
Post by: J. M. Pescado on 2011 February 09, 17:35:36
I just found a group of people who recommend using the Clean Installer to remove some of the sims packaged with a lot, without removing the memories, relationships, and family ties which link to those sims.  One person who is making this suggestion has explained that this will remove the possibility of corrupting your neighborhood, since you will no longer be installing the sim stubs which are inevitably packaged along with a family which has not been properly cleaned.
No, this will just completely fuck up your game even worse, because now instead of pointing to a stub, they point to garbagespace. Tell the person who suggested this that it is a moron.

I strongly suggest not paying attention to anything technical written by ZZ. This was someone with a known track record for spewing utter bilge when it comes to technical data.

What would have been better for EA to do is assign fixed NIDs in a particular range to their townies and NPCs so that if your sim liked Goopy in town 1, rather than making a stump to him in town 2 where there is already a living Goopy, she is preset with relationships to the new town's goopy.
Which doesn't work quite so well either, because that town's Goopy doesn't remember any of this. Of course, the game has that "feature" anyway.


Title: Re: Removing sims without removing links to them.
Post by: Mootilda on 2011 February 09, 17:55:44
I just found a group of people who recommend using the Clean Installer to remove some of the sims packaged with a lot, without removing the memories, relationships, and family ties which link to those sims.  One person who is making this suggestion has explained that this will remove the possibility of corrupting your neighborhood, since you will no longer be installing the sim stubs which are inevitably packaged along with a family which has not been properly cleaned.
No, this will just completely fuck up your game even worse, because now instead of pointing to a stub, they point to garbagespace. Tell the person who suggested this that it is a moron.

OK, that seems very logical to me.  I have responded to both people who suggested it, telling them that this is a very bad idea.

Since cleaning the sims correctly is a major amount of work, I may change the Clean Installer so that you only have the option to install all sims on the lot or none of the sims on the lot; this should stop the worst forms of corruption.


Title: Re: Removing sims without removing links to them.
Post by: rufio on 2011 February 09, 20:34:49
The only problem would be if a player didn't want their sim to "forget" things that had happened in the past.  The stubs as I understand it are holding just enough info to fill in the strings in the memories stored on each sim - eg name, to provide "had first kiss with <name>" "was potty trained by <name>".   To get rid of everything that needs a stub, the sim would have to look like an amnesic without a past!

Well, this is what happens anyway, when you "move" sims between neighborhoods by cloning them and cheating them back to all their skills, etc.  I'm just thinking of a hypothetical way that CI could do this same process automatically, but without having to create a new sim and transfer the lot separately, painstakingly record all of the sim's stats so that you can recreate them with hacks, etc.