The Other Worlds Shrine

Your place for discussion about RPGs, gaming, music, movies, anime, computers, sports, and any other stuff we care to talk about... 

  • George Lucas calls for better game AI

  • Because playing them is not enough, we have to bitch about them daily, too. We had a Gameplay forum, but it got replaced by GameFAQs.
Because playing them is not enough, we have to bitch about them daily, too. We had a Gameplay forum, but it got replaced by GameFAQs.
 #90948  by Nev
 Thu Aug 04, 2005 3:39 pm
From Gamasutra:

---------------------------

Lucas Addresses SIGGRAPH, Calls for Increased Game AI

Though George Lucas has no planned film projects in the works, the Star Wars potentate announced at SIGGRAPH 2005 that he intends to get involved with his company's video game division.

According to Reuters reports of his SIGGRAPH keynote held earlier this week in Los Angeles, Lucas indicated that he wants to work with LucasArts to improve artificial intelligence and speech recognition in games "to a point where you can talk to the game and it will talk back."

Lucas hopes that advanced AI will not only make games more challenging but improve the storytelling as well. "I think that will change games from first-person shooter narratives to intelligent and challenging first-person shooter-type dramas," he said.

The emphasis on improved technology in voice recognition and AI dovetails with the increased staff recently added to the company and new commitment to in-house game development. LucasArts' next confirmed game is Star Wars Battlefront II, due out in November, after which the company intends to lessen its dependence on Star Wars-based titles.

Other plans outlined by Lucas for his post-Star Wars work are to improve current film editing equipment so that both audio and video can be integrated in the editing process, and to introduce CG technology into Asian film markets, as he prepares a Clone Wars-based TV series, to be created at LucasFilm's new Singapore studio.

Gamasutra will continue to feature the latest product news from SIGGRAPH, and will also be debuting multiple technical and overview-based wrap-ups from the show in the near future.
-Nich Maragos

---------------------------

I wonder why he'd make that announcement at SIGGRAPH? I thought SIGGRAPH was the graphics conference.

By the way, Don, this is what I'm talking about in terms of AI. You need interactive characters with some intelligence to make a game that's more than just a plot on rails.

