Hello All: 9/25/97
For those who don't subscribe, there's a fairly good mailing list
aimed at game developers called, not surprisingly, the
Game Design list.
Around the middle of 1997
Steve Schonberger
hopped onto the list, mentioned that he'd been to our CGDC AI Roundtables,
and asked the group in general if they thought it was a good idea for
a game's AI to "learn" and adapt itself to a player. This kicked off
a very interesting discussion which is presented here.
The posts from this thread are presented essentially
as is, with some *minor* editing on my part for formatting. I left the
headers and most .sigs intact. Alert readers will note that some of
the info here also made its way to the Current
and Upcoming Games with Interesting AI page, since there was quite
a bit of discussion of the learning AI built into
Age of Empires on the part of the
designers and playtesters.
Here are the e-mail addresses for those contributors as best I could
pluck them out. My profound apologies if I missed anybody; please
let me know and I'll correct this list forthwith:
Mark Atkinson Robert Blum Rick Cronan Ryan T. Drake Eric Dybsand John Judd Orlando Llanes Paul Nash David Pottinger Steve Schonberger Nick Shaffner John Vanderbeck Steven Woodcock Hui Ka YuEnjoy!
From stevesch@csealumni.UNL.edu Fri Jul 11 16:43:09 1997 Return-Path:Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id QAA26414; Fri, 11 Jul 1997 16:43:08 -0400 Received: from smtp.gte.net by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id QAA21718; Fri, 11 Jul 1997 16:43:07 -0400 Received: from gateway-pp200 (1Cust38.Max39.Seattle.WA.MS.UU.NET [153.34.126.166]) by smtp.gte.net (SMI-8.6/SMI-SVR4) with ESMTP id PAA11409 for ; Fri, 11 Jul 1997 15:43:09 -0500 (CDT) Message-Id: <199707112043.PAA11409@smtp.gte.net> From: "Steve Schonberger" To: Subject: Re: Game AI Date: Fri, 11 Jul 1997 13:41:40 -0700 X-MSMail-Priority: Normal X-Priority: 3 X-Mailer: Microsoft Internet Mail 4.70.1161 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Length: 2777 Status: RO At the Computer Game Developers' Convention, I attended a game AI round-table (one of Steven Woodcock's sessions). An interesting topic that came up was whether it is a good idea for game AI to learn while playing a single human player. It seemed to me that there were more people advocating non-learning AI models, but a few people did think learning was a good thing. Note: By "non-learning", I don't mean that the computer opponent wasn't showing the appearance of getting smarter as it played the game. I just mean that if it did get smarter, it did so by adaptively selecting stronger AI settings, rather than actually evaluating the results it got and adjusting its AI settings based on its evaluation. Since this list has been pretty quiet lately, and overall pretty quiet when things we've agreed are off topic are counted out, I figured it deserved a new, on-topic subject, now that the AI scripting topic seems to be dying down. There were plenty of other good AI topics in that round-table, which I'll hold in reserve for now. Steve Schonberger From woodcock@real3d.com Fri Jul 11 16:17:37 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id QAA25524; Fri, 11 Jul 1997 16:17:19 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id QAA21596; Fri, 11 Jul 1997 16:17:17 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id QAA26308 for woodcock@real3d.com; Fri, 11 Jul 1997 16:16:23 -0400 (EDT) Resent-Date: Fri, 11 Jul 1997 16:16:23 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f From: woodcock@real3d.com Message-Id: <9707112016.AA02698@stargazer.real3d.com> Subject: Re: Game AI To: gamedesign@mail.digiweb.com Date: Fri, 11 Jul 1997 16:16:10 -0400 (EDT) In-Reply-To: <199707111920.OAA20395@smtp.gte.net> from "Steve Schonberger" at Jul 11, 97 12:18:55 pm X-Mailer: ELM [version 2.4 PL25] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Resent-Message-ID: <"-2SpWD.A.cXG.dRpxz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/307 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 2697 Status: RO > At the Computer Game Developers' Convention, I attended a game AI > round-table (one of Steven Woodcock's sessions). Hi Steve! It was good to meet you there. > An interesting topic that > came up was whether it is a good idea for game AI to learn while playing a > single human player. It seemed to me that there were more people > advocating non-learning AI models, but a few people did think learning was > a good thing. That was on what, the first day? I thought it was interesting how many developers did *not* think it was a good idea, vs. those who thought it might be but just didn't have the time to do it or who didn't think it was appropriate for their current project. Many of the developers present (as you say) thought learning and adjusting could be a good thing (and in fact it was a major topic on a second day of discussions when we talked about A-life and the new game Creatures). A few, however, thought it was not a good idea at any time...that it would either make the game too difficult for the player or that (in a multiplayer family) it would train against Player A but become worse against Player B. There were definitely some interesting points made on both sides. > Since this list has been pretty quiet lately, and overall pretty quiet when > things we've agreed are off topic are counted out, I figured it deserved a > new, on-topic subject, now that the AI scripting topic seems to be dying > down. Yes....I had hoped it would run longer. ;( > There were plenty of other good AI topics in that round-table, which > I'll hold in reserve for now. I'm glad you enjoyed them. We're trying to continue with them over on the new Gamasutra site (www.gamasutra.com). Steve +=============================================================================+ | _ | | Steven Woodcock _____C .._. | | Senior Software Engineer, Gameware ____/ \___/ | | Lockheed Martin Real3D <____/\_---\_\ "Ferretman" | | Phone: 719-597-5413 | | E-mail: woodcock@real3d.com | | Web: http://www.cris.com/~swoodcoc/ai.html (Games AI page) | | Disclaimer: My opinions in NO way reflect the opinions of | | Lockheed Martin Real3D--get *serious* | +=============================================================================+ From drake@cse.psu.edu Fri Jul 11 16:24:47 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id QAA25754; Fri, 11 Jul 1997 16:24:46 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id QAA21621; Fri, 11 Jul 1997 16:24:44 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id QAA27410 for woodcock@real3d.com; Fri, 11 Jul 1997 16:23:50 -0400 (EDT) Resent-Date: Fri, 11 Jul 1997 16:23:50 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Date: Fri, 11 Jul 1997 16:23:35 -0400 (EDT) From: Ryan T Drake To: gamedesign@mail.digiweb.com Subject: Re: Game AI In-Reply-To: <199707111920.OAA20395@smtp.gte.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Resent-Message-ID: <"OZvfIC.A.VqG.aYpxz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/308 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 2938 Status: RO On Fri, 11 Jul 1997, Steve Schonberger wrote: > At the Computer Game Developers' Convention, I attended a game AI > round-table (one of Steven Woodcock's sessions). An interesting topic that > came up was whether it is a good idea for game AI to learn while playing a > single human player. It seemed to me that there were more people > advocating non-learning AI models, but a few people did think learning was > a good thing. I would say that adaptive AI would make a really good option in most cases, but it also would depend on the game. Something else that would need consideration: Does the game remember what it learned when you quit the game and come back in? My feeling is, you can tell what is good AI if the computer's actions look like the way a human would play. For instance: If I am playing Quake, and i see a monster trying to follow me around the corner and hitting a wall, i would not consider that good AI. On the other hand, if i had a monster after me that hits every shot and follows me perfectly, i would also not consider that good AI. Reason being, I know a human cannot possibly be dumb enough to try to follow me through walls, and I also know a human cannot possibly be good enough to hit each shot and follow perfectly. In essence, to have good artificial intellegence, you also need artificial stupidity. One idea of implementing this kind of AI is to start by giving the computer only as much information as a human would get. For example, sticking with the Quake idea. Only give the computer information about its surroundings, and not give it access to where everything is on the map. If a normal player would get sound cues give the computer ai sound cues. Another important thing to give any AI is reaction time. No human being has perfect 0ms reaction time. In a ``deathmatch'' for instance, a human being could take anywhere between 100-500ms to react to events on the screen. Add this factor in when calculating how the computer reacts to things. Reasonable AI can vary given a user-selected ``skill level'' but it should always be beatable. Now to your original point... Yes, I think ideally AI should be adaptive, so long as its adaptiveness tops off at a certain point. Anyone who considers themself very good at a certain game can relate to what I mean. Eventually the learning curve just stops and you are at a point that you can't really get much better...Usually this is when you can beat most other players and there is no one better to challenge you. This should also happen with AI. There should be a point where the AI stops getting better. As soon as it looks like the AI is doing a certain amount better than the human player, it should shut off and not learn anything new. Then as the human player starts getting better you can turn the learning on again. = Ryan Drake = = drake@cse.psu.edu = = http://www.cse.psu.edu/~drake = From woodcock@real3d.com Fri Jul 11 16:42:53 1997 Return-Path: Received: from stargazer.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id QAA26399; Fri, 11 Jul 1997 16:42:52 -0400 Received: by stargazer.real3d.com (4.1/1.34.a) id AA02715; Fri, 11 Jul 97 16:42:51 EDT From: woodcock@real3d.com Message-Id: <9707112042.AA02715@stargazer.real3d.com> Subject: Re: Game AI To: gamedesign@mail.digiweb.com Date: Fri, 11 Jul 1997 16:42:51 -0400 (EDT) In-Reply-To: from "Ryan T Drake" at Jul 11, 97 04:23:35 pm X-Mailer: ELM [version 2.4 PL25] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 2958 Status: RO > I would say that adaptive AI would make a really good option in most > cases, but it also would depend on the game. Something else that would > need consideration: Does the game remember what it learned when you quit > the game and come back in? If I built it it would. I'd also give the user a chance to either play with the "adapted" or "evolved" AI vs. the "out of the box" setting. > > (discussion of the need for "artificial stupidity" deleted) > Those are all good points Ryan. One reason the Quake-bots are as good as they are is that they can in fact react FAR faster than any human can. A good design should always allow a player to select the AI difficulty (much like Enemy Nations does and which (sadly) Dungeon Keeper does NOT), which would of course mean different things for different games. For a game like Quake or Doom reaction times are definitely part of it. > Now to your original point... Yes, I think ideally AI should be adaptive, > so long as its adaptiveness tops off at a certain point. Anyone who > considers themself very good at a certain game can relate to what I mean. > Eventually the learning curve just stops and you are at a point that > you can't really get much better...Usually this is when you can beat most > other players and there is no one better to challenge you. This should > also happen with AI. There should be a point where the AI stops getting > better. As soon as it looks like the AI is doing a certain amount better > than the human player, it should shut off and not learn anything new. > Then as the human player starts getting better you can turn the learning > on again. I'm curious how you might spot that the human player has "leveled out"? Taking Quake as an example, what criteria might you use? Kills vs. shots? Average time playing a level? Some combination of the two might suffice....that's an interesting problem. Steve +=============================================================================+ | _ | | Steven Woodcock _____C .._. | | Senior Software Engineer, Gameware ____/ \___/ | | Lockheed Martin Real3D <____/\_---\_\ "Ferretman" | | Phone: 719-597-5413 | | E-mail: woodcock@real3d.com | | Web: http://www.cris.com/~swoodcoc/ai.html (Games AI page) | | http://www.cris.com/~swoodcoc/software.html (AI Software page) | | Disclaimer: My opinions in NO way reflect the opinions of | | Lockheed Martin Real3D--get *serious* | +=============================================================================+ From stevesch@csealumni.UNL.edu Fri Jul 11 16:43:09 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id QAA26414; Fri, 11 Jul 1997 16:43:08 -0400 Received: from smtp.gte.net by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id QAA21718; Fri, 11 Jul 1997 16:43:07 -0400 Received: from gateway-pp200 (1Cust38.Max39.Seattle.WA.MS.UU.NET [153.34.126.166]) by smtp.gte.net (SMI-8.6/SMI-SVR4) with ESMTP id PAA11409 for ; Fri, 11 Jul 1997 15:43:09 -0500 (CDT) Message-Id: <199707112043.PAA11409@smtp.gte.net> From: "Steve Schonberger" To: Subject: Re: Game AI Date: Fri, 11 Jul 1997 13:41:40 -0700 X-MSMail-Priority: Normal X-Priority: 3 X-Mailer: Microsoft Internet Mail 4.70.1161 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Length: 2777 Status: RO > > At the Computer Game Developers' Convention, I attended a game AI > > round-table (one of Steven Woodcock's sessions). > > Hi Steve! It was good to meet you there. Yeah, that's part of the fun of conferences. > > An interesting topic that > > came up was whether it is a good idea for game AI to learn while playing a > > single human player. It seemed to me that there were more people > > advocating non-learning AI models, but a few people did think learning was > > a good thing. > > That was on what, the first day? I'm not sure. It was the day when you and the other AI session leaders talked about how one of the sessions had all of the women (one!) > I thought it was interesting how many developers did *not* think it was > a good idea, vs. those who thought it might be but just didn't have the time > to do it or who didn't think it was appropriate for their current > project. Many of the developers present (as you say) thought learning > and adjusting could be a good thing (and in fact it was a major topic > on a second day of discussions when we talked about A-life and the new > game Creatures). A few, however, thought it was not a good idea at any > time...that it would either make the game too difficult for the player or that > (in a multiplayer family) it would train against Player A but become > worse against Player B. > > There were definitely some interesting points made on both sides. If I think of more to say, I'll say them on the list. Might as well see what the rest of the list has to say about it. > > Since this list has been pretty quiet lately, and overall pretty quiet when > > things we've agreed are off topic are counted out, I figured it deserved a > > new, on-topic subject, now that the AI scripting topic seems to be dying > > down. > > Yes....I had hoped it would run longer. ;( But it didn't seem to be going much of anywhere. It seemed more like a discussion of "what programming language do you script in?" than "what do you do with the scripts?". The latter is more interesting. > > There were plenty of other good AI topics in that round-table, which > > I'll hold in reserve for now. > > I'm glad you enjoyed them. We're trying to continue with them over > on the new Gamasutra site (www.gamasutra.com). I suppose most of the credit for the session being interesting goes to the other people attending, but without moderators there wouldn't be any session at all! Also, I suppose you would have kicked things in the right direction if there hadn't been lots of people speaking up on their own. A lot of the session went over my head, being on the fringes of research-grade AI, but what I understood was sure interesting. Steve Schonberger From DPottinger@Ensemble-Studios.com Fri Jul 11 17:01:41 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id RAA27151; Fri, 11 Jul 1997 17:01:41 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id RAA21837; Fri, 11 Jul 1997 17:01:37 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id RAA02992 for woodcock@real3d.com; Fri, 11 Jul 1997 17:00:43 -0400 (EDT) Resent-Date: Fri, 11 Jul 1997 17:00:43 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-ID: <802B50C269DECF11B6A200A0242979EF33CFA7@consulting.ensemble.net> From: David Pottinger To: "'gamedesign@mail.digiweb.com'" Subject: RE: Game AI Date: Fri, 11 Jul 1997 16:02:14 -0500 X-Priority: 3 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.0.1457.3) Content-Type: text/plain Resent-Message-ID: <"xajq3.A.Po.Y6pxz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/310 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 3478 Status: RO I guess I'd chime in with the thought that, if applied correctly, a learning AI is a great thing. I love cool AI, and you can't get much cooler than an AI that learns how to beat you by watching you and other people play the game. That's an AI I'd love to develop and love to play against. Playing humans (if they're any good:) constantly forces you to either refine/optimize or reevaluate/replace your strategies. If you always win easily, human nature will tend to make you want to play something else. A good learning AI helps fill that void when you aren't playing against other humans. You do have to consider the game (as Ryan Drake already mentioned). No AI should ever make the game unfun for people to play. Does that mean that you shouldn't do learning AI then? No way! There is a lot of room for learning AIs to be applied in ways that still make games fun. For Age of Empires (Shameless plug: The recent winner of best realtime strat at E3:), we did do limited learning to augment a pretty straightforward approach to the AI. When you play any of our campaign scenarios the first time, the game is even. However, as a human, you carry over information about the scenario when you replay it the next time. So, we let the CPs do the same thing. They remember where you attacked them or they attacked you, etc. We also let the CPs remember your general playing tendencies so that they can improve playing against you in the randomly generated games. This has helped the quality of the AI out a lot. Well enough, in fact, that we'll be able to ship the game w/ an AI that doesn't cheat. Though, we may do a "Doom-style Nightmare mode" where the AI overtly cheats (by way of getting a resource boost at the start) just to pound on people who like that kind of thing. I guess I'd have to say that I've yet to see an AI that can't be beat by some strategy that the developers either didn't foresee or didn't have the time to code against. Learning is a great way to help alleviate that problem and thus create a better playing experience. dave Dave C. Pottinger Engine Lead and AI Guy Ensemble Studios, Inc. > -----Original Message----- > From: Steve Schonberger [SMTP:stevesch@csealumni.UNL.edu] > Sent: Friday, July 11, 1997 2:19 PM > To: gamedesign@mail.digiweb.com > Subject: Game AI > > At the Computer Game Developers' Convention, I attended a game AI > round-table (one of Steven Woodcock's sessions). An interesting topic > that > came up was whether it is a good idea for game AI to learn while > playing a > single human player. It seemed to me that there were more people > advocating non-learning AI models, but a few people did think learning > was > a good thing. > > Note: By "non-learning", I don't mean that the computer opponent > wasn't > showing the appearance of getting smarter as it played the game. I > just > mean that if it did get smarter, it did so by adaptively selecting > stronger > AI settings, rather than actually evaluating the results it got and > adjusting its AI settings based on its evaluation. > > Since this list has been pretty quiet lately, and overall pretty quiet > when > things we've agreed are off topic are counted out, I figured it > deserved a > new, on-topic subject, now that the AI scripting topic seems to be > dying > down. There were plenty of other good AI topics in that round-table, > which > I'll hold in reserve for now. > > Steve Schonberger From t-pauln@microsoft.com Fri Jul 11 17:13:12 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id RAA27587; Fri, 11 Jul 1997 17:13:11 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id RAA21889; Fri, 11 Jul 1997 17:13:10 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id RAA05616 for woodcock@real3d.com; Fri, 11 Jul 1997 17:12:17 -0400 (EDT) Resent-Date: Fri, 11 Jul 1997 17:12:17 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-ID: <4152F7B641AFCF11A49800805F680B3F3F0943@RED-36-MSG.dns.microsoft.com> From: Paul Nash To: "'gamedesign@mail.digiweb.com'" Subject: RE: Game AI Date: Fri, 11 Jul 1997 14:11:33 -0700 X-Priority: 3 X-Mailer: Internet Mail Service (5.0.1458.49) Resent-Message-ID: <"rwreOC.A.2SB.gFqxz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/311 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 4351 Status: RO (Comments inline. Damn MS-mail screwed up reply format...) -Paul R. Nash, Multimedia Developer At Large Microsoft Multimedia Dev. Intern http://www.uiuc.edu/ph/www/pr-nash/ > -----Original Message----- > From: Ryan T Drake [SMTP:drake@cse.psu.edu] > Sent: Friday, July 11, 1997 1:24 PM > To: gamedesign@mail.digiweb.com > Subject: Re: Game AI > > On Fri, 11 Jul 1997, Steve Schonberger wrote: > > > At the Computer Game Developers' Convention, I attended a game AI > > round-table (one of Steven Woodcock's sessions). An interesting > topic that > > came up was whether it is a good idea for game AI to learn while > playing a > > single human player. It seemed to me that there were more people > > advocating non-learning AI models, but a few people did think > learning was > > a good thing. > > I would say that adaptive AI would make a really good option in most > cases, but it also would depend on the game. Something else that > would > need consideration: Does the game remember what it learned when you > quit > the game and come back in? [Paul Nash] Most definitely it should remember that. The problem of training on player B and wiping out player A is not a problem at all, either. Don't a lot of games have saved game information? Is it so hard for the AI to save it's brain to disk? Not in a properly designed AI, I say. For instance, genetic algortihms should allow the saving of the genes to prescribe a persitent state, I would think. So save that for each player or each saved game. > perfectly. In essence, to have good artificial intellegence, you also > need artificial stupidity. > [Paul Nash] Yes, AI should definitely "make mistakes." > One idea of implementing this kind of AI is to start by giving the > computer only as much information as a human would get. For example, > sticking with the Quake idea. Only give the computer information > about > its surroundings, and not give it access to where everything is on the > map. If a normal player would get sound cues give the computer ai > sound > cues. > [Paul Nash] ...and then provide some sort of proficiency function for understanding those sound cues. > Now to your original point... Yes, I think ideally AI should be > adaptive, > so long as its adaptiveness tops off at a certain point. Anyone who > considers themself very good at a certain game can relate to what I > mean. > Eventually the learning curve just stops and you are at a point that > you can't really get much better...Usually this is when you can beat > most > other players and there is no one better to challenge you. This should > also happen with AI. There should be a point where the AI stops > getting > better. As soon as it looks like the AI is doing a certain amount > better > than the human player, it should shut off and not learn anything new. > Then as the human player starts getting better you can turn the > learning > on again. > [Paul Nash] Sorry Ryan, but I 100% disagree. You've just shot down your own argument here, because you say that AI should level off to match the player, but you say that the player levels off because there's noone left to challenge them. BUT, the AI IS the challenger. If the AI is always challenging a person, then they won't necessarily level off, right? I don't consider this to be like weightlifting, because it's the human brain, which is an entirely different kind of muscle. :) That said, the AI should definitely *track* the player, and not necessarily always be better than the human. If the AI sense the human is thoroughly getting his butt kicked regularly, the AI is too strong and it should back off a little to let the human "catch up." I think it's amazing how Mavis Beacon can tell that you're mising certain fingers and can intuitively KNOW what you're doing wrong. The thing there is that the program has so much understanding about the act of typing that it can diagnose your problems. Some games are like this: "you're need to buy more armor more often" or "explore in larger parties" might be cures for certain problems in strategy games. If you could design an AI that can detect specific gameplay deficiencies in the human and somehow adapt to them, that would be very cool. Of course, I am not suggesting that any of this is really easy, but all of it has potential. > From nshaf@intur.net Fri Jul 11 17:31:38 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id RAA28041; Fri, 11 Jul 1997 17:31:37 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id RAA21933; Fri, 11 Jul 1997 17:31:36 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id RAA10630 for woodcock@real3d.com; Fri, 11 Jul 1997 17:30:43 -0400 (EDT) Resent-Date: Fri, 11 Jul 1997 17:30:43 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-ID: <33C6A704.104D@intur.net> Date: Fri, 11 Jul 1997 16:35:00 -0500 From: Nick Shaffner Reply-To: nshaf@intur.net Organization: DigiFX Interactive (http://www.digifx.net) X-Mailer: Mozilla 3.0Gold (Win95; I) MIME-Version: 1.0 To: gamedesign@mail.digiweb.com Subject: Re: Game AI References: <802B50C269DECF11B6A200A0242979EF33CFA7@consulting.ensemble.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Resent-Message-ID: <"b0FHtB.A.6eC.xWqxz"@mail> Resent-From: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/312 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 1317 Status: RO Hey David, remember me? :) > You do have to consider the game (as Ryan Drake already mentioned). No > AI should ever make the game unfun for people to play. Does that mean > that you shouldn't do learning AI then? No way! There is a lot of room > for learning AIs to be applied in ways that still make games fun. Agreed, in addition, one could design the AI with the primary purpose of making the game fun, rather than victory. This certainly be a more difficult task, but (for example) by assessing the users levels of interaction with the game, the AI could forcibly create incidents to break up 'slow' periods - or perhaps not attack the users when he's down or running low on resources, etc... > the time to code against. Learning is a great way to help alleviate > that problem and thus create a better playing experience. Agreed, so long as it is used properly - it could possibly be used to help plug unforseen gaps in game mechanics (perhaps like the sandbag thing in C&C) ... It can also help make the game more user extensible, for example in Mission to Nexus Prime (plug, plug) - the user can actually design/create completely new types of units, and learning is essential in order to get the AI to the point where it can use them effectively... Nick Shaffner http://www.digifx.net/ From drake@cse.psu.edu Fri Jul 11 17:48:42 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id RAA28424; Fri, 11 Jul 1997 17:48:41 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id RAA21992; Fri, 11 Jul 1997 17:48:40 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id RAA12833 for woodcock@real3d.com; Fri, 11 Jul 1997 17:47:47 -0400 (EDT) Resent-Date: Fri, 11 Jul 1997 17:47:47 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Date: Fri, 11 Jul 1997 17:48:53 -0400 (EDT) From: Ryan T Drake To: gamedesign@mail.digiweb.com Subject: Re: Game AI In-Reply-To: <9707112042.AA02715@stargazer.real3d.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Resent-Message-ID: <"Hi7sC.A.bGD.Enqxz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/313 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 3932 Status: RO On Fri, 11 Jul 1997 woodcock@real3d.com wrote: > I'm curious how you might spot that the human player has "leveled out"? > Taking Quake as an example, what criteria might you use? Kills vs. > shots? Average time playing a level? Some combination of the two might > suffice....that's an interesting problem. There are certain things that make a Quake player (or any other game player) ``good.'' I will break it down into 3 categories for now: skill, tactics, and strategy. Although they may sonund the same they have very different meanings when you look at them from an AI perspective... SKILL I consider ``skill'' to be mastery of a game's physical interaction. For instance reaction time would be a skill. The ability to perform complex maneuvers with the joystick or keyboard would also be a skill. Think about Command and Conquer--the ability to keep two different sets of tanks driving in two different directions (with keyboard shortcuts or by flipping back and forth between the two groups) would also be a skill. This is the easy part of programming AI. We start with the assertion that a computer has 100% skill. Normally there is no reaction time and the computer has as many fingers as it needs to control itself and its character. By adding code to modify the computer's reaction time, or limiting the number of things it can keep track of, you are lowering the computer's SKILL to a human's level. TACTICS Tactics describe a player's specific reactions to the game environment and to his or her opponents. In Command and Conquer, if my opponent starts driving 20 tanks in the direction of my base, I will react by erecting a few turrets and sending a force of my own out. Tactics vary considerably from player to player. They can be thought of as a person's style of gameplay. In Quake if I make a habit of going for health boxes whenever I drop below 30%, that would be a tactic. Tactics are also rather trivial to program, and a rudimentary set of tactics can be programmed with a bunch of if (player does this) then (react with this action) STRATEGY Strategy is a little harder to pin down. I would say this is the overall flow of your game. Another way of putting it is strategy is "A player's guess at what set of tactics will work to defeat the opponent" How am I going to win the game? Some are conservative and usually work fairly well, some are risky, but can really hammer an unsuspecting opponent. From an AI perspective, the first part of the problem is figuring out an optimal strategy given an opponent's apparent tactics. This is an EXTREMELY complex problem, and something I consider a very exciting part of computer science. They couldn't even do it with Deep Blue, because Kasparov's _tactics_ were designed to fool DB, and DB then chose a bad strategy. I believe if anyone can really find a way to program a computer so that it looks at a game, analyzes the opponont's moves and trys to figure out what he is thinking--the person that can program this will become a legend in the gaming industry ;-) Think about how many factors you would have to consider. You would have to be able to quantitatively describe how ``agressive'' an opponent is. How do you calculate that? How do you decide what will fool a human being? After your AI decides on a certain strategy, then you have to be able to implement it. This would be done by deploying a number of tactics that make up this strategy, but which ones? and when? A truly successful AI would be able to evaluate its opponent's tactics, come up with an overall strategy, and translate that strategy into tactics of its own. A game that can do all this would be incredible. I hope this sorta explained what I was talking about. Heh i didn't mean for it to get this long, but once i start writing.... ;-) = Ryan Drake = = drake@cse.psu.edu = = http://www.cse.psu.edu/~drake = From woodcock@real3d.com Fri Jul 11 18:48:39 1997 Return-Path: Received: from stargazer.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id SAA29540; Fri, 11 Jul 1997 18:48:38 -0400 Received: by stargazer.real3d.com (4.1/1.34.a) id AA02847; Fri, 11 Jul 97 18:48:38 EDT From: woodcock@real3d.com Message-Id: <9707112248.AA02847@stargazer.real3d.com> Subject: Re: Game AI To: gamedesign@mail.digiweb.com Date: Fri, 11 Jul 1997 18:48:37 -0400 (EDT) In-Reply-To: <802B50C269DECF11B6A200A0242979EF33CFA7@consulting.ensemble.net> from "David Pottinger" at Jul 11, 97 04:02:14 pm X-Mailer: ELM [version 2.4 PL25] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 4567 Status: RO > I guess I'd chime in with the thought that, if applied correctly, a > learning AI is a great thing. Cool....we agree on that... > I love cool AI, and you can't get much cooler than an AI that learns how > to beat you by watching you and other people play the game. That's an > AI I'd love to develop and love to play against. Playing humans (if > they're any good:) constantly forces you to either refine/optimize or > reevaluate/replace your strategies. If you always win easily, human > nature will tend to make you want to play something else. A good > learning AI helps fill that void when you aren't playing against other > humans. One topic brought up at the AI roundtables was how many developers were being driven to put in multiplayer *instead of* good game AI. Though in the minority (thankfully), some folks reported that their management was far more interested in making sure a game was Internet capable than in making it play a challenging solitaire game. IMO, that's a poor vision of the future...as much as I enjoy online gaming I like to *learn* the game alone for a bit first. Fortunately as I said, that viewpoint didn't seem to be in the majority. > For Age of Empires (Shameless plug: The recent winner of best realtime > strat at E3:), we did do limited learning to augment a pretty > straightforward approach to the AI. When you play any of our campaign > scenarios the first time, the game is even. However, as a human, you > carry over information about the scenario when you replay it the next > time. So, we let the CPs do the same thing. They remember where you > attacked them or they attacked you, etc. We also let the CPs remember > your general playing tendencies so that they can improve playing against > you in the randomly generated games. This has helped the quality of the > AI out a lot. Well enough, in fact, that we'll be able to ship the game > w/ an AI that doesn't cheat. Though, we may do a "Doom-style Nightmare > mode" where the AI overtly cheats (by way of getting a resource boost at > the start) just to pound on people who like that kind of thing. This is *very* interesting Dave. Might I impose upon you for a more detailed writeup so I can add it to my Games AI page (address below)? If so, please email me at my "home" address (swoodcoc@concentric.net). More on subject, I'm surprised that you actually found strategies to be similar enough from game to game to make saving such information useful. If I replay a given scenario (and I'll admit it has to be pretty compelling for me to do so) I usually try something different than I did the time before. Your solution of saving general playing tendencies (which I presume are things like types of units the player likes to build, battle formations they prefer, etc.) for randomly generated games seems very clever. The AI in C&C, for example (just to pick on the game we picked on in the roundtable discussions) seems to be especially tuned for the "canned" scenarios and flails somewhat when presented with a new user-designed map. > I guess I'd have to say that I've yet to see an AI that can't be beat by > some strategy that the developers either didn't foresee or didn't have > the time to code against. Learning is a great way to help alleviate > that problem and thus create a better playing experience. Agreed. Adaptation is one of the things promised in the large online games (such as Ultima Online) and seems to me to be a natural next step for AI in games. Steve +=============================================================================+ | _ | | Steven Woodcock _____C .._. | | Senior Software Engineer, Gameware ____/ \___/ | | Lockheed Martin Real3D <____/\_---\_\ "Ferretman" | | Phone: 719-597-5413 | | E-mail: woodcock@real3d.com | | Web: http://www.cris.com/~swoodcoc/ai.html (Games AI page) | | http://www.cris.com/~swoodcoc/software.html (AI Software page) | | Disclaimer: My opinions in NO way reflect the opinions of | | Lockheed Martin Real3D--get *serious* | +=============================================================================+ From woodcock@real3d.com Fri Jul 11 19:05:12 1997 Return-Path: Received: from stargazer.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id TAA29901; Fri, 11 Jul 1997 19:05:10 -0400 Received: by stargazer.real3d.com (4.1/1.34.a) id AA02884; Fri, 11 Jul 97 19:05:08 EDT From: woodcock@real3d.com Message-Id: <9707112305.AA02884@stargazer.real3d.com> Subject: Re: Game AI To: gamedesign@mail.digiweb.com Date: Fri, 11 Jul 1997 19:05:07 -0400 (EDT) In-Reply-To: <4152F7B641AFCF11A49800805F680B3F3F0943@RED-36-MSG.dns.microsoft.com> from "Paul Nash" at Jul 11, 97 02:11:33 pm X-Mailer: ELM [version 2.4 PL25] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 4677 Status: O > (Comments inline. Damn MS-mail screwed up reply format...) I hate when that happens. That's why I only use Unix Elm (tm). Command line is where it's at! ;) > > On Fri, 11 Jul 1997, Steve Schonberger wrote: > > > > Does the game remember what it learned when you quit > > the game and come back in? > [Paul Nash] > Most definitely it should remember that. The problem of > training on player B and wiping out player A is not a problem at all, > either. Don't a lot of games have saved game information? Is it so > hard for the AI to save it's brain to disk? Not in a properly designed > AI, I say. For instance, genetic algortihms should allow the saving of > the genes to prescribe a persitent state, I would think. So save that > for each player or each saved game. In fact GAs were one of the methods of building a learning AI discussed in the sessions, mostly with regards to the Creatures game and its A-Life techniques. One side aspect of this that somebody brought up (it might have been me, but I'm not sure) is that by having the AI "brain" loaded rather than coded you can release add-on expansion packs for the game containing additional AIs. Better yet (separate topic), if the AI code is accessible to the player (ala Quake-C), then you can sponsor contests amongst players to see who can develop the most devious AIs. The best 10 get released on a CD, or posted to a web site. > > > > (Ryan says games should throttle back to match the players' level) > > > [Paul Nash] > Sorry Ryan, but I 100% disagree. You've just shot down your own > argument here, because you say that AI should level off to match the > player, but you say that the player levels off because there's noone > left to challenge them. BUT, the AI IS the challenger. If the AI is > always challenging a person, then they won't necessarily level off, > right? I don't consider this to be like weightlifting, because it's the > human brain, which is an entirely different kind of muscle. :) I don't know about that, Paul. I can see value in adjusting the AI so that it's always a bit tougher than the player is. I remember the first few times I played C&C I was sweating bullets over the AI, but once my expertise got high enough he ceased to become a threat in all but the most unbalanced scenarios. The trick is capturing parameters which you can use to accurately judge how experienced a player is. > That said, the AI should definitely *track* the player, and not > necessarily always be better than the human. If the AI sense the human > is thoroughly getting his butt kicked regularly, the AI is too strong > and it should back off a little to let the human "catch up." Er....isn't that what Ryan said? > If you > could design an AI that can detect specific gameplay deficiencies in the > human and somehow adapt to them, that would be very cool. Genetic algorithsm have a possibility here, provided the game itself is "big enough" to permit them time to evolve (they can be notoriously slow). Consider a space strategy game ala MOO, in which individual ship designs are modified by the AI over time based on those ships which do well against the player. If you the player tend to build lots of fighters and carriers, then gradually over time the AI will adapt to that by building ships based on surviving ship types (those that have more anti-fighter defenses). > Of course, I am not suggesting that any of this is really easy, > but all of it has potential. That's why they pay us the big bucks! (Well, it's rumored some folks get big bucks...I wouldn't know..... ;). Steve +=============================================================================+ | _ | | Steven Woodcock _____C .._. | | Senior Software Engineer, Gameware ____/ \___/ | | Lockheed Martin Real3D <____/\_---\_\ "Ferretman" | | Phone: 719-597-5413 | | E-mail: woodcock@real3d.com | | Web: http://www.cris.com/~swoodcoc/ai.html (Games AI page) | | http://www.cris.com/~swoodcoc/software.html (AI Software page) | | Disclaimer: My opinions in NO way reflect the opinions of | | Lockheed Martin Real3D--get *serious* | +=============================================================================+ From stevesch@csealumni.UNL.edu Fri Jul 11 18:37:04 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id SAA29367; Fri, 11 Jul 1997 18:37:04 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id SAA22083; Fri, 11 Jul 1997 18:36:59 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id SAA20046 for woodcock@real3d.com; Fri, 11 Jul 1997 18:36:02 -0400 (EDT) Resent-Date: Fri, 11 Jul 1997 18:36:02 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-Id: <199707112235.RAA11449@smtp.gte.net> From: "Steve Schonberger" To: Subject: Re: Game AI Date: Fri, 11 Jul 1997 15:31:33 -0700 X-MSMail-Priority: Normal X-Priority: 3 X-Mailer: Microsoft Internet Mail 4.70.1161 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Resent-Message-ID: <"JpIIqC.A.30E.8Trxz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/314 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 7858 Status: RO I wrote: > > At the Computer Game Developers' Convention, I attended a game AI > > round-table (one of Steven Woodcock's sessions). An interesting topic that > > came up was whether it is a good idea for game AI to learn while playing a > > single human player. It seemed to me that there were more people > > advocating non-learning AI models, but a few people did think learning was > > a good thing. From: Ryan T Drake Date: Friday, July 11, 1997 1:23 PM: > I would say that adaptive AI would make a really good option in most > cases, but it also would depend on the game. Something else that would > need consideration: Does the game remember what it learned when you quit > the game and come back in? This is a point Steven Woodcock brought up. One answer is to have a "who are you?" page as part of the startup, so that the computer doesn't instantly kill player two because player one has worked up to a high skill level. That's annoying, but fixes the problem. An "I'm the only one who plays this game on this computer" option could be used to avoid asking the problem unnecessarily. This isn't really an AI issue, though, because any program that has multiple levels (game or not) has to deal with multiple users unless there's only one meaningful configuration. It's just as important for a word processor to keep track of user one wanting technical manual mode and user two wanting personal letter mode as it is for a game to know user one is on level 99 and user two is on level 2. So, new topic (please change the subject line if you run with it): What's the best way to manage keeping track of user settings (preferences, difficulty, etc.) on a computer shared by more than one user? > My feeling is, you can tell what is good AI if the computer's actions > look like the way a human would play. For instance: If I am playing > Quake, and i see a monster trying to follow me around the corner and > hitting a wall, i would not consider that good AI. On the other hand, if > i had a monster after me that hits every shot and follows me perfectly, i > would also not consider that good AI. Reason being, I know a human cannot > possibly be dumb enough to try to follow me through walls, and I also know > a human cannot possibly be good enough to hit each shot and follow > perfectly. In essence, to have good artificial intellegence, you also > need artificial stupidity. Although this is very important, this is more a play balance issue than an AI issue. How do you deal with this? Maybe by starting with a few enemies and adding more at higher levels. Maybe by giving the enemies tougher equipment or attributes. Maybe by giving them smarter AI. > One idea of implementing this kind of AI is to start by giving the > computer only as much information as a human would get. For example, > sticking with the Quake idea. Only give the computer information about > its surroundings, and not give it access to where everything is on the > map. If a normal player would get sound cues give the computer ai sound > cues. I think this was another topic in the AI round-table. Do we make the AI enemies play by exactly the same rules and information a player uses? (In chess, of course, other games, maybe.) Or do we make up for weaknesses in the enemies' AI by giving them "hints from God"? In short, does computer-controlled player cheat or play fair? > Another important thing to give any AI is reaction time. No human being > has perfect 0ms reaction time. In a ``deathmatch'' for instance, a human > being could take anywhere between 100-500ms to react to events on the > screen. Add this factor in when calculating how the computer reacts to > things. Reasonable AI can vary given a user-selected ``skill level'' but > it should always be beatable. Play balance. > Now to your original point... Yes, I think ideally AI should be adaptive, > so long as its adaptiveness tops off at a certain point. Anyone who > considers themself very good at a certain game can relate to what I mean. > Eventually the learning curve just stops and you are at a point that > you can't really get much better...Usually this is when you can beat most > other players and there is no one better to challenge you. This should > also happen with AI. There should be a point where the AI stops getting > better. As soon as it looks like the AI is doing a certain amount better > than the human player, it should shut off and not learn anything new. > Then as the human player starts getting better you can turn the learning > on again. Again, play balance. What I was getting at in my note was not about how to achieve play balance. I was talking about whether an AI enemy "learns". Consider these examples for a computer chess player: 1 (non-learning). At level 1, the computer plays one of a few well-known openings, and analyzes moves only a few levels deep, with a weak set of pre-defined move-evaluation settings. At level 2, it expands its set of openings, analyzes moves a little deeper, and uses a stronger set of pre-defined move-evaluation settings. At the top level, it uses a huge library of openings, analyzes moves as deeply as time allows, and uses the strongest set of move-evaluation settings the developer has been able to pre-calculate. 2 (learning). Initially, the computer plays with a complete library of openings, but has settings that tell it to choose the most familiar openings. It always analyzes moves as deeply as time allows, but starts with a weak set of move-evaluation settings. Where its moves produce favorable results, it adjusts its move-evaluation settings to do more of the same, and where its moves produce unfavorable results, it adjusts its settings to try something different. Example 1 increases in difficulty, but doesn't "learn". It can play at a user-selected difficulty level, or advance in level when it counts the player winning a lot. But the way it increases difficulty is by substituting a _pre-defined_ set of stronger move-evaluation settings. Example 2, by contrast, also increases in difficulty, by "learning". If it finds that the player usually wins when it opens P-K4, but it usually wins when it opens P-Q4, it plays P-Q4 more, and vice-versa. If it usually wins by trading lots of pieces, it tries to trade pieces more often. Basically, it adapts to what works. Each has good and bad points. Example 1 is likely to be easier to build, which is a big plus. On the down-side, if its pre-defined settings have a critical flaw that's hard enough to find that play-testers miss it, but players find it, then any player that discovers (or hears about it) that flaw can beat the computer with a shortcut. Example 2 can deal with that sort of flaw by learning that it doesn't want to leave that sort of hole open. But example 2 has its weaknesses too, most notably being harder to program. A more subtle one is that the human player can teach the computer to play worse, by intentionally playing badly in response to the computer player's mistakes. If the human chess player dropped pieces or resigned every time the computer player left the queen unguarded, the computer player might start to think that leaving the queen unguarded was a good strategy. Another complication of the learning model is that it may be difficult to measure what results are good and what aren't. Did the computer player win game 1 and lose game 2 because it played smarter in game 1? Or was it because the human player played smarter in game 2? What did it do differently that made it play worse, and what made it play better? So, what's good about using pre-calculated strategy settings? What's good about measuring results, and ajusting the strategy settings during or between games? Steve Schonberger From woodcock@real3d.com Fri Jul 11 19:13:24 1997 Return-Path: Received: from stargazer.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id TAA00042; Fri, 11 Jul 1997 19:13:19 -0400 Received: by stargazer.real3d.com (4.1/1.34.a) id AA02904; Fri, 11 Jul 97 19:13:19 EDT From: woodcock@real3d.com Message-Id: <9707112313.AA02904@stargazer.real3d.com> Subject: Re: Game AI To: nshaf@intur.net Date: Fri, 11 Jul 1997 19:13:18 -0400 (EDT) In-Reply-To: <33C6A704.104D@intur.net> from "Nick Shaffner" at Jul 11, 97 04:35:00 pm X-Mailer: ELM [version 2.4 PL25] Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 2385 Status: O > Agreed, in addition, one could design the AI with the primary purpose > of making the game fun, rather than victory. This certainly be a more > difficult task, but (for example) by assessing the users levels of > interaction with the game, the AI could forcibly create incidents to > break up 'slow' periods - or perhaps not attack the users when he's down > or running low on resources, etc... I like the idea of the AI somehow gauging the "pace" of the game, provided it's a game that makes that a sensible thing to do. For Dungeon Keeper, for example, it might be difficult to launch an assault just to keep things moving, especially if the AI and the player haven't had contact yet. Similarly, one can easily imagine a creature or two in Quake leaping out to harass the player when he's been sitting in one place too long. Question though: Is that "cheating"? One can argue it is, or one can argue it provides for better gameplay. > It can also help make the game more user extensible, > for example in Mission to Nexus Prime (plug, plug) - the user can > actually design/create completely new types of units, and learning is > essential in order to get the AI to the point where it can use them > effectively... Nick, I ask you the same thing I asked Dave in an earlier post. I'd love to hear more info on this so I can add it to my Games AI page. I think a lot of folks would be interested. Steve +=============================================================================+ | _ | | Steven Woodcock _____C .._. | | Senior Software Engineer, Gameware ____/ \___/ | | Lockheed Martin Real3D <____/\_---\_\ "Ferretman" | | Phone: 719-597-5413 | | E-mail: woodcock@real3d.com | | Web: http://www.cris.com/~swoodcoc/ai.html (Games AI page) | | Disclaimer: My opinions in NO way reflect the opinions of | | Lockheed Martin Real3D--get *serious* | +=============================================================================+ From stevesch@csealumni.UNL.edu Fri Jul 11 19:29:22 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id TAA00266; Fri, 11 Jul 1997 19:29:20 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id TAA22195; Fri, 11 Jul 1997 19:29:18 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id TAA26723 for woodcock@real3d.com; Fri, 11 Jul 1997 19:28:25 -0400 (EDT) Resent-Date: Fri, 11 Jul 1997 19:28:25 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-Id: <199707112328.SAA24642@smtp.gte.net> From: "Steve Schonberger" To: Subject: Re: Game AI Date: Fri, 11 Jul 1997 16:27:11 -0700 X-MSMail-Priority: Normal X-Priority: 3 X-Mailer: Microsoft Internet Mail 4.70.1161 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Resent-Message-ID: <"WyejfB.A.RfG.mFsxz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/317 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 2826 Status: RO > From: woodcock@real3d.com > Date: Friday, July 11, 1997 3:48 PM > One topic brought up at the AI roundtables was how many developers > were being driven to put in multiplayer *instead of* good game AI. > Though in the minority (thankfully), some folks reported that their > management was far more interested in making sure a game was Internet > capable than in making it play a challenging solitaire game. IMO, > that's a poor vision of the future...as much as I enjoy online gaming > I like to *learn* the game alone for a bit first. Fortunately as > I said, that viewpoint didn't seem to be in the majority. Since I'm working on a massively multi-user game, my AI opponents are there just to train you so that you can handle the controls when you come upon human opponents. There may be some AI enemies that are so nasty that you can only hope to beat them by rounding up several human players and ganging up on them, but for the most part I just want the AI to do interesting stuff, not necessarily to make them extra-tough. A common question is, "How do you make an AI player tough?" Well, I also want to ask, "How do you give an AI player 'personality'?" > > I guess I'd have to say that I've yet to see an AI that can't be beat by > > some strategy that the developers either didn't foresee or didn't have > > the time to code against. Learning is a great way to help alleviate > > that problem and thus create a better playing experience. > > Agreed. Adaptation is one of the things promised in the large > online games (such as Ultima Online) and seems to me to be a natural > next step for AI in games. For a game like Ultima Online, adaptation doesn't have to be done by "learning". It can be done by the game operators noticing that the werewolves always kill human players lacking silver weapons, and always die against silver-armed humans, and either pulling werewolves out of the game or resetting their programming (AI, attributes, and where they show up). In other words, adaptation can be accomplished by just changing something that's broken on the server, so as soon as the operators see something wrong, they can make the server "adapt". A stand-alone game doesn't have that option, except by offering updates on the publisher's web site. That suggests a contrast between "smart" AI and AI with "personality". "Smart" werewolves would go into towns in human form and find another town if anyone had silver (possibly testing that by sending in a "dumb" werewolf), but declare dinner time if no one had silver. But that would just massacre such towns, which isn't fun. A werewolf with "personality" might seek out towns with lots of silver weapons, either for the challenge, or seeking release from their curse. Which is more fun? Steve Schonberger From nshaf@intur.net Fri Jul 11 23:19:35 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id XAA04050; Fri, 11 Jul 1997 23:19:34 -0400 Received: from www.intur.net by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id XAA22614; Fri, 11 Jul 1997 23:19:19 -0400 Received: from grim by www.intur.net via ESMTP (940816.SGI.8.6.9/940406.SGI) for id WAA06093; Fri, 11 Jul 1997 22:20:47 -0500 Message-Id: <199707120320.WAA06093@www.intur.net> From: "Nick Shaffner" To: Subject: Re: Game AI Date: Fri, 11 Jul 1997 22:18:10 -0500 X-MSMail-Priority: Normal X-Priority: 3 X-Mailer: Microsoft Internet Mail 4.70.1161 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Length: 3479 Status: RO I knew I knew you from somewhere, you've got that nifty 'You know your game is in trouble when' with a couple of my quotes on it :-) > I like the idea of the AI somehow gauging the "pace" of the game, > provided it's a game that makes that a sensible thing to do. For > Dungeon Keeper, for example, it might be difficult to launch an assault > just to keep things moving, especially if the AI and the player haven't > had contact yet. Similarly, one can easily imagine a creature or > two in Quake leaping out to harass the player when he's been sitting in > one place too long. > Question though: Is that "cheating"? One can argue it is, or one > can argue it provides for better gameplay. I'll choose gameplay instead of "not cheating" if I think 90% of my players aren't going to notice or care about the cheating (given it doesn't actually hurt gameplay). For example: Letting the enemy units pathfind around the exact edge of the known human units' visible range would be fine with me ( in order to enable some of my eakiness' algo - which makes the game significantly more fun ) Letting the AI's have a much higher probability of allying with each other whenever they notice human player's allying seems acceptable, as it would keep the game more even/challenging Giving the AI a cash boost when it's loosing, or allowing it to rebuild buildings might allow the AI to last longer, but I think this sort of visible cheating is what most annoys players and is quite detrimental to gameplay... > > It can also help make the game more user extensible, > > for example in Mission to Nexus Prime (plug, plug) - the user can > > actually design/create completely new types of units, and learning is > > essential in order to get the AI to the point where it can use them > > effectively... > > Nick, I ask you the same thing I asked Dave in an earlier post. > I'd love to hear more info on this so I can add it to my Games AI > page. I think a lot of folks would be interested. Well, the unit utilization AI uses a couple of techniques, I use the "boxes" techniques for determining which types units are most effective against other types units (essentially genetic programming without the genes :) ) - this way new units can be created and the AI can use them and learn their effective value, as well as adapt to their altered value with different players' 'styles' (concerning overall unit selection and usage) The original value for each unit is computed from the unit's cost, mobility, firepower, etc, - and originally initialized to the 'economically optimal' state - ex. the computer will tend to build the units that give it the most bang/mobility for the buck... It is incrementally modified as the AI learns about the units effective average lifespan, offensive/defensive %, % utilization, effected influence, effective influence and actual influence, etc against each of the other types of units... This works out suprisingly well (for such a simple algo), and adapts extremely quickly in our game ( which has a high unit turnover ). It also allows for some quite useful comparisons against 'factory norms' which allow the AI to make guesses as to when it might be getting too hard for the player... It also has the extremely visible side effect of allowing the AI to pull back into a 'fuzzy' defensive position. :) Nick -- Nick Shaffner Technical Director DigiFX Interactive. http://users.intur.net/~nshaf/ http://www.digifx.net/ From ollanes@accesspro.net Sat Jul 12 00:59:50 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id AAA05581; Sat, 12 Jul 1997 00:59:49 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id AAA22857; Sat, 12 Jul 1997 00:59:48 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id AAA25212 for woodcock@real3d.com; Sat, 12 Jul 1997 00:58:55 -0400 (EDT) Resent-Date: Sat, 12 Jul 1997 00:58:55 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-Id: <199707120457.AAA24922@mail.digiweb.com> Reply-To: From: "Orlando Llanes" To: Subject: Re: Game AI Date: Sat, 12 Jul 1997 00:49:00 -0400 X-MSMail-Priority: Normal X-Priority: 3 X-Mailer: Microsoft Internet Mail 4.70.1155 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Resent-Message-ID: <"IY_SYB.A.wFG.T7wxz"@mail> Resent-From: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/318 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 1415 Status: RO I like the AI from X-Com. I'm not AI expert, but the X-Com AI looks to be a bit complicated. For example, if you shoot at the alien, they move out of the way after the shots are fired. If you were spotted by them, and then you run back for cover, they will look for you. They leave their fallen/landed spacecraft and seek buildings from which to shoot from high above. Etc. Another cool thing about X-Com is that the soldiers don't fire accurately on the first mission, they gradually get more accurate. I also like the AI from DOOM where if you're seen, the aliens will pursue you and open doors if they can. One time, I heard a bulldemon (or whatever they're called), I was going crazy trying to figure out where it was! As it turns out, it poped up right in front of me while I was waiting for the elevator. I shot at it from a split-second reaction. The kind of AI I like is one where the enemy can surprise you, even if you know their pattern of attack. The other thing that's cool is how the character interacts with the environment. For Example, I was playing X-Com today, and I positioned a couple of my soldiers behind some trees, on the alien's turn, one of my soldiers spotted them and was shot at, but the soldier was safe because the shot hit the log. Sorry if I'm off-topic, or if I've mentioned something already said, but I was just writing down some random thoughts :) See ya! Orlando Llanes From kyhui@netvigator.com Sat Jul 12 04:36:53 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id EAA09176; Sat, 12 Jul 1997 04:36:52 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id EAA23230; Sat, 12 Jul 1997 04:36:50 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id EAA27309 for woodcock@real3d.com; Sat, 12 Jul 1997 04:35:30 -0400 (EDT) Resent-Date: Sat, 12 Jul 1997 04:35:30 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-ID: <33C740C2.96FF813C@netvigator.com> Date: Sat, 12 Jul 1997 16:30:58 +0800 From: Hui Ka Yu Reply-To: kyhui@netvigator.com X-Mailer: Mozilla 4.01 [en] (Win95; I) MIME-Version: 1.0 To: gamedesign@mail.digiweb.com Subject: Re: Game AI X-Priority: 3 (Normal) References: <199707111920.OAA20395@smtp.gte.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Resent-Message-ID: <"aU5Or.A.coG.HG0xz"@mail> Resent-From: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/319 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 1612 Status: RO The discussion just reminded me some of the "learning" ai attempts. Remeber MK3 for PC? I do think that it adopts a learning ai based on a scoring system for different moves. When a move is effective/defective, the opponent will perform the move more/less accordingly. (somebody mentioned it in the discussion) Sounds good for a duel game, yet the result was disappointing, coz the so-called "learning" is _so_ obvious to players.(can't describe in words, but you will know if you've tried it) The computer players turn out to be more _unnatural_ than non-learning opponents, let alone human players, and playing with them was really IMHO no fun. It might beat the player, but player won't find it FUN. A human player won't learn that way. So it seems that making a learning ai with this "good result->do more, bad results->do less" sounds easier than it should be. To make it look natural, it think you need to define vast amount of alternatives first and perform complex adoptations so that players cannot recognize them all and find it _so_ artificial and impractical. e.g. in a C&C type game, when a player attack more often by sea, the computer adjust more fund to sea defence. A player can cheat the ai simply by attack 10 times (hoax) by sea and then crush the computer with land unit with ease _every_ time he plays. That sounds really bad and no fun! A human player will suspect that this is only part of a tactics and won't fall into such trap - and this disobey the "good results->do more" ai system. Just some comments.... Psycloid kyhui@netvigator.com Afods - freelance game developer team From condor@neotechonline.com Sat Jul 12 13:25:47 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id NAA17238; Sat, 12 Jul 1997 13:25:46 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id NAA23794; Sat, 12 Jul 1997 13:25:40 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id NAA12186 for woodcock@real3d.com; Sat, 12 Jul 1997 13:24:47 -0400 (EDT) Resent-Date: Sat, 12 Jul 1997 13:24:47 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-Id: <199707121723.NAA11696@mail.digiweb.com> X-Mailer: Microsoft Outlook Express 4.71.0544.0 From: "John Vanderbeck (NeoTECH)" To: Subject: Re: Game AI Date: Sat, 12 Jul 1997 11:29:36 -0500 X-Priority: 3 X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mimeole: Produced By Microsoft MimeOLE Engine V4.71.0544.0 Resent-Message-ID: <"g9-enB.A.a3C.O27xz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/322 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 4662 Status: RO My comments are inline Thanks, John Vanderbeck Lead Programmer - NeoTECH Online condor@neotechonline.com http://www.neotechonline.com GAME DESIGN mailing list: Email gamedesign-request@digiweb.com , SUBJECT subscribe ---- From: Ryan T Drake To: gamedesign@mail.digiweb.com Date: Friday, July 11, 1997 3:24 PM Subject: Re: Game AI >On Fri, 11 Jul 1997, Steve Schonberger wrote: > >> At the Computer Game Developers' Convention, I attended a game AI >> round-table (one of Steven Woodcock's sessions). An interesting topic that >> came up was whether it is a good idea for game AI to learn while playing a >> single human player. It seemed to me that there were more people >> advocating non-learning AI models, but a few people did think learning was >> a good thing. > >I would say that adaptive AI would make a really good option in most >cases, but it also would depend on the game. Something else that would >need consideration: Does the game remember what it learned when you quit >the game and come back in? > >My feeling is, you can tell what is good AI if the computer's actions >look like the way a human would play. For instance: If I am playing >Quake, and i see a monster trying to follow me around the corner and >hitting a wall, i would not consider that good AI. On the other hand, if >i had a monster after me that hits every shot and follows me perfectly, i >would also not consider that good AI. Reason being, I know a human cannot >possibly be dumb enough to try to follow me through walls, and I also know >a human cannot possibly be good enough to hit each shot and follow >perfectly. In essence, to have good artificial intellegence, you also >need artificial stupidity. [John Vanderbeck] I completely agree with this statement. It is important to realize that creating an artificial intelligence doesn't necesarily mean creating a super-smart computerized brain with the knowledge to conquer the world. Maybe in the scope of gaming, Artificial Intelligence should be better known as Artificial Humanity. Our goal is to create a realistic HUMAN opponent that is controlled by the computer but otherwise not noticable as the computer. Our goal is _not_ to create a COMPUTER player. IMHO. > >One idea of implementing this kind of AI is to start by giving the >computer only as much information as a human would get. For example, >sticking with the Quake idea. Only give the computer information about >its surroundings, and not give it access to where everything is on the >map. If a normal player would get sound cues give the computer ai sound >cues. [John Vanderbeck] This is very interesting, and comething I have always wondered about as I played games. Sometimes it seems very obvious that the computer is making decisions based on information it should _not_ know. I think this has a tendancy to irrate the player. > >Another important thing to give any AI is reaction time. No human being >has perfect 0ms reaction time. In a ``deathmatch'' for instance, a human >being could take anywhere between 100-500ms to react to events on the >screen. Add this factor in when calculating how the computer reacts to >things. Reasonable AI can vary given a user-selected ``skill level'' but >it should always be beatable. [John Vanderbeck] I don't have alot of experience in AI or AH as I stated above, but wouldn't this point be rather mute if your AH routine was complex enough to reasonably simulate humanity? I would think that just running through a complex routine would create the required delay. I don't see how you could run the AH routine in 0ms :) > >Now to your original point... Yes, I think ideally AI should be adaptive, >so long as its adaptiveness tops off at a certain point. Anyone who >considers themself very good at a certain game can relate to what I mean. >Eventually the learning curve just stops and you are at a point that >you can't really get much better...Usually this is when you can beat most >other players and there is no one better to challenge you. This should >also happen with AI. There should be a point where the AI stops getting >better. As soon as it looks like the AI is doing a certain amount better >than the human player, it should shut off and not learn anything new. >Then as the human player starts getting better you can turn the learning >on again. [John Vanderbeck[ Essentially correct. I beleive the AH should always be just a few steps ahead of the player, to give them a growing challenge. Just like weight-lifting. > > > >= Ryan Drake = >= drake@cse.psu.edu = >= http://www.cse.psu.edu/~drake = > From condor@neotechonline.com Sat Jul 12 13:25:48 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id NAA17242; Sat, 12 Jul 1997 13:25:47 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id NAA23798; Sat, 12 Jul 1997 13:25:46 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id NAA12197 for woodcock@real3d.com; Sat, 12 Jul 1997 13:24:52 -0400 (EDT) Resent-Date: Sat, 12 Jul 1997 13:24:52 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-Id: <199707121723.NAA11689@mail.digiweb.com> X-Mailer: Microsoft Outlook Express 4.71.0544.0 From: "John Vanderbeck (NeoTECH)" To: Subject: Re: Game AI Date: Sat, 12 Jul 1997 11:31:07 -0500 X-Priority: 3 X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mimeole: Produced By Microsoft MimeOLE Engine V4.71.0544.0 Resent-Message-ID: <"OcusQC.A.C3C.J27xz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/321 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 5174 Status: RO These "Genetic Algorithims" sound very interesting. Where can I find out more about them? Thanks, John Vanderbeck Lead Programmer - NeoTECH Online condor@neotechonline.com http://www.neotechonline.com GAME DESIGN mailing list: Email gamedesign-request@digiweb.com , SUBJECT subscribe ---- From: woodcock@real3d.com To: gamedesign@mail.digiweb.com Date: Friday, July 11, 1997 6:06 PM Subject: Re: Game AI >> (Comments inline. Damn MS-mail screwed up reply format...) > > I hate when that happens. That's why I only use Unix Elm (tm). >Command line is where it's at! ;) > >> > On Fri, 11 Jul 1997, Steve Schonberger wrote: >> > >> > Does the game remember what it learned when you quit >> > the game and come back in? >> [Paul Nash] >> Most definitely it should remember that. The problem of >> training on player B and wiping out player A is not a problem at all, >> either. Don't a lot of games have saved game information? Is it so >> hard for the AI to save it's brain to disk? Not in a properly designed >> AI, I say. For instance, genetic algortihms should allow the saving of >> the genes to prescribe a persitent state, I would think. So save that >> for each player or each saved game. > > In fact GAs were one of the methods of building a learning AI >discussed in the sessions, mostly with regards to the Creatures game >and its A-Life techniques. > > One side aspect of this that somebody brought up (it might have >been me, but I'm not sure) is that by having the AI "brain" loaded >rather than coded you can release add-on expansion packs for the game >containing additional AIs. Better yet (separate topic), if the AI >code is accessible to the player (ala Quake-C), then you can sponsor >contests amongst players to see who can develop the most devious >AIs. The best 10 get released on a CD, or posted to a web site. > >> > >> > (Ryan says games should throttle back to match the players' level) >> > >> [Paul Nash] >> Sorry Ryan, but I 100% disagree. You've just shot down your own >> argument here, because you say that AI should level off to match the >> player, but you say that the player levels off because there's noone >> left to challenge them. BUT, the AI IS the challenger. If the AI is >> always challenging a person, then they won't necessarily level off, >> right? I don't consider this to be like weightlifting, because it's the >> human brain, which is an entirely different kind of muscle. :) > > I don't know about that, Paul. I can see value in adjusting the AI >so that it's always a bit tougher than the player is. I remember the >first few times I played C&C I was sweating bullets over the AI, but >once my expertise got high enough he ceased to become a threat in >all but the most unbalanced scenarios. > > The trick is capturing parameters which you can use to accurately >judge how experienced a player is. > >> That said, the AI should definitely *track* the player, and not >> necessarily always be better than the human. If the AI sense the human >> is thoroughly getting his butt kicked regularly, the AI is too strong >> and it should back off a little to let the human "catch up." > > Er....isn't that what Ryan said? > >> If you >> could design an AI that can detect specific gameplay deficiencies in the >> human and somehow adapt to them, that would be very cool. > > Genetic algorithsm have a possibility here, provided the game itself >is "big enough" to permit them time to evolve (they can be notoriously >slow). Consider a space strategy game ala MOO, in which individual >ship designs are modified by the AI over time based on those ships >which do well against the player. If you the player tend to build >lots of fighters and carriers, then gradually over time the AI will >adapt to that by building ships based on surviving ship types >(those that have more anti-fighter defenses). > >> Of course, I am not suggesting that any of this is really easy, >> but all of it has potential. > > That's why they pay us the big bucks! (Well, it's rumored some folks >get big bucks...I wouldn't know..... ;). > > > >Steve > From mark_a@cix.compulink.co.uk Sat Jul 12 23:05:02 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id XAA24382; Sat, 12 Jul 1997 23:05:00 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id XAA24486; Sat, 12 Jul 1997 23:04:59 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id XAA20001 for woodcock@real3d.com; Sat, 12 Jul 1997 23:03:53 -0400 (EDT) Resent-Date: Sat, 12 Jul 1997 23:03:53 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Date: Sun, 13 Jul 97 04:02 BST-1 From: mark_a@cix.compulink.co.uk (Mark Atkinson) Subject: Re: Game AI To: gamedesign@mail.digiweb.com Cc: mark_a@cix.compulink.co.uk Reply-To: mark_a@cix.compulink.co.uk Message-Id: Resent-Message-ID: <"JYsV1.A.f0E.OVEyz"@mail> Resent-From: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/324 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 1006 Status: RO In-Reply-To: <199707121723.NAA11689@mail.digiweb.com> > These "Genetic Algorithims" sound very interesting. Where can I find > out > more about them? A web search should turn up plenty of info and sample code. Alternatively, the canonical introductory text is "Genetic Algortihms in Search, Optimization & Machine Learning", David E Goldberg, Addison-Wesley 1989, ISBN 0-201-15767-5. Note he uses 'Roulette Wheel' selection, which is IMHO a bad thing; most modern implementations use ranking of some sort. There's also comp.ai.genetic. I'd echo the sentiments about trying to create a fun-to-beat opponent, rather than a Computer Brain(TM). This is the primary reason to avoid rule-based systems IMHO. -=Mark=- Mark Atkinson Voice: +44 171 828 6990 Technical Director Fax: +44 171 828 6997 Computer Artworks Ltd. Mail: mark@artworks.co.uk London, UK. Web: http://www.artworks.co.uk From rick@polylang.com Mon Jul 14 05:12:48 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id FAA15126; Mon, 14 Jul 1997 05:12:48 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id FAA27041; Mon, 14 Jul 1997 05:12:11 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id FAA29059 for woodcock@real3d.com; Mon, 14 Jul 1997 05:11:15 -0400 (EDT) Resent-Date: Mon, 14 Jul 1997 05:11:15 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-Id: <3.0.32.19970724095734.00683d88@MAILHOST> X-Sender: rick@MAILHOST X-Mailer: Windows Eudora Pro Version 3.0 (32) Date: Thu, 24 Jul 1997 10:05:05 +0100 To: gamedesign@mail.digiweb.com From: rick cronan Subject: Re: Game AI Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Resent-Message-ID: <"0z0vPC.A.eAH.bzeyz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/326 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 2084 Status: RO At 17:48 11/07/97 -0400, drake@cse.psu.edu wrote: > >There are certain things that make a Quake player (or any other game >player) ``good.'' I will break it down into 3 categories for now: skill, >tactics, and strategy. I think there's a fourth and extremely relevant category (which was kind of touched on last week or the week before on this list) which is that of knowledge. In my experience, the Quake death-match winners are not necessarily the most skilled, or those with the best tactics and strategies, but those who know the levels best, those who know where to get the 200 armour, the Quad-damage, etc. Those kind of players (in single-player mode) are the one your learning AI would be targetted at, because for the game to challenge them, it would need to combat their knowledge that around corner X there are three monsters of type Y, two health packs and some rockets. For someone playing a level for the first time, the monsters don't necessarily have to act in such a way as to defeat your style. You'll get fragged because you don't know what's around the next corner, not because the monsters 'know' your tactics. Which also brings me on to my other point. The learn / not learn dilemma should also be looked at in terms of what the game is, especially if the player can discern its presence. From an internal logic point of view, a C&C type game can have a learning AI because it represents a long, drawn-out war in which an enemy could learn your tactics, and come up with counters. However, in your Quake type game it is less plausible that the enemies would have time to learn from your actions. The only exception to this IMHO is what has already been mentioned, and that is where learning AI is used to promote entertainment, rather than simply to help the computer player win. | rick cronan | email: rick@polylang.com | | production manager | phone: +44 (0) 114 267 0017 | | cool beans productions ltd | fax: +44 (0) 114 268 7487 | | url: http://www.polylang.com/polylang2/Coolbeans/home.htm | From Swoodcoc@concentric.net Mon Jul 14 10:57:51 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id KAA24266; Mon, 14 Jul 1997 10:57:50 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id KAA00186; Mon, 14 Jul 1997 10:57:14 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id KAA17019 for woodcock@real3d.com; Mon, 14 Jul 1997 10:56:15 -0400 (EDT) Resent-Date: Mon, 14 Jul 1997 10:56:15 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f From: Swoodcoc@concentric.net Message-Id: <199707141455.KAA12971@galileo.cris.com> Subject: Re: Game AI To: gamedesign@mail.digiweb.com Date: Mon, 14 Jul 1997 10:55:06 -0400 (EDT) In-Reply-To: from "Ryan T Drake" at Jul 11, 97 05:48:53 pm X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Resent-Message-ID: <"I2TKmD.A.pFE.E3jyz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/327 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 5454 Status: RO Apologies to all ahead of time for the length of this post....Ryan had some good points that I'm loath to trim out. > On Fri, 11 Jul 1997 woodcock@real3d.com wrote: > > I'm curious how you might spot that the human player has "leveled out"? > > Taking Quake as an example, what criteria might you use? Kills vs. > > shots? Average time playing a level? Some combination of the two might > > suffice....that's an interesting problem. > > There are certain things that make a Quake player (or any other game > player) ``good.'' I will break it down into 3 categories for now: skill, > tactics, and strategy. Although they may sonund the same they have very > different meanings when you look at them from an AI perspective... > > SKILL > > I consider ``skill'' to be mastery of a game's physical interaction. For > instance reaction time would be a skill. The ability to perform complex > maneuvers with the joystick or keyboard would also be a skill. Think > about Command and Conquer--the ability to keep two different sets of tanks > driving in two different directions (with keyboard shortcuts or by > flipping back and forth between the two groups) would also be a skill. > This is the easy part of programming AI. We start with the assertion that > a computer has 100% skill. Normally there is no reaction time and the > computer has as many fingers as it needs to control itself and its > character. By adding code to modify the computer's reaction time, or > limiting the number of things it can keep track of, you are lowering the > computer's SKILL to a human's level. Okay, this is simple enough. Most games today, I'd wager, manipulate these values to achieve "tougher" (note I didn't say better) gameplay. I would pick a nit and say that boiling skill down to nothing but reaction times is a bit of a simplification, but I understand what you're driving at here. > TACTICS > > Tactics describe a player's specific reactions to the game environment and > to his or her opponents. In Command and Conquer, if my opponent starts > driving 20 tanks in the direction of my base, I will react by erecting a > few turrets and sending a force of my own out. Tactics vary considerably > from player to player. They can be thought of as a person's style of > gameplay. In Quake if I make a habit of going for health boxes whenever I > drop below 30%, that would be a tactic. Tactics are also rather trivial > to program, and a rudimentary set of tactics can be programmed with a > bunch of if (player does this) then (react with this action) This is a bit shakier as tactics vary so widely from game to game. One can easily come up with tactics for combined arms in a game like C&C, for example, but I'm not so sure about a game like Quake. What are the tactics there....hide when you're being shot at (though in many 3D POV games that *would* be a great improvement)? The very rapidly changing environment that make up 3D POV games can make this partiuclar element difficult to pin down. Tactics are also something the AI could learn from the player, which is something I'd like to see it try to do. If the AI sees that 2 flamethrowers and 2 hovertanks seems to work well as an assalt force for the player, then maybe it ought to consider adding that same formation to its own book of tricks. (Of course, that leads to other problems...recognizing formations (neural networks?), building formations, etc.) > STRATEGY > > Strategy is a little harder to pin down. I would say this is the overall > flow of your game. Another way of putting it is strategy is "A player's > guess at what set of tactics will work to defeat the opponent" How am I > going to win the game? Some are conservative and usually work fairly > well, some are risky, but can really hammer an unsuspecting opponent. > > (Deep Blue analogy deleted) > > After your AI decides on a certain strategy, then you have to be able to > implement it. This would be done by deploying a number of tactics that > make up this strategy, but which ones? and when? Truly the toughest part (IMO). Third Reich has been roundly criticized as having either no grand strategy or simply playing along textbook strategy lines. The first leads to an essentially defensive position while the second can get predictable quick. > A truly successful AI would be able to evaluate its opponent's tactics, > come up with an overall strategy, and translate that strategy into tactics > of its own. A game that can do all this would be incredible. 'Tis true. Steve +=============================================================================+ | _ | | Steven Woodcock _____C .._. | | Hired Gun, Gameware & AI ____/ \___/ | | Wyrd Wyrks Consulting <____/\_---\_\ "Ferretman" | | Phone: 719-392-4746 | | E-mail: swoodcoc@concentric.net | | Web: http://www.concentric.net/~swoodcoc/ai.html (Dedicated to Game AI) | | Disclaimer: Yeah, I work for Lockheed-Martin Real3D....you think | | anybody there ever listens to *my* opinion? Get *serious*. | +=============================================================================+ From Swoodcoc@concentric.net Mon Jul 14 11:02:27 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id LAA24554; Mon, 14 Jul 1997 11:02:26 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id LAA00208; Mon, 14 Jul 1997 11:02:23 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id LAA18250 for woodcock@real3d.com; Mon, 14 Jul 1997 11:01:25 -0400 (EDT) Resent-Date: Mon, 14 Jul 1997 11:01:25 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f From: Swoodcoc@concentric.net Message-Id: <199707141500.LAA13269@galileo.cris.com> Subject: Re: Game AI To: gamedesign@mail.digiweb.com Date: Mon, 14 Jul 1997 11:00:05 -0400 (EDT) In-Reply-To: <199707112235.RAA11449@smtp.gte.net> from "Steve Schonberger" at Jul 11, 97 03:31:33 pm X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Resent-Message-ID: <"gYTL7D.A.uWE.W7jyz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/328 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 2632 Status: RO > This is a point Steven Woodcock brought up. One answer is to have a "who > are you?" page as part of the startup, so that the computer doesn't > instantly kill player two because player one has worked up to a high skill > level. That's annoying, but fixes the problem. An "I'm the only one who > plays this game on this computer" option could be used to avoid asking the > problem unnecessarily. I'm not sure we ever had a good solution offered either, beyond the two you mention above. I'm not entirely convinced that an AI that has been "trained" to be my opponent would, necessarily, make a good opponent for somebody else....play styles influence that quite a bit. On the other hand, when we're talking about AI modifications along the lines of decreasing AI reaction times that maakes perfect sense....if I've played 100 games of Doom and you've played 4, I *ought* to know my way around that keyboard better. > So, new topic (please change the subject line if you run with it): What's > the best way to manage keeping track of user settings (preferences, > difficulty, etc.) on a computer shared by more than one user? I like the simple data file tagged by user name. > I think this was another topic in the AI round-table. Do we make the AI > enemies play by exactly the same rules and information a player uses? (In > chess, of course, other games, maybe.) Or do we make up for weaknesses in > the enemies' AI by giving them "hints from God"? > > In short, does computer-controlled player cheat or play fair? I've seen a trend to try to make the AIs play exactly the same way, with the same rules, as the player. I know that Enemy Nations does this, and most of the upcoming RTS games are promising the same. Steve +=============================================================================+ | _ | | Steven Woodcock _____C .._. | | Hired Gun, Gameware & AI ____/ \___/ | | Wyrd Wyrks Consulting <____/\_---\_\ "Ferretman" | | Phone: 719-392-4746 | | E-mail: swoodcoc@concentric.net | | Web: http://www.concentric.net/~swoodcoc/ai.html (Dedicated to Game AI) | | Disclaimer: Yeah, I work for Lockheed-Martin Real3D....you think | | anybody there ever listens to *my* opinion? Get *serious*. | +=============================================================================+ From t-pauln@microsoft.com Mon Jul 14 14:46:25 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id OAA03879; Mon, 14 Jul 1997 14:46:24 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id OAA01587; Mon, 14 Jul 1997 14:45:48 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id OAA19034 for woodcock@real3d.com; Mon, 14 Jul 1997 14:43:39 -0400 (EDT) Resent-Date: Mon, 14 Jul 1997 14:43:39 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-ID: <4152F7B641AFCF11A49800805F680B3F3F094D@RED-36-MSG.dns.microsoft.com> From: Paul Nash To: "'gamedesign@mail.digiweb.com'" Subject: RE: Game AI Date: Mon, 14 Jul 1997 11:42:42 -0700 X-Priority: 3 X-Mailer: Internet Mail Service (5.0.1458.49) Resent-Message-ID: <"ddGQN.A.ZjE.7Lnyz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/329 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 4858 Status: RO More inline... -Paul R. Nash, Multimedia Developer At Large Microsoft Multimedia Dev. Intern http://www.uiuc.edu/ph/www/pr-nash/ (As usual, I'm not speaking for Microsoft -- these ideas and thoughts are mine alone.) > -----Original Message----- > From: woodcock@real3d.com [SMTP:woodcock@real3d.com] > Sent: Friday, July 11, 1997 4:05 PM > To: gamedesign@mail.digiweb.com > Subject: Re: Game AI > > > > On Fri, 11 Jul 1997, Steve Schonberger wrote: > > > > > hard for the AI to save it's brain to disk? Not in a properly > designed > > AI, I say. For instance, genetic algortihms should allow the saving > of > > the genes to prescribe a persitent state, I would think. So save > that > > for each player or each saved game. > > In fact GAs were one of the methods of building a learning AI > discussed in the sessions, mostly with regards to the Creatures game > and its A-Life techniques. > > One side aspect of this that somebody brought up (it might have > been me, but I'm not sure) is that by having the AI "brain" loaded > rather than coded you can release add-on expansion packs for the game > containing additional AIs. Better yet (separate topic), if the AI > code is accessible to the player (ala Quake-C), then you can sponsor > contests amongst players to see who can develop the most devious > AIs. The best 10 get released on a CD, or posted to a web site. > [Paul Nash] Those are some very cool ideas indeed -- we have a contest here (UIUC) sponsored by ACM every year where they get teams of people together and give them shell code for a mech type game. The teams then have like 24 hours of lab time to plugin the best AI they can come up with, and then the mechs compete to the death in a tournament. It's a cool idea, though I think it'd be better if the AI's were developed over longer periods (though cheating is then a big factor). > > > > > > (Ryan says games should throttle back to match the players' level) > > > > > right? I don't consider this to be like weightlifting, because it's > the > > human brain, which is an entirely different kind of muscle. :) > > I don't know about that, Paul. I can see value in adjusting the AI > so that it's always a bit tougher than the player is. I remember the > first few times I played C&C I was sweating bullets over the AI, but > once my expertise got high enough he ceased to become a threat in > all but the most unbalanced scenarios. > > The trick is capturing parameters which you can use to accurately > judge how experienced a player is. > [Paul Nash] Agreed, the parameters are important. However, what I was disagreeing with specifically was that Ryan seemed to be suggesting that a player will always level out at some maximum potential, and I'm not sure I believe that. However, either way an adjusting AI should be able to compensate for that. (Perhaps change its tactics to force the player to do something different -- maybe the AI has multiple game strategies that it can go between???) > > That said, the AI should definitely *track* the player, and not > > Er....isn't that what Ryan said? > [Paul Nash] Yeah, more or less. :) Like I said, that's not necessarily what I was objecting to, rather the concept of designing for a finite player capabilities limit. > > If you > > could design an AI that can detect specific gameplay deficiencies in > the > > human and somehow adapt to them, that would be very cool. > > Genetic algorithsm have a possibility here, provided the game itself > is "big enough" to permit them time to evolve (they can be notoriously > slow). Consider a space strategy game ala MOO, in which individual > ship designs are modified by the AI over time based on those ships > which do well against the player. If you the player tend to build > lots of fighters and carriers, then gradually over time the AI will > adapt to that by building ships based on surviving ship types > (those that have more anti-fighter defenses). > [Paul Nash] I'd be interested to know if any of those ideas are embodied in AOE type games insofar as "building" people. What if people got smarter as their civilization advanced, or learned from previous battles. I guess Close Combat has some complex soldier AI, but I'd like to see it a little more subtle -- sort of a developing collective consciousness or something instead of "Joe Sixpack is scared and he has three rounds left." That tends to promote micro-management because you know exactly what everyone is doing and feeling and thus feel obligated to correct it all. > > Of course, I am not suggesting that any of this is really easy, > > but all of it has potential. > > That's why they pay us the big bucks! (Well, it's rumored some > folks > get big bucks...I wouldn't know..... ;). > [Paul Nash] Hehe. Something like that. :-) From DPottinger@Ensemble-Studios.com Mon Jul 14 21:12:06 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id VAA20377; Mon, 14 Jul 1997 21:12:05 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id VAA02834; Mon, 14 Jul 1997 21:11:29 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id VAA05482 for woodcock@real3d.com; Mon, 14 Jul 1997 21:10:33 -0400 (EDT) Resent-Date: Mon, 14 Jul 1997 21:10:33 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-ID: <802B50C269DECF11B6A200A0242979EF33CFBA@consulting.ensemble.net> From: David Pottinger To: gamedesign@mail.digiweb.com Subject: RE: Game AI Date: Mon, 14 Jul 1997 20:12:04 -0500 X-Priority: 3 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.0.1457.3) Content-Type: text/plain Resent-Message-ID: <"oZHN1D.A.uOB.e2syz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/330 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 2508 Status: RO > -----Original Message----- > From: Nick Shaffner [SMTP:nshaf@intur.net] > Sent: Friday, July 11, 1997 4:35 PM > To: gamedesign@mail.digiweb.com > Subject: Re: Game AI > > Hey David, remember me? :) > [] Yup! We're still looking for good people like yourself:) > > > You do have to consider the game (as Ryan Drake already mentioned). > No > > AI should ever make the game unfun for people to play. Does that > mean > > that you shouldn't do learning AI then? No way! There is a lot of > room > > for learning AIs to be applied in ways that still make games fun. > > Agreed, in addition, one could design the AI with the primary > purpose > of making the game fun, rather than victory. This certainly be a more > difficult task, but (for example) by assessing the users levels of > interaction with the game, the AI could forcibly create incidents to > break up 'slow' periods - or perhaps not attack the users when he's > down > or running low on resources, etc... > [] 100% agreement. I'd guess (maybe hope is a better word?:) that > it's not too long (within the next two years) before we see game AIs > coming out that can regularly begin to whoop up on everyone w/o > cheating. At that point, I think the next phase will be to make the > AIs more full-featured (as opposed to just making them win) like > you're talking here... > > A thought to ponder: How would you determine what a slow period is? > Is it just the simple calculation of how much interaction the human > has had with the AI? What about using "cheating" to determine where > the human is? Is that okay? > > > the time to code against. Learning is a great way to help alleviate > > that problem and thus create a better playing experience. > > Agreed, so long as it is used properly - it could possibly be > used to > help plug unforseen gaps in game mechanics (perhaps like the sandbag > thing in C&C) ... It can also help make the game more user extensible, > for example in Mission to Nexus Prime (plug, plug) - the user can > actually design/create completely new types of units, and learning is > essential in order to get the AI to the point where it can use them > effectively... > [] Yup, since the trend is to make more and more pieces of games > open-ended, I think it will place more of an emphasis on the game > being able to handle unforeseen things. > > Nick Shaffner > http://www.digifx.net/ > > > > dave > > Dave C. Pottinger > Engine Lead and AI Guy > Ensemble Studios, Inc. > > From DPottinger@Ensemble-Studios.com Mon Jul 14 21:20:23 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id VAA20554; Mon, 14 Jul 1997 21:20:22 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id VAA02865; Mon, 14 Jul 1997 21:20:21 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id VAA07758 for woodcock@real3d.com; Mon, 14 Jul 1997 21:19:25 -0400 (EDT) Resent-Date: Mon, 14 Jul 1997 21:19:25 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-ID: <802B50C269DECF11B6A200A0242979EF33CFBB@consulting.ensemble.net> From: David Pottinger To: "'gamedesign@mail.digiweb.com'" Subject: RE: Game AI Date: Mon, 14 Jul 1997 20:21:39 -0500 X-Priority: 3 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.0.1457.3) Content-Type: text/plain Resent-Message-ID: <"PwsMLD.A.s0B.c_syz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/331 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 2119 Status: RO > -----Original Message----- > From: woodcock@real3d.com [SMTP:woodcock@real3d.com] > Sent: Friday, July 11, 1997 5:49 PM > To: gamedesign@mail.digiweb.com > Subject: Re: Game AI > > [] [snip] > > More on subject, I'm surprised that you actually found strategies to > be similar enough from game to game to make saving such information > useful. If I replay a given scenario (and I'll admit it has to > be pretty compelling for me to do so) I usually try something > different > than I did the time before. > [] The scenario replay learning feature was actually created out of a > desire to have people who didn't win the first time get a different > play experience when they replayed. The goal here was to remove the > need to just optimize your strategy well enough so that you can > eventually beat the scenario with the same thing you tried to do the > last five times. If the AI does something markedly different (yet > still intelligent, etc.) each time you play, then you get a more > enjoyable experience, I think. It does help out replaying scenarios > that you've already beaten, too (that just wasn't the genesis of the > idea). > > Your solution of saving general playing tendencies (which I presume > are things like types of units the player likes to build, battle > formations they prefer, etc.) for randomly generated games seems very > clever. The AI in C&C, for example (just to pick on the game we > picked on in the roundtable discussions) seems to be especially tuned > for the "canned" scenarios and flails somewhat when presented with > a new user-designed map. > [] It's primarily which types of units they like to build along with > a few other things. AOE is very much a rock-paper-scissors game > (infantry slaughter archers, but cavalary rocks infantry, etc.), so > concentrating on the contextual unit prefs of players is what provided > the most useful info and conveniently takes up very little memory:). > We did try a lot of other things, though:). > > [] [snip] > > Steve > > dave > > Dave C. Pottinger > Engine Lead and AI Guy > Ensemble Studios, Inc. > > From stevesch@csealumni.UNL.edu Tue Jul 15 00:29:24 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id AAA24281; Tue, 15 Jul 1997 00:29:23 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id AAA03298; Tue, 15 Jul 1997 00:28:46 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id AAA25823 for woodcock@real3d.com; Tue, 15 Jul 1997 00:27:46 -0400 (EDT) Resent-Date: Tue, 15 Jul 1997 00:27:46 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-Id: <199707150427.XAA21914@smtp.gte.net> From: "Steve Schonberger" To: Subject: Re: Game AI Date: Mon, 14 Jul 1997 21:23:23 -0700 X-MSMail-Priority: Normal X-Priority: 3 X-Mailer: Microsoft Internet Mail 4.70.1161 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Resent-Message-ID: <"GwJ3gB.A.pMG.rvvyz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/332 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 5891 Status: RO > From: Paul Nash > Date: Monday, July 14, 1997 11:42 AM [...] > > One side aspect of this that somebody brought up (it might have > > been me, but I'm not sure) is that by having the AI "brain" loaded > > rather than coded you can release add-on expansion packs for the game > > containing additional AIs. Better yet (separate topic), if the AI > > code is accessible to the player (ala Quake-C), then you can sponsor > > contests amongst players to see who can develop the most devious > > AIs. The best 10 get released on a CD, or posted to a web site. > > > [Paul Nash] > Those are some very cool ideas indeed -- we have a contest here > (UIUC) sponsored by ACM every year where they get teams of people > together and give them shell code for a mech type game. The teams then > have like 24 hours of lab time to plugin the best AI they can come up > with, and then the mechs compete to the death in a tournament. It's a > cool idea, though I think it'd be better if the AI's were developed over > longer periods (though cheating is then a big factor). That reminds me of the old Apple 2 game "Robot Wars". Each player selected rules for the robots to fight by, then sent them into the battle arena, where the computer controlled them all, according to the player-defined rules. The game also came with a bunch of sets of pre-written rules, so that solo players had someone to play against. Cool stuff. In modern usage, it would cool for a multi-user game to treat "bots" as an approved part of the game, rather than as a cheat. Come up with a good "bot", and maybe the publisher will add it to the game as a monster and add the designer to the credits. Of course, it takes a different kind of game design, if human players are to compete against human player with "bot" helpers. [...] > > The trick is capturing parameters which you can use to accurately > > judge how experienced a player is. > > > [Paul Nash] > Agreed, the parameters are important. However, what I was > disagreeing with specifically was that Ryan seemed to be suggesting that > a player will always level out at some maximum potential, and I'm not > sure I believe that. However, either way an adjusting AI should be able > to compensate for that. (Perhaps change its tactics to force the player > to do something different -- maybe the AI has multiple game strategies > that it can go between???) > > > That said, the AI should definitely *track* the player, and not > > > > Er....isn't that what Ryan said? > > > [Paul Nash] > Yeah, more or less. :) Like I said, that's not necessarily what > I was objecting to, rather the concept of designing for a finite player > capabilities limit. Aside from adventure and puzzle games, you shouln't be able to "solve" a game, in the sense of coming to a point of not being able to improve any further. Sure, there comes a point where your reaction time doesn't get any better, and your knowledge of the levels doesn't meaningfully improve, but a game should have depth where even an expert can learn new tricks. That should be the case in any game that doesn't have a real beginning and end, or at least the space to keep advancing should be large enough that hardcore players are still amused by the time the sequal is done. > > > If you could design an AI that can detect specific > > > gameplay deficiencies in the human and somehow adapt to > > > them, that would be very cool. I'm not convinced that would be so cool, at least not from the "fun" point of view. It's obviously very cool from the technology point of view! [...] > [Paul Nash] > I'd be interested to know if any of those ideas are embodied in > AOE type games insofar as "building" people. What if people got smarter > as their civilization advanced, or learned from previous battles. I > guess Close Combat has some complex soldier AI, but I'd like to see it a > little more subtle -- sort of a developing collective consciousness or > something instead of "Joe Sixpack is scared and he has three rounds > left." That tends to promote micro-management because you know exactly > what everyone is doing and feeling and thus feel obligated to correct it > all. I still think that the pathological cases of learning forbid using learning in a game, aside from tuning a few behavior parameters within the framework of a bunch of pre-written rules that are known to produce a challenging opponent. Full learning is too likely to produce the phenomenom of leaving the land attack route completely unguarded if a player attacks ten times from the sea (to use someone else's example). I think reasonable future technology limits us to presenting the appearance of learning, rather than trying to use real learning. Does anyone remember the "Trillion Credit Squadron" game for the _Traveller_ game system? The idea of the game was to build a fleet of space warships, and fight them against other players' fleets. The players were human, but because of how the rules worked, it turned out that optimal play for that game consisted of a strategy that produced very boring games, in part because there was a very specific strategy that always defeated any other strategy, and in part because that strategy itself wasn't very much fun. Finding that optimal strategy was kind of fun, in a math-puzzle sort of way, but once it was found there was no point to playing the game again. If learning produces boring play, don't learn! Getting around the sandbag C&C strategy would be something that learning might be able to do, but pre-written rules could do it too, if play-testing found out how that strategy broke the game. A nice rule-based solution would be for the computer to fall for that strategy for 3 games (or whatever), then start using some pre-written counter-strategy. Steve Schonberger From jjudd@matcom.com.au Tue Jul 15 01:35:43 1997 Return-Path: Received: from mailrelay.real3d.com by real3d.com (SMI-8.6/SMI-SVR4) id BAA25577; Tue, 15 Jul 1997 01:35:42 -0400 Received: from mail.digiweb.com by mailrelay.real3d.com (SMI-8.6/SMI-SVR4) id BAA03389; Tue, 15 Jul 1997 01:35:06 -0400 Received: (from condor@localhost) by mail.digiweb.com (8.8.5/8.8.5) id BAA09171 for woodcock@real3d.com; Tue, 15 Jul 1997 01:33:10 -0400 (EDT) Resent-Date: Tue, 15 Jul 1997 01:33:10 -0400 (EDT) X-Authentication-Warning: mail.digiweb.com: condor set sender to gamedesign-request@digiweb.com using -f Message-ID: From: "Judd, John" To: "'gamedesign@mail.digiweb.com'" Subject: RE: Game AI Date: Tue, 15 Jul 1997 15:00:26 +0930 X-Mailer: Microsoft Exchange Server Internet Mail Connector Version 4.0.995.52 Encoding: 102 TEXT Resent-Message-ID: <"o63-uB.A.yKC.hswyz"@mail> Resent-From: gamedesign@mail.digiweb.com Reply-To: gamedesign@mail.digiweb.com X-Mailing-List: archive/latest/333 X-Loop: gamedesign@digiweb.com Precedence: list Resent-Sender: gamedesign-request@mail.digiweb.com Content-Length: 4484 Status: RO >---------- >From: Steve Schonberger[SMTP:stevesch@csealumni.UNL.edu] >Sent: Tuesday, 15 July 1997 13:53 >To: gamedesign@mail.digiweb.com >Subject: Re: Game AI > >> From: Paul Nash >> Date: Monday, July 14, 1997 11:42 AM >[...] ...snip > >Aside from adventure and puzzle games, you shouln't be able to "solve" a >game, in the sense of coming to a point of not being able to improve any >further. Sure, there comes a point where your reaction time doesn't get >any better, and your knowledge of the levels doesn't meaningfully improve, >but a game should have depth where even an expert can learn new tricks. >That should be the case in any game that doesn't have a real beginning and >end, or at least the space to keep advancing should be large enough that >hardcore players are still amused by the time the sequal is done. In complete agreement >> > > If you could design an AI that can detect specific >> > > gameplay deficiencies in the human and somehow adapt to >> > > them, that would be very cool. > >I'm not convinced that would be so cool, at least not from the "fun" point >of view. It's obviously very cool from the technology point of view! It may not be fun at a lower level of play, but depending on the level of play that the player has chosen (this should be a hard option ) it would force the human player to correct his/her deficiencies based on a increased challenge. >[...] >> [Paul Nash] >> I'd be interested to know if any of those ideas are embodied in >> AOE type games insofar as "building" people. What if people got smarter >> as their civilization advanced, or learned from previous battles. I >> guess Close Combat has some complex soldier AI, but I'd like to see it a >> little more subtle -- sort of a developing collective consciousness or >> something instead of "Joe Sixpack is scared and he has three rounds >> left." That tends to promote micro-management because you know exactly >> what everyone is doing and feeling and thus feel obligated to correct it >> all. > >I still think that the pathological cases of learning forbid using learning >in a game, aside from tuning a few behavior parameters within the framework >of a bunch of pre-written rules that are known to produce a challenging >opponent. Full learning is too likely to produce the phenomenom of leaving >the land attack route completely unguarded if a player attacks ten times >from the sea (to use someone else's example). I think reasonable future >technology limits us to pres