6 years ago
Making "crossing long distances to talk" socials better (discussion / suggestions for maxis)
Hey guys, so if you've played the game for any length of time in a sizable area (house, venue, especially if stairs are involved) you may have noticed the following scenario:
Sim A (we'll call him Bob) tries to go talk to Sim B (we'll call her Eliza - total coincidence, different Eliza and Bob from the Pancakes :P). Bob is far away from Eliza, either in level plane distance, or vertically (x and y axis, I think? or is it z axis is one of them? eh, you get the idea). Basically, they're far away from each other, one way or another.
What this means is that if Eliza is not doing anything, or Bob's social somehow forces a change in posture or something, Eliza will just sit there waiting for Bob to come, doing absolutely nothing in the interim. Sometimes the distance to cross is so long that the interaction drops before Bob reaches Eliza. This can be very frustrating for the player, as now you need to queue up the interaction again and with autonomy going at full, Eliza and/or Bob may almost immediately go try to do something else now that the interaction has dropped. It can also be frustrating for the reason of it feeling like your sims' time is being wasted, when they need to manage needs, school/work schedules, etc.
So problem described, why am I writing this post and why in technical discussion? I was looking into the problem to see if there was a way to make a modded change that could alleviate it, but in my tweaking/research, my conclusion so far is that the problem is probably beyond modding. Or at least beyond tuning modding. Maybe advanced scripts could do something. And I figured it might be interesting/insightful to discuss it in a technical capacity.
In the direction of scripting and/or suggestions for official changes, I mulled over some possible ideas for solutions. They are, in no particular order, as follows:
1) Have sims come toward each other, instead of one waiting for the other to arrive (if the targetsim is not doing anything, that is -- if they are, it may be odd to pull them away from it).
Pros: In theory, takes less time for the sims to reach each other, so less delay and less chance of the interaction dropping.
Cons: May be taxing on performance (sims would presumably need to either pick a point between each other, or constantly update as to where the other is, the latter of which would probably be taxing). Also, in the case of something like stairs, if not set up right, it could result in the sims passing each other on the stairs and ending up far away from each other.
2) Don't initiate a social if the targetsim is beyond N range (either in horizontal or vertical distance).
Pros: Cuts off the problem at the head by removing the possibility of it even occurring, provided the cutoff is harsh enough.
Cons: Some players may not like it if their sims don't autonomously seek out other sims beyond a certain range.
I believe there's already restrictions for on/off lot, but nothing I could find for tunable "range" other than in the interaction that has to do with gathering dishes.
This is my personal "what I think would work best for the lowest cost," but that's just based on my estimations of complexity and impact.
3) Don't push the social into the targetsim's queue until the actor is within a certain range (e.g. Bob doesn't push chat into Eliza's queue until he's within N range of her in horizontal or vertical distance).
Pros: Targetsim won't be interrupted/pausing, waiting forever for someone to reach them.
Cons: May be complicated to program and if the targetsim moves, that has to be accounted for somehow, which could get complicated fast. So far, the game doesn't seem to have much of anything for accounting for tracking of ongoing movement, presumably for performance reasons.
4) Create some sort of jog animation for stairs and make it so that the distance required for going into a jog is lower if the sims are trying to chat each other up.
Pros: Sims move faster if distance is beyond N range, so the delay issues are less likely to occur. (You can see the value of this in playing sims who have superspeed).
Cons: Probably complicated and time-consuming to do. May mess with peoples' stories/character of their sims if everyone is jogging to socialize with each other from within a distance that feels small to the player (ex: up/down stairs, but not far horizontally).
What do you think?
Sim A (we'll call him Bob) tries to go talk to Sim B (we'll call her Eliza - total coincidence, different Eliza and Bob from the Pancakes :P). Bob is far away from Eliza, either in level plane distance, or vertically (x and y axis, I think? or is it z axis is one of them? eh, you get the idea). Basically, they're far away from each other, one way or another.
What this means is that if Eliza is not doing anything, or Bob's social somehow forces a change in posture or something, Eliza will just sit there waiting for Bob to come, doing absolutely nothing in the interim. Sometimes the distance to cross is so long that the interaction drops before Bob reaches Eliza. This can be very frustrating for the player, as now you need to queue up the interaction again and with autonomy going at full, Eliza and/or Bob may almost immediately go try to do something else now that the interaction has dropped. It can also be frustrating for the reason of it feeling like your sims' time is being wasted, when they need to manage needs, school/work schedules, etc.
So problem described, why am I writing this post and why in technical discussion? I was looking into the problem to see if there was a way to make a modded change that could alleviate it, but in my tweaking/research, my conclusion so far is that the problem is probably beyond modding. Or at least beyond tuning modding. Maybe advanced scripts could do something. And I figured it might be interesting/insightful to discuss it in a technical capacity.
In the direction of scripting and/or suggestions for official changes, I mulled over some possible ideas for solutions. They are, in no particular order, as follows:
1) Have sims come toward each other, instead of one waiting for the other to arrive (if the targetsim is not doing anything, that is -- if they are, it may be odd to pull them away from it).
Pros: In theory, takes less time for the sims to reach each other, so less delay and less chance of the interaction dropping.
Cons: May be taxing on performance (sims would presumably need to either pick a point between each other, or constantly update as to where the other is, the latter of which would probably be taxing). Also, in the case of something like stairs, if not set up right, it could result in the sims passing each other on the stairs and ending up far away from each other.
2) Don't initiate a social if the targetsim is beyond N range (either in horizontal or vertical distance).
Pros: Cuts off the problem at the head by removing the possibility of it even occurring, provided the cutoff is harsh enough.
Cons: Some players may not like it if their sims don't autonomously seek out other sims beyond a certain range.
I believe there's already restrictions for on/off lot, but nothing I could find for tunable "range" other than in the interaction that has to do with gathering dishes.
This is my personal "what I think would work best for the lowest cost," but that's just based on my estimations of complexity and impact.
3) Don't push the social into the targetsim's queue until the actor is within a certain range (e.g. Bob doesn't push chat into Eliza's queue until he's within N range of her in horizontal or vertical distance).
Pros: Targetsim won't be interrupted/pausing, waiting forever for someone to reach them.
Cons: May be complicated to program and if the targetsim moves, that has to be accounted for somehow, which could get complicated fast. So far, the game doesn't seem to have much of anything for accounting for tracking of ongoing movement, presumably for performance reasons.
4) Create some sort of jog animation for stairs and make it so that the distance required for going into a jog is lower if the sims are trying to chat each other up.
Pros: Sims move faster if distance is beyond N range, so the delay issues are less likely to occur. (You can see the value of this in playing sims who have superspeed).
Cons: Probably complicated and time-consuming to do. May mess with peoples' stories/character of their sims if everyone is jogging to socialize with each other from within a distance that feels small to the player (ex: up/down stairs, but not far horizontally).
What do you think?