(Go Nich! Nich Maragos is a friend of Andrew Vestal's...)

 #90949  by Kupek
 Thu Aug 04, 2005 3:57 pm
I think Don's point was that the quality of a static story (plot on rails, as you put it) is not limited by AI. What Lucas is talking about is a dynamic story, where your actions effect the plot itself, in which case AI can be a limiting factor.

Personally, I see that effecting gameplay more than story. But then again, if your actions effect the plot itself in non-trivial ways, then that could be a kind of gameplay.

 #90950  by Nev
 Thu Aug 04, 2005 4:05 pm
At that point my feeling is the distinction starts to blur. And generally I'd agree that a static story doesn't depend on AI, but lack of AI can be a limiting factor on the feeling of immersiveness. Case in point for me would be, say, the scene in FFX where Seymour fights Kimahri until you arrive.

In the game as produced, you can doot around for hours and Seymour and Kimahri will still be locked in eternal combat (I know, because I did it...that section is a great place to level up). With more sophisticated AI - let's say Kimahri and Seymour make decisions and will actually fight on their own - if you took too long, Seymour would waste Kimahri and then come after you himself, or call guards on you, etc., which to me would increase the feeling of immersiveness.

It's long been a peeve of mine that the Final Fantasy series has evolved SO much in terms of graphics and story, but the gameplay hasn't made any similar quantum leaps.

 #90956  by Don
 Thu Aug 04, 2005 5:19 pm
It wouldn't be much of an AI. All it'd do is force you to run to the save point and then run back immediately assuming Seymour is capable of intelligent decision, which, incidentally, can be accomplished by a script. E.g. party runs to save point, and then Yuna says 'Wait we can't leave Kimahri there!' and party runs back.

AI is especially a bad idea in FPS because generally the concept of FPS is that you're a guy who is no more well armed than the opposition (and indeed often vastly outgunned) and certainly vastly outmanned, and now you're supposed to believe these guys are actually smart too? It simply creates an unrealistic or unwinnable game.

In the end the immersiveness of an act is not how smart the enemy is. For something to be immersive, an impossible act really has to be impossible, but if that's true then the game is either impossible, or if not, it is not immersive. There is nothing immersive about going to take on the new dark god of whatever with an alleged less than once in many lifetime chance of winning knowing that you can win this fight about 99% of the time with the right level/equipment/items no matter how dumb or smart the AI is.

Chrono Cross and Super Mario RPG are the closest games I can think of where an AI would actually determine the outcome of the battle because character strengths are relatively fixed. Even then, it's hard to separate from luck or requiring skill. Dark Serge comes to mind, a difficult battle in CC and if he casts Black Hole more than once (or even once) you're almost certainly doomed.

 #90957  by Kupek
 Thu Aug 04, 2005 5:32 pm
You're confusing the idea of "good AI" with "realistic AI."

 #90958  by Nev
 Thu Aug 04, 2005 5:39 pm
Don Wang wrote:It wouldn't be much of an AI. All it'd do is force you to run to the save point and then run back immediately assuming Seymour is capable of intelligent decision, which, incidentally, can be accomplished by a script. E.g. party runs to save point, and then Yuna says 'Wait we can't leave Kimahri there!' and party runs back.

AI is especially a bad idea in FPS because generally the concept of FPS is that you're a guy who is no more well armed than the opposition (and indeed often vastly outgunned) and certainly vastly outmanned, and now you're supposed to believe these guys are actually smart too? It simply creates an unrealistic or unwinnable game.

In the end the immersiveness of an act is not how smart the enemy is. For something to be immersive, an impossible act really has to be impossible, but if that's true then the game is either impossible, or if not, it is not immersive. There is nothing immersive about going to take on the new dark god of whatever with an alleged less than once in many lifetime chance of winning knowing that you can win this fight about 99% of the time with the right level/equipment/items no matter how dumb or smart the AI is.

Chrono Cross and Super Mario RPG are the closest games I can think of where an AI would actually determine the outcome of the battle because character strengths are relatively fixed. Even then, it's hard to separate from luck or requiring skill. Dark Serge comes to mind, a difficult battle in CC and if he casts Black Hole more than once (or even once) you're almost certainly doomed.
I believe there are glaring errors all over this post, but I don't have time to debate all of them at present. Besides, Don, from what I've seen, arguing with you about game design is almost as bad as arguing with Seek about anything else. You usually have your mind made up before you start.

 #90985  by Don
 Fri Aug 05, 2005 1:04 pm
Okay, so you got these 'realistic' AI of special forces and from what I understand, the hero of Half Life 2 is like a lab rat, so it must be really immersive for someone with minimal weapon training to be defeating a team of special forces with no trouble at all (after all people do beat this game, I assume).

Immersive and AI has no meaning with each other in FPS where the hero is the underdog even for 1 versus 1 situations against mere underlings (compare to a RPG, where the hero are obviously favored in 1 vs 1 unless it's a boss). And if you say the game is so immersive you can believe some random dude can take on a team of realistic special forces, which obviously defies common sense, then I'll say that games can cause people to get violent and shoot people too, and I don't even need to defy common sense nearly as much as the former to get that conclusion. After all it is a well known fact that exposing people to violence does desensitize them to the act.

 #90989  by Kupek
 Fri Aug 05, 2005 1:23 pm
You're still making the same confusion. Making in game opponents challenging but still beatable requires more sophistication than making them as effecient as possible at killing the player.

 #90990  by Don
 Fri Aug 05, 2005 1:25 pm
Kupek wrote:You're confusing the idea of "good AI" with "realistic AI."
Realistic AI is not immersive because it is very hard to imagine with the advantage your enemy has in most games that it is actually possible to for them to lose if they possessed intelligence beyond the level of a rock. The existence of powerful enemies necessarily dictates the fact that they're dumber than rocks because otherwise no one would ever win.

What people really want is something like World of Warcraft where a NPC Wizard would cast a root spell if you get close and run away and cast fireball away from melee before getting caught up by players and die anyway. Of course if the NPC wizard was dumb and just stood there he'd have 20% more HP to make up for the fact that he wasn't running away, and assuming most players possess enough intelligence to run after the enemy, the outcome is exactly the same.

Actually, it gets annoying after the 1st time because you already know what's going to happen except you still have to watch the game pretend it's actually smart, instead of just adding 20% more HP to the enemy and stop wasting your time.

 #90991  by Kupek
 Fri Aug 05, 2005 1:29 pm
I never said "realistic AI" is the goal. In fact, my point was the opposite.

 #90992  by Don
 Fri Aug 05, 2005 1:59 pm
With the player relative to enemy power disparity, any AI that is remotely efficient at killing players would win without a problem. Beyond the obvious exception in fighting games, the only exception would be FF battle system type RPG where, through the easy access of items and healing spells, the player can be considered as actually stronger than the boss. Indeed if you take a game like Xenosaga or Skies of Arcadia, you pretty much have infinite HPs as the players as long as your supply of items keep up (and in SoA, it is actually infinite because Fina can use Lunar Light forever if that's all you want to do). But I think such games are just bad designs in the first place.

 #90993  by Kupek
 Fri Aug 05, 2005 2:05 pm
Once again, Don, that was not my point. The basic argument here is that in order for games to be more fun, the enemy and NPC AI has to be more <i>sophisticated</i>. This does not mean it has to be "better at killing the player." As you have pointed out on multiple occassions, many enemy and NPC AI in games is relatively simple, which makes the best thing to do obvious and boring. A more sophisticated AI might be able to enhance gameplay by offering a more varied experience.

Note that this is different from making the AI <i>more difficult</i>.

 #90997  by Don
 Fri Aug 05, 2005 2:23 pm
Kupek wrote:Once again, Don, that was not my point. The basic argument here is that in order for games to be more fun, the enemy and NPC AI has to be more <i>sophisticated</i>. This does not mean it has to be "better at killing the player." As you have pointed out on multiple occassions, many enemy and NPC AI in games is relatively simple, which makes the best thing to do obvious and boring. A more sophisticated AI might be able to enhance gameplay by offering a more varied experience.

Note that this is different from making the AI <i>more difficult</i>.
I'm not seeing how making AI more sophisticated would not lead to a more difficult AI. Further I do not see the reason how a more sophisticated AI would enhance the gaming experience any if it did not make the encounter more difficult.

For example, if you're in a FPS and fighting two guys, and one guy randomly goes berserk from the pressure and shoots the other guy for you, does that make it more interesting? What's the point of adding sophistication that makes the enemy the same or even weaker than they were before?

 #91007  by SineSwiper
 Sat Aug 06, 2005 1:30 am
I think it's unreasonable to call Xenosaga a game with "infinate HP", because 1) the items were scarce, and 2) healing wastes a precious turn. It's fun to take a single point on a game and turn it into the worst flaw you've ever seen, but overall, it's unproductive and usually wrong.

 #91009  by Garford
 Sat Aug 06, 2005 4:13 am
I originally intended to reply to the other AI thread, but somewhere along the line, I got distracted and forgotten about it. This is going to be a fairly long post, so bare with it....

I've work on 3 scheduling applications involving constraint programming, and I can tell you this, scripting AI sucks. Why? It is firstly hard to code, harder to debug and more often then not, the code is not portable.

AI at the simplest level means that based on a given input, do something with the input and produce an output.

This is practically what every electronic application does, just the scope in which we are talking about.

Most modern programming languages are not meant to deal with complicated logic sequences and for a good reason, because computers natively only understand two states, aka. your 0 and 1.

For most applications, that is more then sufficient, but when we want to model human logic, it is not.

A good example is this: Say you want to make a simple application to post a message on this board. We want it to make a post every Sunday.

The pseudo code will probably end up something like this:

if(DAY== Sunday)
{
MakePost();
}

Now, we want to make the program more intelligent. If it is Sunday, the program will make a post about sports if the program is started before noon, else it will make a post about a movie.

if(DAY==Sunday && TIME > NOON)
{
MakePost(Sports);
}
else if (DAY==Sunday && Time <= NOON)
{
MakePost(Movie);
}

Now, we want to extend it even further, it will make a reply, instead of making a new post if an existing post about the topic is available.

if(DAY==Sunday && TIME > NOON)
{
if (post(Sports).exist())
{
MakeReply(Sports);
}
else
{
MakePost(Sports);
}
}
else if (DAY==Sunday && Time <= NOON)
{
if (post(Movie).exist())
{
MakeReply(Movie);
}
else
{
MakePost(Movie);
}
}

At this point of time, look at how ugly and bloated the code is. We are only dealing with 3 choices, check if the day is Sunday, then if the time is before or afternoon and lastly, if a post exist or not.

This mess of code is practically unique to this example, you can’t really rewrite it into a class or function and reapply it to another program. As stated earlier, a computer at its base compares only 2 states, on or off. With so many if-else/switch case/whatever needed to perform the scripted logic, a lot of time is spend by the computer just in navigating down to the proper route to execute.

This is a big reason why MMORPGs and such have little to no intelligence for their mobs. Behavior differences between a level 1 and an uber mob are usually very little. If it take an extra 0.01 sec for a mob to navigate down to the proper action, on a server with 1000 people will mean an extra 10 sec of computing time is ate up. A switch/case base on total hate is much easier to implement, and less taxing on the computation requirements.

Most commercially available optimized AI engines cost so much due to amount of development effort needed to produce it, and using those engines for games are not really economically viable and even then, they are slow compare to the other processes going on in a game.

I’ve use ILOG Solver before for one of the applications, and it took the engine a good 50mins to work out a schedule involving just 20 people, with difference constraints. Eg. Person A cannot work on Monday, B can only work from 9am to 10am etc…….

Next, there’s a fine line between Artificial Intelligence and what I call Cheating Intelligence.

Decision made by a computer comes from certain inputs, but how and what are these inputs?

Basing on the previous thread, where Don talk about the cleric killing script:
1. Determine every person who can heal.
2. Sort heal effectiveness in descending order (guy who can heal the most at top) by class (i.e. all clerics are considered the same).
3. Kill a random person with highest healing effectiveness. (this is assumed to always be possible. If not the boss is not capable of winning against the players to begin with, and any AI is futile).
4. Repeat until no more peole can heal, then add all the people who can resurrect (in case some people can resurrect but cannot heal) and repeat 1-3. After that the AI is free to do whatever it wants.
How is the mob going to determine who can heal? By “observing” the player or simply calling the function look_up_player_class()?

If the mob is going to “observe” the player, how is the mob going about to “observe” the player?

Remember, a computer is a non-living thing, it will and would also do the same thing, given that conditions are the same. If you spoon feed it data, it will always use that data and do the same predicted output. If you implement a sequence for “observing”, it will always execute it in that particular order. Not to mention, doing either of these once again eats up computation time.

Computers are not meant to be “random”. Most random function involves getting the .0001 sec of the computer’s time or use a seeding table to achieve random numbers.

I learn this the hard way in one of the applications I write that schedule production timing.

No matter what quantity of steel needs to be produce, steel will always be scheduled to be produce in night, because steel production has the lowest priority. Even if there is nothing being produce in the afternoon, steel will still take the night slots.

In order to make computer “random” they have to learn.

Most of you should know about Neural Networks or pseudo learning such as Fuzzy Logic.

Fuzzy logic is basically asking a bunch of “ifs” and from there, conclude a result and stick with it.

Neural Networks are basically a bunch of artificial neurons link together. Each artificial neuron takes in one or more input and produce out exactly 1 output. They are then link together and over time, some neurons will “die” off, some get replace, etc.

Using Don’s example again, we can break it down to find class, sort heal efficiency, kill.

Layout will probably be something like this.

Player info - Find class – Sort class – Sort heal efficiency – Kill

Say there are only 3 players, Alice (cleric), Bob (warrior) and Charlie (paladin).

The possible routes identify by the computer might be:

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice)

The computer first try to kill Alice, but Charlie manage to keep her alive. At next AI refreshment, computer reanalyze situation.

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Charlie)


Computer takes route 2, and attacks Charlie.

Computer fails again, next AI refreshment:

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Charlie)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Bob)

