Forum Discussion
Anonymous
2 years agoI don't know if you can answer this question but why does Sims 4 feel like there's less to do than Sims 3? Is it just a different design? Is it something I'm missing? Is it encouraging more expansion packs?
I can't really answer that. I can say that The Sims 4 shipped with a few major missing pieces (pools & toddlers) but those were added later. This is much more of a design/production question than a programming question. Besides pools/toddlers, it never felt like a lack of things to do, except of course the feeling that always happens when switching from a Sims game with tons of expansions to a base game with none.
I got a question!! My fiance actually brought this up recently… why will sims finish eating at the dining room table and get up and walk upstairs to the furthest bathroom to wash the dishes? Its very weird…
It's based on distance, but not exactly perfect pathing distance. We can't run a pathfind to every single possible washing location, so we estimate it. If I recall, at ship it basically used crows-fly distance (so length of sink position - sim position), ignoring walls, etc. For sinks on another floor, it does a crow's fly distance to the stairs, then from the stairs to the target. This might have changed since shipping (I left a few months after we shipped base game).
"We've experimented with planning, but it caused confusion because players didn't know why their sim was doing what they were doing."
It might be interesting to have a more simulation, hands-off mode where sims do plan and act.
But it would indeed need some feedback, players want to understand what happens. This was a major gripe of Sim Earth, sim ant, & Sim City (all).
Such a system could bring a welcome sense of authenticity in MMORPG NPCs.
I completely agree! I'm playing around with this on my current (non-Sims and non-EA) project. The hard part is balancing player autonomy with agent autonomy. In other words, the player needs to feel in control of their game, but the agents (AI characters) need to feel life-like.
I find the same sex aspect very interesting! I dunno if other players hear this but my parents once told me that I became gay because I play The Sims... If the same sex aspect said in this comment is truly the case, The Sims doesn't introduce same sex ideas into the player but only mirrors what the players input in the save file!
Is this also the case in the past and other versions of the game, like in 3 or 2?
Yes, I'm pretty sure this is how it worked on Sims 1 and 2 (though I didn't work on those, so I'm only extrapolating). Sims 3 definitely worked like this since we used the same core AI code on the Sims Medieval.
Also, for the record, a game can't make you gay, but it CAN help you explore things that may or may not be accepted. We've gotten letters from people talking about how The Sims gave them the courage to come out as gay, which is pretty amazing.
you already said a thing or two to "AntonLejon" about the rules that are in place to balance everything and that the only way to see if they are in a good spot is basically to play them out over many hours.
is there anything you where implementing you can recall, that was so impactful that it threw off the balance very unexpected or the other way around you did not noticed at all as you where hoping to see which in turn took way longer to tweak than others?
or do all those values had a hard caps to prevent some mass events?
and where there any that you had to scrap entirely because they messed others up to much?
There were certainly hard caps, but I created those caps, so they got moved from time to time. ;)
One of the big issues that happened on The Sims 4 was sims being "greedy" with interactions. Because we allowed sims to be in multiple interactions, but best possible case was to have them in as many as possible, but that's not realistic (hence why you shouldn't text & drive...) I created the concept of focus cost, which was a limiter to interaction scores when performing a particular action. So certain interactions could be tagged with a focus cost that would artificially penalize choosing other interactions, preventing sims from wanting to do too much.
I think one of the biggest wins for me personally was getting design to trust the AI. On the Sims 3 and The Sims Medieval, AI was only run when the Sims's interaction queue was empty. The Sims 4 ran AI on a timer (mostly) because we wanted to be able to continue adding more interactions when necessary. So you might sit down to eat and then while eating, decide to talk to your spouse. The problem is that if a sim's motives were mostly solved, they would bounce between interactions pretty quickly. A social interaction would score at 5 and a fun interaction would score at 5. We might choose social, run one single social action, then leave.
Interactions had the concept of "always guaranteed", which means the interaction would run until something specifically killed it. Design solved the problem by using this, so they would force the Sim to stay in a social for 15 - 30 sim minutes (or whatever). The bad news is that this short-circuits the AI, so then sims start motive failing and I get bugs that sims are motive failing.
What I did is told design to never mark an interaction as always guaranteed unless it REALLY needed to happen, like a sim dying. The real bug was that Sims were bouncing around too much.
This was solved in a few ways. First, when scoring another interaction, we subtract the score of any current interactions that would be cancel. Second, we have an opportunity cost multiplier on all interactions. This is what we multiply that score by when subtracting it.
So let's go back to our original example: social is scoring at 5 and fun is scoring at 5. We run a social interaction, gain some social, and now social scores at 3 and fun scores at 5, so the net score is 2 (5 for fun minus 3 for losing the social). BUT, social has an opportunity cost of 2, so now we have a fun score of 5 - (3 x 2) = -1. Anything less than or equal to 0 is ignored, so the sim stays in the social.
That's a long winded answer, but hopefully that's what you were looking for. :)
1. What's your thoughts on MCCC modifications to population rules, autonomy rules, culling, performance and so on? Do you think they work well in tandem with vanilla code? Basically any opinion on MCCC from coding perspective would be super interesting.
2. Just a minor question, but to what extent is the AI affected by routing and how does that affect performance?
3. It's well known that in Sims 4 sims can get absurdly obsessed with very particular activities - like playing BlikBlok on that BlikBlok machine, drinking water from a sink, doing pushups in random places, just to name a few. There's some interactions that trigger way more often than it would seem reasonable. (Someone even made a "Less Obsession" mod addressing a long list of them). Do you think this is some oversights or bugs linked to how these items are coded, or is this by design?
1) I have no idea, I haven't looked at the mods at all. I will say that I'm absolutely thrilled with the modding community in general. It takes this from being an EA game to really being the Sims community's game. The modding community also does a lot without having the same tools we had. We don't ship any of the editors and I'm pretty sure all the comments and things are stripped out (which is a shame, I'm a VERY heavy commenter so it would make autonomy way easier to understand).
2) The AI makes a decision to do X. Part of this is a distance cost, but we don't want to incur the cost of making a bunch of routing calls for everything we're considering, so we do an estimation. Last time I checked, it was crow's fly distance if you're on the same level. If you're on a different level, it's crow's fly to the stairs, then from there to the target. It might have changed since I left though. Once a decision is made, we run a posture transition, which includes an actual call to the routing system. The posture state was stored as a graph and we ran a dijkstra search to determine the best posture transition, which could affect where a sim goes (such where to sit to eat, for example).
3) It's a subjective call on the part of whatever designer tuned those objects. It's incredibly difficult to make it feel good in all circumstances. For example, if you have a single high-quality fun item and a bunch of low-quality fun items, they will definitely obsess over the high-quality one (wouldn't you?) For things like push ups or the BlikBlok object, it's a tuning issue. for what it's worth, I do remember a bug coming through before shipping specifically about BlikBlok object being way to fun....
At the end of the day, it's a combination of bug triage, subjective feel, and a judgement call. Also remember that you players play the game very differently than many of us. You get a much better gestalt of everything and while we do play the game just to play, most of it is trying to look at a specific issue.
Hopefully that answered your questions. :)
I have a question. How did you manage to make this system scalable. Adding more objects to the lot would make the system to iterate on more posible candidates. You said you checked the objects by traits. Did you have a map of the objects in the lot by traits or smt similar?
There are a few ways. All objects knew what motives they could solve, so we only had to go to the object level to determine if we could do something. We also had some inverted interactions where we'd choose the action first, then we'd choose the target. Viewing paintings or insane sims talking to random objects worked this way. It was a "self" interaction (i.e. the original target was yourself) which would then override the target when running the interaction with a random one.
AI requests are also queued, so only one runs at a time. Furthermore they were time-sliced, so it would run for some amount of time and pause while the rest of the frame happened, then pick up where it left off. In full debug mode, it could take a second for AI to finish on a big lot, though in release it rarely came up.
But yes, scale is a huge issue. We ran into a bunch of scaling issues and spent a lot of the last year working on those kinds of issues.
As a sidenote, Medieval really was the best Sims game ever. If only it got some more family systems and more expansions with furniture and such, it would be so absolutely glorious. I still mourn the game it never became.
Me too. :( Some of the designs that had to be cut were AWESOME, but we lost about a year because EA said "here's your new ship date".
I understand if you don't know considering if I read this correctly you didn't directly work on sims 3, but I heard recently that if you direct your own sims to be gay, it makes it more likely that gay sims will "naturally occur" within story progression
My recollection from The Sims Medieval (which was based on The Sims 3) is that once you have a gay interaction, it opens the rainbow floodgates and story progression allows gay sims to occur in the wild. This was 12 years ago so I might be misremembering, but I'm about 90% sure that's correct.
I can't really answer that. I can say that The Sims 4 shipped with a few major missing pieces (pools & toddlers) but those were added later. This is much more of a design/production question than a programming question. Besides pools/toddlers, it never felt like a lack of things to do, except of course the feeling that always happens when switching from a Sims game with tons of expansions to a base game with none.
I got a question!! My fiance actually brought this up recently… why will sims finish eating at the dining room table and get up and walk upstairs to the furthest bathroom to wash the dishes? Its very weird…
It's based on distance, but not exactly perfect pathing distance. We can't run a pathfind to every single possible washing location, so we estimate it. If I recall, at ship it basically used crows-fly distance (so length of sink position - sim position), ignoring walls, etc. For sinks on another floor, it does a crow's fly distance to the stairs, then from the stairs to the target. This might have changed since shipping (I left a few months after we shipped base game).
"We've experimented with planning, but it caused confusion because players didn't know why their sim was doing what they were doing."
It might be interesting to have a more simulation, hands-off mode where sims do plan and act.
But it would indeed need some feedback, players want to understand what happens. This was a major gripe of Sim Earth, sim ant, & Sim City (all).
Such a system could bring a welcome sense of authenticity in MMORPG NPCs.
I completely agree! I'm playing around with this on my current (non-Sims and non-EA) project. The hard part is balancing player autonomy with agent autonomy. In other words, the player needs to feel in control of their game, but the agents (AI characters) need to feel life-like.
I find the same sex aspect very interesting! I dunno if other players hear this but my parents once told me that I became gay because I play The Sims... If the same sex aspect said in this comment is truly the case, The Sims doesn't introduce same sex ideas into the player but only mirrors what the players input in the save file!
Is this also the case in the past and other versions of the game, like in 3 or 2?
Yes, I'm pretty sure this is how it worked on Sims 1 and 2 (though I didn't work on those, so I'm only extrapolating). Sims 3 definitely worked like this since we used the same core AI code on the Sims Medieval.
Also, for the record, a game can't make you gay, but it CAN help you explore things that may or may not be accepted. We've gotten letters from people talking about how The Sims gave them the courage to come out as gay, which is pretty amazing.
you already said a thing or two to "AntonLejon" about the rules that are in place to balance everything and that the only way to see if they are in a good spot is basically to play them out over many hours.
is there anything you where implementing you can recall, that was so impactful that it threw off the balance very unexpected or the other way around you did not noticed at all as you where hoping to see which in turn took way longer to tweak than others?
or do all those values had a hard caps to prevent some mass events?
and where there any that you had to scrap entirely because they messed others up to much?
There were certainly hard caps, but I created those caps, so they got moved from time to time. ;)
One of the big issues that happened on The Sims 4 was sims being "greedy" with interactions. Because we allowed sims to be in multiple interactions, but best possible case was to have them in as many as possible, but that's not realistic (hence why you shouldn't text & drive...) I created the concept of focus cost, which was a limiter to interaction scores when performing a particular action. So certain interactions could be tagged with a focus cost that would artificially penalize choosing other interactions, preventing sims from wanting to do too much.
I think one of the biggest wins for me personally was getting design to trust the AI. On the Sims 3 and The Sims Medieval, AI was only run when the Sims's interaction queue was empty. The Sims 4 ran AI on a timer (mostly) because we wanted to be able to continue adding more interactions when necessary. So you might sit down to eat and then while eating, decide to talk to your spouse. The problem is that if a sim's motives were mostly solved, they would bounce between interactions pretty quickly. A social interaction would score at 5 and a fun interaction would score at 5. We might choose social, run one single social action, then leave.
Interactions had the concept of "always guaranteed", which means the interaction would run until something specifically killed it. Design solved the problem by using this, so they would force the Sim to stay in a social for 15 - 30 sim minutes (or whatever). The bad news is that this short-circuits the AI, so then sims start motive failing and I get bugs that sims are motive failing.
What I did is told design to never mark an interaction as always guaranteed unless it REALLY needed to happen, like a sim dying. The real bug was that Sims were bouncing around too much.
This was solved in a few ways. First, when scoring another interaction, we subtract the score of any current interactions that would be cancel. Second, we have an opportunity cost multiplier on all interactions. This is what we multiply that score by when subtracting it.
So let's go back to our original example: social is scoring at 5 and fun is scoring at 5. We run a social interaction, gain some social, and now social scores at 3 and fun scores at 5, so the net score is 2 (5 for fun minus 3 for losing the social). BUT, social has an opportunity cost of 2, so now we have a fun score of 5 - (3 x 2) = -1. Anything less than or equal to 0 is ignored, so the sim stays in the social.
That's a long winded answer, but hopefully that's what you were looking for. :)
1. What's your thoughts on MCCC modifications to population rules, autonomy rules, culling, performance and so on? Do you think they work well in tandem with vanilla code? Basically any opinion on MCCC from coding perspective would be super interesting.
2. Just a minor question, but to what extent is the AI affected by routing and how does that affect performance?
3. It's well known that in Sims 4 sims can get absurdly obsessed with very particular activities - like playing BlikBlok on that BlikBlok machine, drinking water from a sink, doing pushups in random places, just to name a few. There's some interactions that trigger way more often than it would seem reasonable. (Someone even made a "Less Obsession" mod addressing a long list of them). Do you think this is some oversights or bugs linked to how these items are coded, or is this by design?
1) I have no idea, I haven't looked at the mods at all. I will say that I'm absolutely thrilled with the modding community in general. It takes this from being an EA game to really being the Sims community's game. The modding community also does a lot without having the same tools we had. We don't ship any of the editors and I'm pretty sure all the comments and things are stripped out (which is a shame, I'm a VERY heavy commenter so it would make autonomy way easier to understand).
2) The AI makes a decision to do X. Part of this is a distance cost, but we don't want to incur the cost of making a bunch of routing calls for everything we're considering, so we do an estimation. Last time I checked, it was crow's fly distance if you're on the same level. If you're on a different level, it's crow's fly to the stairs, then from there to the target. It might have changed since I left though. Once a decision is made, we run a posture transition, which includes an actual call to the routing system. The posture state was stored as a graph and we ran a dijkstra search to determine the best posture transition, which could affect where a sim goes (such where to sit to eat, for example).
3) It's a subjective call on the part of whatever designer tuned those objects. It's incredibly difficult to make it feel good in all circumstances. For example, if you have a single high-quality fun item and a bunch of low-quality fun items, they will definitely obsess over the high-quality one (wouldn't you?) For things like push ups or the BlikBlok object, it's a tuning issue. for what it's worth, I do remember a bug coming through before shipping specifically about BlikBlok object being way to fun....
At the end of the day, it's a combination of bug triage, subjective feel, and a judgement call. Also remember that you players play the game very differently than many of us. You get a much better gestalt of everything and while we do play the game just to play, most of it is trying to look at a specific issue.
Hopefully that answered your questions. :)
I have a question. How did you manage to make this system scalable. Adding more objects to the lot would make the system to iterate on more posible candidates. You said you checked the objects by traits. Did you have a map of the objects in the lot by traits or smt similar?
There are a few ways. All objects knew what motives they could solve, so we only had to go to the object level to determine if we could do something. We also had some inverted interactions where we'd choose the action first, then we'd choose the target. Viewing paintings or insane sims talking to random objects worked this way. It was a "self" interaction (i.e. the original target was yourself) which would then override the target when running the interaction with a random one.
AI requests are also queued, so only one runs at a time. Furthermore they were time-sliced, so it would run for some amount of time and pause while the rest of the frame happened, then pick up where it left off. In full debug mode, it could take a second for AI to finish on a big lot, though in release it rarely came up.
But yes, scale is a huge issue. We ran into a bunch of scaling issues and spent a lot of the last year working on those kinds of issues.
As a sidenote, Medieval really was the best Sims game ever. If only it got some more family systems and more expansions with furniture and such, it would be so absolutely glorious. I still mourn the game it never became.
Me too. :( Some of the designs that had to be cut were AWESOME, but we lost about a year because EA said "here's your new ship date".
I understand if you don't know considering if I read this correctly you didn't directly work on sims 3, but I heard recently that if you direct your own sims to be gay, it makes it more likely that gay sims will "naturally occur" within story progression
My recollection from The Sims Medieval (which was based on The Sims 3) is that once you have a gay interaction, it opens the rainbow floodgates and story progression allows gay sims to occur in the wild. This was 12 years ago so I might be misremembering, but I'm about 90% sure that's correct.
About The Sims 4 General Discussion
Join lively discussions, share tips, and exchange experiences on Sims 4 Expansion Packs, Game Packs, Stuff Packs & Kits.33,627 PostsLatest Activity: 2 hours ago
Community Highlights
Recent Discussions
- 51 minutes ago
- 2 hours ago
- 2 hours ago