{"id":137,"date":"2009-07-13T00:56:46","date_gmt":"2009-07-13T07:56:46","guid":{"rendered":"http:\/\/www.designer-notes.com\/?p=137"},"modified":"2009-07-15T20:38:36","modified_gmt":"2009-07-16T03:38:36","slug":"ai-and-designers-discussion","status":"publish","type":"post","link":"https:\/\/www.designer-notes.com\/ai-and-designers-discussion\/","title":{"rendered":"AI and Designers Discussion"},"content":{"rendered":"<p>Before my GDC panel this year, <a href=\"http:\/\/www.designer-notes.com\/?p=125\">AI &amp; Designers: Mind the Gap<\/a>, we did a preliminary e-mail thread as a warm-up. For readers who couldn&#8217;t make it to the conference (or to the panel itself), our back-and-forth might give a little taste of what the discussion was like. Of course, some of the questions were only ultimately answered during the panel itself, but it&#8217;s still worth a read for developers interested in the topic.<\/p>\n<p>Here&#8217;s the cleaned-up transcript:<\/p>\n<p><strong>Soren Johnson:<\/strong> So, GDC &#8211; and our looming panel &#8211; is about three weeks off, so I figured it might be a good idea to do some pre-panel chatting to help get our ideas rolling. My original thoughts for this panel come from my own experience as a designer and an AI programmer. Essentially, I&#8217;ve always enjoyed being able to do both jobs at the same time because there is just so much overlap between the two. If I was only an AI programmer, I feel like I would get frustrated with designs that are impossible for an AI to handle. And if I was just a designer, I would regret not having total control over how the AI performs because that is a core part of the user experience. However, most of the industry separates these two roles, and I am curious how well it works. It seems like one of the two sides would always be dominant, depending on the make-up of the particular companies and probably to the detriment to the game. So, how has this tension worked (or not) for your teams? What are the best ways to manage this process? Any horror stories from past projects? Other thoughts?<font color=\"#888888\"><br \/>\n<\/font><\/p>\n<p><strong>Tara Teich (AI Programmer, Double Fine):<\/strong> There were two areas of interest for this topic to me.\u00a0 The first was the issue of the different mindsets of designers and programmers.\u00a0 Frequently, the issues I&#8217;ve had have come into play because designers and programmers come to the table basically speaking a different language.\u00a0 A designer asks for feature X and the programmer goes &#8220;oh, ok, great&#8221; and goes off to implement it.\u00a0 The result isn&#8217;t what the designer was asking for at all!\u00a0 Basically, designers think of the experience of the player, programmers think of the how of implementation and they&#8217;re not always the same thing.<\/p>\n<p>The second was about planning for change.\u00a0 A good AI programmer will know that designers are GOING to change their mind and will build space into their system for as many aspects of it to be changed or even reversed as possible.\u00a0 But if the programmer doesn&#8217;t do that, every new request from design results in a frustrating complete re-write of the system.<\/p>\n<p><strong>Alex Hutchinson (Creative Director, EA Montreal):<\/strong> My favorite part of the job is\u00a0collaborating with\u00a0engineers as I see the overlap between design and engineering as the heart of what makes games unique and special. I also think that it&#8217;s the path\u00a0to getting more than either side could do on their own &#8211; my new way of working is basically to very clearly articulate the &#8216;why&#8217; of a feature, then have no more than a couple pages where I try to work out the actual nitty gritty of the design. My goal with that is to have basically 80% of the idea clearly articulated, then\u00a0I hand over ownership of the feature to the engineer, and we have regular discussions\u00a0about it and\u00a0eventually the goal is that they present it back to me and they&#8217;ve not only filled in the remaining 20% but added another bunch of stuff themselves, so we get more (hopefully)\u00a0than if they&#8217;d done it on their own, or if I&#8217;d written down a hermetically sealed spec doc.<\/p>\n<p>That said, it also relies on both sides being smart, easy to work with and fond of collaboration not dictation, so it&#8217;s based on people IMO.<\/p>\n<p><strong>Soren: <\/strong>Have you, or anyone on the list, experienced much with trying to put the AI parameter tweaking or simple algorithmic mods directly into the hands of the designers? It seems this would go hand-in-hand with building a flexible AI system instead of one overly specialized, like you mentioned. However, something like this was attempted in <em>Spore <\/em>before I came on-board, and we eventually ripped it out because there were just too many gotchas for the designers to trip over because the interface separating them from the code was too weak. I imagine it could work though, but I wonder if it would be worth the overhead of worrying about all the edge cases that probably will never be hit.<\/p>\n<p>One question I always find interesting is whether a design idea should be judged separately from the AI&#8217;s ability to use it. Apparently, <em>DoW2 <\/em>is having issues with this as their AI doesn&#8217;t seem to be able to handle many of the special abilities available in the game that ARE still fun for the humans. With <em>Civ<\/em>, I was constantly resisting features like this &#8211; I avoided paratroops, invisible units (spies, submarines, hidden nationality units like privateers) &#8211; because I felt that the time spent on building AI to handle these special cases would be better spent on just the core AI problems. To me, it was just literally a cost\/benefit tradeoff decision. However, I&#8217;m not sure if I made the right decision as players love these type of units. (and, inevitably, whatever units I cut were added by the looser expansion teams&#8230;) So, when does the plus of a player enjoying a tricky feature outweigh the minus of a hobbled AI?<\/p>\n<p><strong>Tara:<\/strong> One of the choices I&#8217;ve made on occasion is to just make it look &#8220;good enough.&#8221;\u00a0 If you have an element that is really fun in multiplayer, and your game is very multiplayer-centric, then leave that feature in, and just make it look like the AI is utilizing the feature.\u00a0 I&#8217;m not sure what the <em>DoW2 <\/em>issues are, I&#8217;d be interested in looking at the examples, but sometimes something is fun to the player not because it&#8217;s effective but because it&#8217;s unique.\u00a0 And just seeing the AIs utilizing that feature and looking like they are &#8220;having fun&#8221; with it is sufficient from a player experience POV.<\/p>\n<p>In terms of Soren&#8217;s earlier question about just handing the knobs and tuning parameters to the designers, I&#8217;ve found that to yield mixed results for similar reasons that you cited.\u00a0 Too many knobs means they have to completely understand the underlying mechanics of the system instead of just being able to tune in the harder\/easier dial that they really wanted.\u00a0 I found for RTS games they really liked to give input on which units the AI would build and in what order, which type of battles the AI would prefer to fight, but the specifics of how to fight that battle, which builder should create the unit etc was up to me. Fun. \ud83d\ude00<\/p>\n<p><strong>Adam Russell (AI Lecturer, Derby University):<\/strong> Sorry for the delay in responding! I too am fascinated by the complex interplay between game AI engineering and gameplay design. I agree with you Soren that it&#8217;s very difficult to separate them cleanly and that&#8217;s what makes it such a fascinating area for me. As a programmer, I loved being given the chance to influence the game design through my AI architecture even though I couldn&#8217;t pretend to be a true game designer. The key issue for me is if both &#8220;sides of the fence&#8221; are in fact contributing to the game design (for example an 80\/20 split as Alex suggested), how do we reconcile or align their contributions so they&#8217;re not pulling in different directions or contradicting each other? One way of looking at that is as shares on a linear spectrum of design scale: &#8220;Designers plan down to this level of granularity, AI fills in the rest of the details.&#8221; But both AI and design must consider game-spanning features in their own different ways, so the scales sort of conflict.<\/p>\n<p>Another way of looking at it that I find very appealing is if we try to make the contributions <em>orthogonal<\/em> to each other: &#8220;Designers request diverse experiences of these kinds, AI builds a systematic infrastructure that knits it together into a logical whole.&#8221; Then for me it becomes about what representations the AI should offer to design, and the AI almost becomes a foundation or a space in which the design can move. Of course, that space should ultimately be built <em>for <\/em>the design, so there is kind of a circular process here. Design lays out the themes that give rise to the AI foundations which then defines a space within which they can do design.<\/p>\n<p>For me this all goes back to <span class=\"il\">Tara<\/span>&#8216;s point about the disciplines speaking two different languages. It&#8217;s frustrating but <em>good<\/em> that they speak two languages, because that gives them orthogonal concerns which can coexist. But it&#8217;s an ongoing challenge to keep the experience designs anchored in the AI framework, and the AI framework driven by the need to deliver key experiences. In my view both sides must give up ownership of certain issues which are best answered by the other. AI programmers must give up the desire to reduce everything to one generic system of moving parts (because this undermines the uniqueness of the experience design), and game designers must give up the desire to control experiences down to a very high level of granularity (because this undermines the robustness of the underlying AI frameworks).<\/p>\n<p>I suspect this problem is less acute in strategy genres than in my area of action-adventure character AI. It seems that strategy designers are reasonably close to the mindset of AI programmers because they think in a very holistic way about game mechanics, whereas a lot of action-adventure designers have pretensions toward recreating experiences from linear media such as film, which conflict badly with AI systems (e.g. &#8220;make it so that they always do this when the player enters the room at that moment&#8221;).<\/p>\n<p>On the other hand, that similarity of mindset in the strategy genre might be a recipe for trouble, given what I said earlier about the need for orthogonality? I don&#8217;t know because I really have no development experience in the strategy genre.<\/p>\n<p><strong>Josh Mosqueira (Creative Director, Ubisoft Montreal): <\/strong>The <em>DoW2 <\/em>examples are, I think, legacy from the same issues we had on <em>Company of Heroes<\/em> (both games use the same tech). Ability use was something that always dogged us, so much so that for <em>CoH <\/em>we scripted all that behavior into the missions. For MP, it was tricky. When to pick it, how to use it without being too effective. In the end, we lived by a Tara\u2019s mantra&#8230; it doesn\u2019t need to be perfect, it just need to be good enough.<\/p>\n<p>Now, whether to keep or axe a feature based on how well the AI can use it&#8230; that\u2019s a tricky question. Speaking purely as a designer, I\u2019ll always err on the side that having cool units and abilities like paratroopers and invisible subs add to the gameplay. I agree with Tara, as long as the AI looks \u201cgood enough\u201d when using these units I think it\u2019s a win-win. Then again, I take a very player-centric POV. I rather have as many cool toys as possible.<\/p>\n<p>Now a question&#8230; what designer\/programmer assumptions do you guys run into all the time while working on AI?<\/p>\n<p>The one I do quite often is that the AI should be \u201chard\u201d and punishing.<\/p>\n<p>It\u2019s an attitude I get often&#8230; that only \u201chard AI\u201d is fun. I get this from designers and programmers. Whenever I say, \u201cthe player should be able to predict the AI\u201d the reaction is \u201cwhere\u2019s the challenge in that?\u201d To which I answer that while we may think we don\u2019t want predictable AI, we need to give the players enough cues so that they can make \u201csmart\u201d decisions to beat the AI (without making them too transparent). I love <em>Halo <\/em>for this.\u00a0 Why do we always want to punish the player to prove our AI is smart?<\/p>\n<p>This is something I spend a lot of time working on, understanding what the function the AI serves in the game. For me it has to be more than just challenge because if that was just it, then the Gombas in <em>Mario Brothers<\/em>, or the waves of <em>Space Invaders<\/em> are all we need.<\/p>\n<p>I like to think that AI is our greatest tool to control the dramatic pacing of the game, but if you ask me, it\u2019s our greatest storytelling tool. No, I am not talking AI actors but using AI to craft a proper intensity curve that has the right peaks and valleys to create an experience where the player feels like a bad ass (the peaks), and when he\u2019s scrambling and being reactive (the valleys \u2013 which make the peaks that much sweeter).<\/p>\n<p>Basically, the AI should be seen as the players\u2019 \u201cevent coordinator\u201d or \u201cparty planner.\u201d In other words, it\u2019s not the cut-scenes or powers that make a game fun, it\u2019s the AI. AI is in charge of the player\u2019s morale. When people talk about their game experiences, say with <em>Half-Life 1<\/em>, everyone remembers when they first time they run into the marines and how they used cover. The \u201coh shit\u201d moment defined the player\u2019s narrative of the sequence. Powerful stuff.<\/p>\n<p>Maybe I feel this way because I\u2019ve worked on too many games were the AI is brutal towards the player and it\u2019s a knee jerk reaction. I\u2019ve been guilty of being too hard on the player.\u00a0 But part of me does think that for AI to evolve we need to shift its function from being only about challenge and obstacles.<\/p>\n<p>For example, take this great article on Game AI: <a href=\"http:\/\/www.bit-tech.net\/gaming\/2009\/03\/05\/how-ai-in-games-works\/1\">http:\/\/www.bit-tech.net\/gaming\/2009\/03\/05\/how-ai-in-games-works\/1<\/a>. There is nothing in there about what the role of AI in games is.\u00a0 Granted,\u00a0 the article is about \u201cHow Game AI Works\u201d but this is something I always find I run into. We tend to focus on the details (effective use of cover, believable reactions, smartness) that we lose sight of the real intent \u2013 fun.<\/p>\n<p>Which brings me to the topic of collaboration. Not being a programmer, I won\u2019t pretend to know how best to design an AI. What I focus on is trying to convey to the programmers what the intent for the AI is, how does it add to the game experience and what things I want to be able to tune to control the intensity curve. I know that for every variable I get to tune, there are dozens of knobs that the AI programmers have to implement and tune themselves, which is why I like focusing on how the AI impacts the player\u2019s experience. How should it react, how should it challenge the player, how does it look smart without being too smart.<\/p>\n<p><strong>Alex:<\/strong> Yeah, I agree with the drive toward punishment as being a big problem &#8211; often people seem to confuse AI that will &#8216;destroy you&#8217; with AI that is &#8216;good.&#8217;<\/p>\n<p>I know that <em>Sims 3<\/em>, for example, is working on a big system where AIs can form long-term goals, such as &#8216;own a mansion,&#8217; then build a plan, then step through all the behaviors that lead up to that goal. So the sim will pick up the paper to get a job, go to work for X period, buy only essential goods, save their cash, get promoted by working hard, focus only on important relationships, and then eventually buy the mansion. And when you describe it to a player it sounds amazing, but the problem is it&#8217;s essentially invisible to the player &#8211; they won&#8217;t see this glorious narrative, they&#8217;ll only see a few outcomes. My argument is you could have either scripted it, or made it semi-random and <em>to the player<\/em>, it&#8217;s the same system. The AI engineers obviously argued with me on that, but unless you&#8217;re going to invest in a strong system for showing the player the plan and the execution of the plan, it&#8217;s not interesting IMO.<\/p>\n<p>Similarly, in action games, engineers are arguing with me at this very moment that they should do the &#8216;smart&#8217; thing, and take cover appropriately, never expose themselves, sprint to new cover when their cover is breached and what that would essentially do is remove any chance for the player to win in a fun manner. If I flank an enemy, I want him to react in shock, show me that he knows his cover is breached, and then essentially let me shoot the crap out of him. If he flees and I miss him, I am no longer having fun.<\/p>\n<p>I think the essentially point for me, as Josh points out, is that AI is there to support the player experience, not to be &#8216;good AI&#8217; whatever that means, in and of itself. \ud83d\ude42<\/p>\n<p><strong>Josh:<\/strong> That\u2019s one of the issues I have with working on AI&#8230; if the player cannot see how the AI works, then it doesn\u2019t really matter how \u201csmart\u201d it is. I hear you on the cover deal, Alex, I am having the same arguments here.<\/p>\n<p>As a former infantry sergeant, I know the smart thing to do is to move from cover-to-cover and use concealment. Thing is, if a player cannot \u201csee\u201d all that fancy leap-frogging, then it doesn\u2019t matter. It\u2019s just frustrating. This is why I always argue we don\u2019t want \u201csmart\u201d AI, we want reactive AI. The AI needs to react to the player in a way where the player can, by mastering the game, predict the AI\u2019s reaction and feel like a bad ass when they flank and AI position. A common thing I get is for an AI programmer to show him some cool behavior using a top-down camera, but then when I ask to see it from the game\u2019s default POV, I have to break his heart and show him that I can\u2019t see it so I cannot appreciate the clever cover-seeking AI.<\/p>\n<p>While this is very true of action games, it\u2019s also true for RTS games. It wasn\u2019t until we added a ton of barks (about 20K lines) to the Squad AI system for Company of Heroes did people really start to appreciate it. Before speech went in, a common comment was \u201cthe AI looks too chaotic, not sure what they are doing.\u201d Then when we added speech, the reaction to the same system was \u201cMan, that\u2019s cool, they\u2019re covering each other and, look, that guy is trying to lay down suppressive fire.\u201d<\/p>\n<p>It\u2019s all in making sure that the hard work that goes into AI can be appreciated by the player.<\/p>\n<p><strong>Tara:<\/strong> The one place where a lot of that smart cover behavior is successful is when you have friendly teammates.\u00a0 When you&#8217;re in the lines with them and you see them doing the leapfrog behavior, that&#8217;s great.\u00a0 But you&#8217;re totally right, without dialog for them to say what they&#8217;re doing, to the player it still probably wouldn&#8217;t parse well.<\/p>\n<p><strong>Soren: <\/strong>I definitely appreciate the limits of &#8220;hard&#8221; as opposed to &#8220;fun&#8221; AI. The thing is, they both have their place, depending on what type of game you are making. For symmetrical strategy games, the game should still be fun\/challenging once players have mastered the systems. Many strategy games fall down on this front (listen to Tom Chick talk about how <em>Empire: Total War<\/em> loses interest once the player masters the mechanics <a href=\"http:\/\/flashofsteel.com\/index.php\/2009\/03\/11\/three-moves-ahead-episode-3\/\" target=\"_blank\">here<\/a>) as the challenge for the player is just learning how to juggle multiple plates, not actually engaging an AI as an equal player. On the other hand, I was painfully aware from developing <em>Civ <\/em>that we don&#8217;t want our AI playing cutthroat games like a human would (i.e. being willing to backstab the player at any time just because it suited them). It&#8217;s a tough problem, but at the very least, I think it is important that they AI be able to handle all the game options in a symmetrical setting because strategies are often good or bad only relative to the choices of your opponents. (If the AI never uses submarines, I don&#8217;t need to build any cruiser to see them.) Of course, for asymmetrical games, like most shooters, the purpose of the AI is quite different, and it is irrelevant if the AI can use all the abilities the player has.<\/p>\n<p><strong>Josh: <\/strong>Excellent. Controversy!<\/p>\n<p>Well, not really since I agree. It\u2019s a conundrum, especially for symmetrical games as you mention. The AI needs to be deep enough so that it provides the right challenge for your 5th, 50th and 500th game.<\/p>\n<p>How do you all handle how saleable you want the AI to be? Granted, not so much an issue in action games, since most AI does not live for more than 30 seconds and you can use tuning to handle challenge, but you\u2019re right, for strategy game this is a balancing act.<\/p>\n<p>On <em>CoH <\/em>we tired (and failed) at making the AI more \u201cefficient\u201d and ruthless as a game went on, but that didn\u2019t work out. It was too obvious you were playing an AI, because human opponents, even our hard-core professional players didn\u2019t play that way.<\/p>\n<p><strong>Tara:<\/strong> Could you elaborate on what you mean by &#8220;efficient and ruthless&#8221; and why that was a failure?<\/p>\n<p>I worked on real-time strategy AI for about 5 years, so I&#8217;m curious to hear your perspective on it.\u00a0 My philosophy was always to make the AI as hard as I could make it because it still wasn&#8217;t gonna be as good as a human.\u00a0 Then add difficulty levels that crippled it on the easier levels and give it some perks on the higher levels because making a non-cheating AI that&#8217;s better than a human&#8230; well, I don&#8217;t think we&#8217;re there yet.\u00a0 Partially because it makes no sense trying to encode things by writing complex AI that players figure out from intuition when we can just &#8220;cheat&#8221; and get the answer in one line of code.<\/p>\n<p><strong>Soren:<\/strong> Let&#8217;s phrase the issue a different way &#8211; especially in light of our specific topic of designers and programmers. What was the reason that the <em>CoH <\/em>AI ultimately failed? Was it a lack of AI resources or time? A flawed development approach? Or was there anything about the design that was out of step with what the AI programmers could reasonably accomplish? And if so, how much of the core game experience would you be willing to change if it meant a more robust and interesting AI?<\/p>\n<p>It&#8217;s ok if the answer is &#8220;not much&#8221; or &#8220;that wasn&#8217;t really the issue&#8221;, but I want to take a stab at figuring out how to prevent the AI ultimately failing in future projects. How could the designers and programmers collaborated better in this case so that a better conclusion could have been reached? Or is this problem just intractable?<\/p>\n<p><span id=\"q_120163e8ca4a10a2_1\" class=\"h4\"><strong>Alex: <\/strong><\/span>There&#8217;s also the secondary issue of all the other departments &#8211; as hinted in Josh&#8217;s email, I think bad animation or bad audio can also kill the AI. You could have a strong design and a great implementation, but if it isn&#8217;t communicated then it&#8217;s going to fail. In several recent focus tests (and this is more applicable to action games than strategy games), I&#8217;ve seen people say the &#8216;AI was bad on this level&#8217; and the problem was actually a bad or missing animation. Players often confuse and overlap the feedback with the function.<span id=\"q_120163e8ca4a10a2_1\" class=\"h4\"><br \/>\n<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Before my GDC panel this year, AI &amp; Designers: Mind the Gap, we did a preliminary e-mail thread as a warm-up. For readers who couldn&#8217;t make it to the conference (or to the panel itself), our back-and-forth might give a &hellip; <a href=\"https:\/\/www.designer-notes.com\/ai-and-designers-discussion\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4],"tags":[],"class_list":["post-137","post","type-post","status-publish","format-standard","hentry","category-games"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3EGlq-2d","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.designer-notes.com\/wp-json\/wp\/v2\/posts\/137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.designer-notes.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.designer-notes.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.designer-notes.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.designer-notes.com\/wp-json\/wp\/v2\/comments?post=137"}],"version-history":[{"count":0,"href":"https:\/\/www.designer-notes.com\/wp-json\/wp\/v2\/posts\/137\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.designer-notes.com\/wp-json\/wp\/v2\/media?parent=137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.designer-notes.com\/wp-json\/wp\/v2\/categories?post=137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.designer-notes.com\/wp-json\/wp\/v2\/tags?post=137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}