Computer takes route 3, attacks Bob

Computer fails, next AI refreshment:

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Charlie)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Bob)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice then Charlie)

In this example here, Kill Alice then Charlie means the computer attacks Alice for a bit, then attacks Charlie

Computer takes route 4, moderate success, next AI refreshment

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Charlie)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Bob)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice then Charlie)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice 10% then Charlie 90%)

Computer takes route 5, some success, next AI refreshment

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice then Charlie)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice 10% then Charlie 90%)

Player info(Alice, Bob, Charlie) - Find class (Cleric, Warrior, Paladin) - Sort heal efficiency – (Cleric, Paladin, Warrior) – Kill (Alice 20% then Charlie 80%)

Computer discard route 1 to 3 because of no apparent success. Tries etc…..

Note, this is a VERY simplistic look at neural networks. In reality, it is much more complicated especially the decay and reinforcement of routes.

Now that I cover most of what AI is, I have to say that what Lucas is looking at is not really on AI Behavior, but more on event scripting. I.E the ability for a game to response to on going events. You guys on the other hand are looking at AI Behavior…..

 #91011  by Zeus
 Sat Aug 06, 2005 8:56 am
Kupek wrote:I think Don's point was that the quality of a static story (plot on rails, as you put it) is not limited by AI. What Lucas is talking about is a dynamic story, where your actions effect the plot itself, in which case AI can be a limiting factor.

