На днях Game Maker's Toolkit, Марк Браун выпустил новое видео о ИИ симов в The Sims
The Genius AI Behind The Sims
В комментариях под видео написал человек который сказал что он работал программистом ИИ в The Sims Medieval (который был основан на The Sims 3) и ведущим программистом ИИ в The Sims 4. И вот что он написал
I was an AI programmer on The Sims Medieval (which was based on The Sims 3) and the lead AI programmer on The Sims 4. This is pretty spot-on! There's more to it of course, but the core of the AI system is just as described here.
Things like visiting other sims were called Situations which helped define some of those rules. They weren't hard-coded, we managed it all with buffs, mostly created by designers. Buffs can be thought of as tags and you could have tests on interactions that said "don't allow someone with this buff to do this thing". So if you visited another sim, you got a visiting buff which prevented you from doing things that were inappropriate. You could also be invited to stay over, which was a different buff that relaxed many of those rules. Beds were a special case; they were owned by different sims so you would never autonomously use someone else's bed unless you were very close (like romantically involved).
Socials on The Sims 4 were governed by a special autonomy mode called subaction autonomy, which was a much simpler weighted random compared to the complex utility system of full autonomy. Designers would tune each social and weights for things like reactions and which social was chosen. Weights were adjusted by traits, buffs, and the short-term context (the short-term companion to the long-term relationship score). Short-term context models things like "I love my wife, but I'm pissed at her right now", though in practice it was more like "this conversation is tanking" or "this is a really funny conversation". For example, when you're laughing and joking around with your friends, you're more likely to laugh at jokes than if you're just told a joke out of nowhere. This is even more true if everyone is laughing (that's why sitcoms have a laugh track).
For things like venues (restaurants and so on), we used the same core system. It's a Situation under the covers. Meta autonomy pulls in sims to fulfill different roles based on filters. It tries to use existing sims but if it can't, it creates a new sim. Townies are sims that don't live in any specific lot in the world. Any sim you can interact with are fully simulated. The auto-satisfy curves are used when you, the player, enter a lot with a bunch of sims that are already there. We use that to determine starting motives. The low LOD simulation is very, very light. It's mostly just story progression (getting a new job, promotion, etc.)
One thing the video talks about at the end is the ambiguity of the AI. This was very intentionally designed. Sims need to be reactive and always living in the moment. So while you might have a sim with an ambition to be a movie star, very little actually causes them to do that. They might enjoy movies more, for example, but not much else. Sims don't plan in any way. They run an AI tick and choose something to do based on motives, traits, mood, and so on. We've experimented with planning, but it caused confusion because players didn't know why their sim was doing what they were doing. Playtesters felt like they didn't have as much control.
Simlish was created by Stephen Kearin and Jerri Lawler, two incredibly talented improvisers. I recommend looking them up, they're both awesome! (I've been doing improv for many, many years and I've had the pleasure of working with Stephen on several occasions.)
Sims being gay or bi vs straight is not entirely for storytelling, it's because of other countries. The design is that if you never ever initiate any gay content, you will never see gay content. This helped us get around laws in countries like Russia. That said, the video is correct that your player-controlled sim will never romance another sim, though non-player controlled sims can get married through story progression. Still, you won't see two men or two women get married unless you directly make it happen because of this issue.
There is a sort-of yes, and idea in the sims, but it's less designed than you might think. Basically, we have a set of interactions that can never be done autonomously, like quitting your job, getting married, and so on. We have the player make the big life decisions while the AI takes care of the rest.
If anyone has any questions, I'm happy to answer them.
Гугл перевод:
Я был программистом ИИ в The Sims Medieval (который был основан на The Sims 3) и ведущим программистом ИИ в The Sims 4. Это очень точно! Конечно, есть еще кое-что, но суть системы ИИ именно такова, как описано здесь.
Такие вещи, как посещение других симов, назывались ситуациями, которые помогали определить некоторые из этих правил. Они не были жестко закодированы, мы управляли всем этим с помощью баффов, в основном созданных дизайнерами. Баффы можно представить как метки, и вы могли проводить тесты на взаимодействие, которые говорили: "Не позволяйте кому-то с этим баффом делать это". Так, если вы посещали другого сима, вы получали бафф посещения, который не позволял вам делать неподобающие вещи. Вы также могли быть приглашены в гости, что было другим баффом, который ослаблял многие из этих правил. Кровати были особым случаем; они принадлежали разным симам, поэтому вы никогда не сможете автономно использовать чужую кровать, если только вы не были очень близки (например, романтические отношения).
Социалки в The Sims 4 управлялись специальным режимом автономии под названием "Автономия субакций", который был намного проще взвешенного рандома по сравнению со сложной системой полезности полной автономии. Дизайнеры настраивали каждый социум и веса для таких вещей, как реакция и то, какой социум был выбран. Веса регулировались чертами характера, баффами и краткосрочным контекстом (краткосрочный компаньон долгосрочных отношений). Краткосрочный контекст моделирует такие вещи, как "я люблю свою жену, но сейчас я зол на нее", хотя на практике это было больше похоже на "этот разговор затягивается" или "это действительно смешной разговор". Например, когда вы смеетесь и шутите со своими друзьями, вы с большей вероятностью будете смеяться над шутками, чем если бы вам просто рассказали шутку из ниоткуда. Это еще более верно, если все смеются (вот почему в ситкомах есть дорожка смеха).
Для таких вещей, как заведения (рестораны и т.д.), мы использовали ту же основную систему. Это Ситуация под одеялом. Мета-автономия привлекает симов для выполнения различных ролей на основе фильтров. Она пытается использовать существующих симов, но если не может, то создает нового сима. Горожане - это симы, которые не живут на каком-либо определенном участке в мире. Все симы, с которыми вы можете взаимодействовать, полностью смоделированы. Кривые автоудовлетворения используются, когда вы, игрок, входите на участок с кучей симов, которые там уже есть. Мы используем это для определения стартовых мотивов. Симуляция низкого LOD очень, очень легкая. В основном это просто развитие сюжета (получение новой работы, повышение и т.д.).
Одна вещь, о которой говорится в конце видео, - это неоднозначность ИИ. Это было сделано очень намеренно. Симы должны быть реактивными и всегда жить в моменте. Поэтому, хотя у вас может быть сим с амбициями стать кинозвездой, мало что заставит его сделать это. Например, им может больше нравиться кино, но не более того. Симы никак не планируют. Они управляются искусственным интеллектом и выбирают себе занятие, основываясь на мотивах, чертах характера, настроении и так далее. Мы экспериментировали с планированием, но это вызвало путаницу, потому что игроки не знали, почему их симы делают то, что они делают. Игроки чувствовали, что у них не так много контроля.
Simlish был создан Стивеном Кирином и Джерри Лоулером, двумя невероятно талантливыми импровизаторами. Я рекомендую посмотреть на них, они оба потрясающие! (Я занимаюсь импровизацией уже много-много лет и имел удовольствие работать со Стивеном несколько раз).
То, что симы геи или би против натуралов, не совсем для сюжета, а из-за других стран. Конструкция такова, что если вы никогда не инициируете гей-контент, вы никогда не увидите гей-контент. Это помогло нам обойти законы в таких странах, как Россия. Тем не менее, в видео правильно сказано, что ваш управляемый игроком симулятор никогда не заведет роман с другим симулятором, хотя не управляемые игроком симуляторы могут пожениться в ходе сюжетного развития. Тем не менее, вы не увидите, как двое мужчин или две женщины женятся, если только вы сами этого не сделаете из-за этой проблемы.
В симах есть идея "да, да", но она менее продумана, чем вы могли бы подумать. По сути, у нас есть набор действий, которые никогда не могут быть выполнены автономно, например, увольнение с работы, женитьба и так далее. Мы заставляем игрока принимать важные жизненные решения, а ИИ заботится обо всем остальном.
Если у кого-то есть вопросы, я буду рад ответить на них.