Personally, I see that effecting gameplay more than story. But then again, if your actions effect the plot itself in non-trivial ways, then that could be a kind of gameplay.
Yeah, I think he's thinking much more of a real interactive-movie type game, not really like anything we've seen now. Something that doesn't need a controller.

Lucas' empire has done a shitload for technological advances, let's see if this one works out for him

And I think Garford wins for the longest post with no pictures with this new board

 #91067  by Don
 Sun Aug 07, 2005 7:47 pm
Why is the AI cheating when the AI you're up against are supposed to beings of unimaginable power and intelligence? Why shouldn't they already know who is a cleric by just looking at them? After all you, as a player, can figure this out quite easily. In most games the opposition is simply too strong to 'learn' anything. The only thing an AI would learn is that killing a cleric is pretty darn easy and it usually assures victory because there is no penalty for such a strategy. In your classic good versus evil fights whether it's a book or movie or a game, generally the bad guys don't make a beeline to the your wizards/priests not becasue they don't know this but because doing so can have significant drawbacks. This simply is not an observed playing mechanic and if it's implemented it might be too abusable (you'd just purposely have your wizards/priest/whatever overaggro if there is significant penalty to go after those guys first).

Back to the scripting side of intelligence, I don't see how scripted events are related to technology and it's not like people say 'well we could have a cool script but let's have nothing instead', so I think calling for better scripts is pointless. If you look at a game like FFX you can tell they tried to have some scripted battles that break from the usual 'heal self when low on HP and kill boss' RPG fare. I'm not sure how anyone's suposed to get good at doing scripts without just trying a lot of them until finding one that works, though.

 #91083  by Garford
 Sun Aug 07, 2005 10:49 pm
Don Wang wrote:Why is the AI cheating when the AI you're up against are supposed to beings of unimaginable power and intelligence? Why shouldn't they already know who is a cleric by just looking at them? After all you, as a player, can figure this out quite easily. In most games the opposition is simply too strong to 'learn' anything. The only thing an AI would learn is that killing a cleric is pretty darn easy and it usually assures victory because there is no penalty for such a strategy. In your classic good versus evil fights whether it's a book or movie or a game, generally the bad guys don't make a beeline to the your wizards/priests not becasue they don't know this but because doing so can have significant drawbacks. This simply is not an observed playing mechanic and if it's implemented it might be too abusable (you'd just purposely have your wizards/priest/whatever overaggro if there is significant penalty to go after those guys first).
It's cheating simply because it is not intelligent behaviour. I don't care about power differences and what's not, I'm talking about just purely AI alone.

Last I check, mobs don't have their abilities stamped on their foreheads. Player know the abilities of mobs by a learning process which consist of fighting them, observing how they react, and from there conclude what they are and what they can do. This is unless you visit a spoiler site which reveals the ability and statistics of the mob.

In order for AI to be truely intelligent, it has to have this observe and learn behaviour, else at the end of the day, it is just hard coded predictable behaviorable patterns.

Quoting mysef:
Remember, a computer is a non-living thing, it will and would also do the same thing, given that conditions are the same. If you spoon feed it data, it will always use that data and do the same predicted output. If you implement a sequence for “observing”, it will always execute it in that particular order. Not to mention, doing either of these once again eats up computation time.
As you have mention, if your idea is implemented in games, it will be abused if the mob does not know charging towards your robe classes might have drawbacks. That is not much different from the behavior of mobs now, which is predictable. Sure, you can code it to only charge after a player if he is alone, due to x, y , z, whatever you special circumstance, but that is once again hard coded behavior that is predictive, and will always fire off if all those things happen.

That's why I call it Cheating Intelligence. It tries to do intelligent things, but lack the full range of variable input, that is needed to make a decision. This is not true artificial intelligence.

A good AI to me means that the computer must be able to identify the situation by itself, without resorting to calling get_xxx() of the associate classes. It must then be able to process these inputs in a weighted manner and produce a special do_xxx(). It will then execute do_xxx() and find and analyse if the output done via do_xxx() is effective, can be improve etc......

This will probably not happen till we are in our 40-50s though……..
Back to the scripting side of intelligence, I don't see how scripted events are related to technology and it's not like people say 'well we could have a cool script but let's have nothing instead', so I think calling for better scripts is pointless. If you look at a game like FFX you can tell they tried to have some scripted battles that break from the usual 'heal self when low on HP and kill boss' RPG fare. I'm not sure how anyone's suposed to get good at doing scripts without just trying a lot of them until finding one that works, though.
It is not really 'well we could have a cool script but let's have nothing instead' it is more of 'well we could have a cool script but that’s too much work and dateline is approaching, let’s have nothing instead.'

Scripting, while not as hard to do as AI, still involves a lot of logic statements. As programmers, we try to evade from them as much as possible for reasons I stated earlier: It is hard to code, harder to debug if something goes wrong and finally, it is often not portable.

The reason why RPGs are pretty much go from A to B, and sub quest don’t affect games much, if because we, as programmers are often too lazy to code in these event scripts or skim on them.

This is what I believe George Lucas is trying to change. All his games are based around the same premises, i.e. Star Wars and are of the same type, so portability is not such a big issue here. Having a good library of scripts will then help make future games more interactive and programmers will happily implement them, as they don’t need to code it from scratch.

 #91084  by Don
 Sun Aug 07, 2005 11:04 pm
I don't see why you think the NPC is cheating when it 'knows' who is the cleric first. Presumably you've fighting things that of unimaginable power that have dispatched similar adventurers with ease, so obviously it knows what the average party looks like. Sure maybe your average goblin doesn't need to be very smart, and maybe even a really powerful inanimate guardian can be dumb too. But how the heck does some ancient god/dragon/guy-going-to-be-a-god can't pick up the fact who are the weakest members of a normal party?

As for the mechanics of a cleric killer script, I see the limitation being the game engine themselves as opposed to programming. Currently there is no game mechanic that prevents you from going after the weakest link with impunity. There is no sense of a 'zone of control' like a strategy game that prevents you just from easily attacking the weakest enemy. I think we need something like a supporting fire concept from strategy games, so for example while bomber is always good against tanks, you might not be able to make such an attack if the tanks are supported by anti air, which means sometimes the best choice might be for the bomber to attack the anti-air first instead of eating free hits from the AA.

Having a good script is more of a designer challenge as opposed to programming. Now there might be bugs and quirks to get a good script going but the quality of the script ultimately depnds on the designer not the programmer.

 #91089  by Garford
 Mon Aug 08, 2005 12:57 am
I've already explain why I mean by cheating. I call it cheating because the computer can and will always get the data and produce a similar result at all times.

That is NOT an intelligent behavior, which is what I have been driving at. What is so intelligent about having all data given to you, and then acting on it?

I’m NOT saying that the computer is cheating by knowing everything about you. What I have been stressing about is the process in "knowing everything".

Your all intelligent boss still needs time to cast divination spells or whatever before he should realistically know everything about the character. In computer programming context, this means requesting for information, rather then have information being automatically being feed it. There is a small, but very important difference between the two.

It’s down to

1) I, Dragon A, find out from my memory/spells/etc about you, you cleric, me kill you

Compare to

2) I, Dragon A, you cleric, me kill you.

In case 2, there is no intelligence, in one there is. For 2, it is simply “cheating” to appear intelligent.

You are seriously undermining programming related issues. Sine and Mental can probably elaborate on this further since they have experience in game development, but I can tell you this, what you think can be done, and what actually can be done, is often vastly different.
Don Wang wrote:As for the mechanics of a cleric killer script, I see the limitation being the game engine themselves as opposed to programming. Currently there is no game mechanic that prevents you from going after the weakest link with impunity. There is no sense of a 'zone of control' like a strategy game that prevents you just from easily attacking the weakest enemy. I think we need something like a supporting fire concept from strategy games, so for example while bomber is always good against tanks, you might not be able to make such an attack if the tanks are supported by anti air, which means sometimes the best choice might be for the bomber to attack the anti-air first instead of eating free hits from the AA.
If you are talking about MMORPGs, there is a collision, position and line of sight engine already build into every MMORPG out there in the market, and with a combination of those, it is technically possible to prevent the computer from “going after the weakest link with impunity”. This is not in place for behavior control simply because it is too computation intensive and will be a bitch to code and once again, this piece of code after writing is unique to that mob at that specific location. You cannot reuse it in another place without severe modification. This is not wise economically.
Don Wang wrote:Having a good script is more of a designer challenge as opposed to programming. Now there might be bugs and quirks to get a good script going but the quality of the script ultimately depnds on the designer not the programmer.
There are some things severely wrong with this statement.

Once again, I shall quote myself.....
Most modern programming languages are not meant to deal with complicated logic sequences and for a good reason, because computers natively only understand two states, aka. your 0 and 1.

For most applications, that is more then sufficient, but when we want to model human logic, it is not.
You think as a human, you can accept infinite inputs and produce out a near equal infinite amount of outputs. A computer however, can’t do this natively. At its core, it understand only 0 and 1.

Design is easy, but actual implementation is where the problem lies.

I’m strictly speaking not a programmer. I am more of a business/system analyst then a programmer at this point in time, but I have a decent programming background in order to support my design decisions. Kupek and the rest can probably elaborate more on this.

I’ll give you a real life example I encountered. I was developing some remote robotics control using alternative devices such as PDAs. We decided to use Java so that it is platform compatible. We manage to find some Java bases firmware to replace those currently in the robotics system, and then we happily start designing use-cases and such, and produced out some nice pseudo code. Then we handed the design specifications and other documents to the programmers.

A week went by, preliminary coding was done and we did testing. Boom, one of the systems crashed and caused a small fire. Why? Apparently we cannot have a switch-case block nested in an if-else block as it will cause a thread corruption in the JVM running on that particular robotics system, messing up the sensors feedback and causing the motor to spin in the wrong direction.

My design has a need to use that, but it cannot be done, so what can we do? End up, the programmers had to recode the sequence using a bunch of nested if-else blocks to resolve the problem.

It is a design issue or an implementation issue? That’s quite hard to gauge. Sure, you can blame me, the designer of the sequence for not checking simple stuff like this, but note that this piece of code work for other machines. It just somehow refuses to work, and end up causing a corruption on this specific machine.

Things often happen like this at the implementation phrase, and as a result, we have to redesign or scrape functions. I believe this occurs in game programming as well, since it is not that significantly different.

The designer might have the best of ideas and such, but due to certain limitation that he did not foresee, his ideas might thus fail. Limitation in this case can be stuff like hardware/software/language constraints to things like an incompetent programmer.

At this point, we are just talking about implementing what the designer has made. We still have issues such as execution speed, hardware requirements that are needed in order to make the implementation feasible.

Say we have a very complex and good RPG event system. If you do side quest A, B, C in less then 12hrs, the final boss will have only 50% hp, but if you do it in more then 12, the game will end.

Due to the complexity of the script, originally the game can run on say 512mb of ram, now it needs an extra 200mb. What will you do? Scrape the game or remove the script or refactor code or whatever?

Once again, these are implementation limitation, rather then pure design. The designer will probably say “I want this, you already got it working, make it better” and the programmer has to figure out a way to make it feasible.

I got a feeling I will be talking about software process management soon………

 #91091  by Nev
 Mon Aug 08, 2005 1:48 am
Sine, seriously, just tell me, did you delete the posts I was mentioning or have you never seen them and don't know what I'm talking about.

 #91164  by SineSwiper
 Wed Aug 10, 2005 1:17 am
Mental: Yes, I deleted them. Shut up!

Anyway.... I think Garford is talking about how the computer abuses its access to information. Let's take an example from fighting games. In SFA2, there was a behavior that my friend and I observed with Ken. We called it the "Dragon Punch button". Damn near every time you hit fierce up close, he would dragon punch you in that instant. It was as if you were controlling Ken.

The point is that the computer was abusing information and its lightning reflexes, by acting on something before it was even displayed on the screen. It was likely something hard-coded into its AI. Instead of using hard coded elements and scripts, AI should be more dynamic than that.

 #91173  by Nev
 Wed Aug 10, 2005 3:32 pm
SineSwiper wrote:Mental: Yes, I deleted them. Shut up!
I will not. The only right you had to do that was the "divine right of kings" thing you seem to do every once in awhile around here, i.e. "I don't like this post/thread, so I'm locking/deleting it." It's a shitty deletion policy. Part of that post may have been an argument with Seek, but the rest had some of my thoughts on actual AI, and I thought there were some good points of discussion there.

 #91179  by SineSwiper
 Wed Aug 10, 2005 5:54 pm
It did not serve a purpose to the thread that was being discussed, just like this conversation right now. I would suggest that you and Seeker each get along.

 #91181  by Zeus
 Wed Aug 10, 2005 6:02 pm
Don Wang wrote:Why is the AI cheating when the AI you're up against are supposed to beings of unimaginable power and intelligence?
Because it's not fun if it's too hard. Remember, games are supposed to be an escape from reality, not a copy of it