open All Channels
seplocked EVE General Discussion
blankseplocked GIVE US NPC AI
 
This thread is older than 90 days and has been locked due to inactivity.


 
Pages: first : previous : ... 8 9 10 11 [12] 13 14 15 16 ... : last (21)

Author Topic

Vallista
Gallente
665 Almost Evil
Serenity.
Posted - 2008.12.06 22:39:00 - [331]
 

With regards to missions, I would like to see the NPCs actually fit their ships, allowing fewer numbers of them for the same risk and reward. At the moment, it seems like the NPCs have 1 weapon, a lousy tank, and for the most part, only elite units in level 4s use debuffing modules, like webbers, scramblers, and ECM.

A ship should fit an appropriate number of guns. In most missions, I can ignore destroyers because their damage is a joke. However, with 8 hardpoints, a destroyer should be putting out significant damage, even using small guns or missiles.

This would cause the npcs to become far tougher, allowing for a reduction in number, leading to less lag. However, you'd have to adjust the droppable loot and ISK reward per ship.

Bartholomeus Crane
Gallente
The Crane Family
Posted - 2008.12.08 17:15:00 - [332]
 

Originally by: CCP Incognito

Hope that answers the question.



Yes, that does answer a lot of questions. And like all answers, it poses a lot of new ones as well. But let's take it one at a time here.

As I expected, the 'AI' in EVE consists of one class, or program, or script, or one how-ever-you-want-to-describe it. Obviously, this leads to the same cookie-cutter behaviour we can all witness right now. It also seems like it is totally embedded in the current system without a lot of flexibility.

So, taking that out and replacing it with a setup that allows for the plugging-in of different scripts for different NPCs is the way forward. And for this to work, you'll need to devise a way to describe or program that behaviour in a way that is generic for all NPCs but expressive enough to allow truly differing behaviour for different rats and workable for the designers. So that's also good and a step forward.

So I'm going to assume now that you've been successful with that. You'll have NPCs that will still use the old system (but perhaps reprogrammed in the new setup), and you'll have a set of NPCs that use newly designed behaviour. What then?

Well, you can't really expect the designers to go over all NPCs and start designing new behaviours for all of them. Even if you use sub-classed NPCs, that would be a lot of work, and by the time you'll be done, you'll have to start all over again because probably some things have changed. And you'll want to change it because you want to provide a level playing field for the players.

This is where context comes in. Currently context consists of the parameters applied to the scripts you use, and that's basically it. Correct me if I'm wrong, but I have the distinct feeling that NPCs currently aren't even aware of their surroundings in EVE. I'm not sure to what extend this is true, but as example of how I see it, it appears that the scripts simply turn on a certain module when it is available with maybe a random chance thrown in, and with a refresh cycle. And it does this whether it is close to the target or not, out of CAP or not, etc.

This will not get you far when it comes to realistic NPC behaviour and I wouldn't be surprised if your designers will soon be knocking on your (scrum's) door, asking for more context to base the new behaviour on. How much you'll have to supply to the script depends a lot on performance requirements, but some will no doubt have to be made available.

Now, what has this got to do with writing scripts and the manpower problem you'll have when you want to redo NPCs scripts? Well, if you put more context in, you'll be able to write more intelligent scripts. It'll still be a script, and therefore static, but it will be more capable of handling diverse contexts (environments). And as such, you'll be able to handle more situations with one script, thus meaning you'll have to write less of them. So you have more realistic behaviour and have saved a lot of manpower at the same time. Nice for on the backlog?

But, and this is where true AI comes in, at the stage where you have both parameters and context, you'll be in a position to plug-in a true AI as well. See it as a self-adaptive script. It isn't necessary to do so ever where ofcourse. In circumstances where you want static behaviour, you could refrain from doing so. This means that designers just have to tell the AI what a successful behaviour is, and it will find out on its own how to get it. You'll still want to verify it, but that'll provide more realistic behaviour with even less manpower need.

And then you can also replace the parameters (not the rest of the context) with a derivative based on ships, modules, skills etc. With self-adaptive AI, you'll have realistic behaviour, behaviour adaptive to module (etc.) changes, and less manpower need over time.

There are a number of other considerations along the way, but won't that also be something interesting for the backlog?

N0N4M3
Minmatar
Oberon Incorporated
Morsus Mihi
Posted - 2008.12.08 17:32:00 - [333]
 

I've been playing since 2003, I don't think that the belt rats should change at all. Well the jamming of the Guristas is pretty damn annoying.
I'd like it if just the mission & anomalies npcs would be changed since 0.0 rats are a way of income to us. Changes would probably make people team up when ratting, I don't know if thats a good thing or a bad thing.

Bartholomeus Crane
Gallente
The Crane Family
Posted - 2008.12.08 20:02:00 - [334]
 

Originally by: N0N4M3
I've been playing since 2003, I don't think that the belt rats should change at all. Well the jamming of the Guristas is pretty damn annoying.
I'd like it if just the mission & anomalies npcs would be changed since 0.0 rats are a way of income to us. Changes would probably make people team up when ratting, I don't know if thats a good thing or a bad thing.


So what you are basically saying is that you don't mind if things get more challenging for everyone else, as long as you can get easy Isk?

Well, what I'm saying is that what you are doing is a grind. And I'm not into wasting my time in meaningless repetitive tasks. There is an opportunity here to make a lot of players' experience a lot more rewarding. And if that means that you'll actually have to think about the things you do, than that is a small price to pay. I'm saying that the risk-reward 'balance' has been skewed for a long time now when it comes to Isk from NPCs, and it's time something innovative is done about it.

Whether that means that the reward needs to go down I leave to the designers of this game. One thing I'm quite sure of is that the risk for getting that Isk can't come down any lower. I don't think you can have negative risk you see.

Jarvis Hellstrom
Gallente
The Flying Tigers
United Front Alliance
Posted - 2008.12.08 21:50:00 - [335]
 

Originally by: Vincenzo Delloro
That way, PVEers get their unpredictability without sacrificing the deep strategic thinking EVE is famous for.


Deep strategic thinking needs to be more than "Go read the mission on a website. Fit to beat said mission. Go AFK while your ship does so."

Randomness in missions is good. It encourages tactical thinking and response in addition to the strategic.

Strategies can be 'plan for most likely rat behaviour of a given race.' Tactics can be, 'Now deal with what's actually in front of you.'

Remember the old saying, no plan survives first contact with the enemy.

Add Hellstrom's caveat to that - "In mission running in EVE, nor should it!

Bartholomeus Crane
Gallente
The Crane Family
Posted - 2008.12.09 02:44:00 - [336]
 

Originally by: Jarvis Hellstrom
Originally by: Vincenzo Delloro
That way, PVEers get their unpredictability without sacrificing the deep strategic thinking EVE is famous for.


Deep strategic thinking needs to be more than "Go read the mission on a website. Fit to beat said mission. Go AFK while your ship does so."

Randomness in missions is good. It encourages tactical thinking and response in addition to the strategic.

Strategies can be 'plan for most likely rat behaviour of a given race.' Tactics can be, 'Now deal with what's actually in front of you.'

Remember the old saying, no plan survives first contact with the enemy.

Add Hellstrom's caveat to that - "In mission running in EVE, nor should it!



I agree, see what I want to see is both strategy and tactics in a mission.

I don't see a problem with certain faction NPCs flying certain ships, and fit those ships in a certain way. That adds character to the game. Eventually this will be figured out by players and be put on some website maybe, but I don't see a problem with that.

But when you enter the mission, I want to see unpredictable behaviour. Yes, I may have noticed before that a certain rat is fitted in a certain way, and I may have fitted my ship to counter that. But then I want to see that rat use its ship and fitting in natural and effective way, having to act just like a player would. I want it to alter its behaviour according to my actions and according to the circumstances. Over time I want that rat to change it behaviour to what other players have done to it, so it will adapt its behaviour from mission to mission as well.

For that you either need a really intelligent script written specifically with the ship and fittings in mind, or maybe a collective of intelligent scripts working in cooperation, or a self-adapting script, that uses the ships and fittings and the context to change its behaviour.

The former would work well in most circumstances, but for real adaptability, you probably need the latter.

That way you have some idea what you are up against and base some strategic decisions around that, but when you are up against the NPC itself, that will only give you somewhat of an advantage, and all bets are off because what will exactly happen will change every time you engage. That will make every mission slightly different, as if you're flying it for the first time every time you fly that mission. I would be quite happy if that's realised.

Phantom Slave
Universal Pest Exterminators
Posted - 2008.12.09 06:15:00 - [337]
 

Originally by: Bartholomeus Crane
I agree, see what I want to see is both strategy and tactics in a mission.

I don't see a problem with certain faction NPCs flying certain ships, and fit those ships in a certain way. That adds character to the game. Eventually this will be figured out by players and be put on some website maybe, but I don't see a problem with that.

But when you enter the mission, I want to see unpredictable behaviour. Yes, I may have noticed before that a certain rat is fitted in a certain way, and I may have fitted my ship to counter that. But then I want to see that rat use its ship and fitting in natural and effective way, having to act just like a player would. I want it to alter its behaviour according to my actions and according to the circumstances. Over time I want that rat to change it behaviour to what other players have done to it, so it will adapt its behaviour from mission to mission as well.

For that you either need a really intelligent script written specifically with the ship and fittings in mind, or maybe a collective of intelligent scripts working in cooperation, or a self-adapting script, that uses the ships and fittings and the context to change its behaviour.

The former would work well in most circumstances, but for real adaptability, you probably need the latter.

That way you have some idea what you are up against and base some strategic decisions around that, but when you are up against the NPC itself, that will only give you somewhat of an advantage, and all bets are off because what will exactly happen will change every time you engage. That will make every mission slightly different, as if you're flying it for the first time every time you fly that mission. I would be quite happy if that's realised.


I don't want to sound like an ignorant ass or anything, but what kind of changes could NPC's really receive that would make missions different? Are you thinking along the lines of t2 frigates in missions, where right now they scram you at about 1 to 1.5k away, but if they learn it doesn't work then they start scramming from further out? 10km? 15? 20? Out of web range at 20 (probably 15), that makes them harder to kill. Is this what you mean?

I'm an ignorant fool when it comes to AI. All I know is that if it works in a game I play, I'm happy. If it doesn't, I'm not.

ollobrains2
Gallente
New Eve Order Holdings
Posted - 2008.12.09 08:14:00 - [338]
 

one of those things solo players will whine if they are on the tail end off to smart AI

Thebro Nobrunder
Schrodinger's Renegades
Posted - 2008.12.09 15:18:00 - [339]
 

Originally by: Phantom Slave

I don't want to sound like an ignorant ass or anything, but what kind of changes could NPC's really receive that would make missions different? Are you thinking along the lines of t2 frigates in missions, where right now they scram you at about 1 to 1.5k away, but if they learn it doesn't work then they start scramming from further out? 10km? 15? 20? Out of web range at 20 (probably 15), that makes them harder to kill. Is this what you mean?

I'm an ignorant fool when it comes to AI. All I know is that if it works in a game I play, I'm happy. If it doesn't, I'm not.


Think of everywhere npc's act "really dumb"
for exaple, if you bring a heavily tanked hic into a mission, and 3 mega's for damage. spending all your time attacking the hic is stupid.

using tracking disruptors on a raven is stupid.

racing up to a missile boat and then slowboating is stupid.

Having a target npc in a mission, destroying everythign else in the mission, and then waiting to get popped, is stupid.

that sort of thing.


Thebro Nobrunder
Schrodinger's Renegades
Posted - 2008.12.09 15:32:00 - [340]
 

One thing which I would love to see...
Missions which require (or at least are very difficult without) multiple people.
A little bit of AI could go a long way towards this.

Bartholomeus Crane
Gallente
The Crane Family
Posted - 2008.12.09 21:05:00 - [341]
 

Originally by: Phantom Slave
I don't want to sound like an ignorant ass or anything, but what kind of changes could NPC's really receive that would make missions different? Are you thinking along the lines of t2 frigates in missions, where right now they scram you at about 1 to 1.5k away, but if they learn it doesn't work then they start scramming from further out? 10km? 15? 20? Out of web range at 20 (probably 15), that makes them harder to kill. Is this what you mean?

I'm an ignorant fool when it comes to AI. All I know is that if it works in a game I play, I'm happy. If it doesn't, I'm not.


Not an ignorant ass at all. Yes, that is one example of what self-adaptive AI can do. Make behaviour of NPCs appear intelligent. With a little work, you can get them to cooperate as well, well, at least as good as some pre-set tactical plan without too much work.

The whole principle is the same as with humans really. Why don't you web at 1.5km? Because you'll get shot to shreds by short range weapons if you do and you lose a lot of speed at such distances. So, after losing a couple of tacklers, you learn to keep your speed up and fly at maximum range of you webber, and maybe last a bit longer and maybe even survive. It may take an AI a bit longer to learn, because humans are quite good at this type of thing, but eventually it will get it.

Now, you can all write a script that does this as well. Simply state that what the NPC should do basically. But then when things change, say webbing range, you'll have to go over all those scripts again and change those parameters. Major headache considering the many NPC types we have in EVE.

Phantom Slave
Universal Pest Exterminators
Posted - 2008.12.09 23:07:00 - [342]
 

Ah I understand a little bit more of what you're saying. Could make for more interesting missions. Would the adaptive AI be in a central cluster, where all NPC's will eventually learn all these new tactics? If so, would that not pose a problem for newer players doing missions for the first time? Imagine going into a mission, not knowing anything about what you're doing, and having to fight mission rats that have 3 years of "learning" to become the best they can. Serious problems for a newbie! Then again I guess we do learn quickly, but losing a ship and full fittings within the first 1-2 missions would be a very big let down for the player and probably cause the learning curve of this game to peak even faster.

Bartholomeus Crane
Gallente
The Crane Family
Posted - 2008.12.10 00:09:00 - [343]
 

Originally by: Phantom Slave
Ah I understand a little bit more of what you're saying. Could make for more interesting missions. Would the adaptive AI be in a central cluster, where all NPC's will eventually learn all these new tactics? If so, would that not pose a problem for newer players doing missions for the first time? Imagine going into a mission, not knowing anything about what you're doing, and having to fight mission rats that have 3 years of "learning" to become the best they can. Serious problems for a newbie! Then again I guess we do learn quickly, but losing a ship and full fittings within the first 1-2 missions would be a very big let down for the player and probably cause the learning curve of this game to peak even faster.


Yes, that would be a problem. But that's not necessarily a problem with intelligent NPCs but with balance. For example with the new player missions, you could provide NPCs with poor ships or skills or fittings (or the equivalent derivative parameters for the AI). So although the behaviour of the NPC is optimised for that ship, skill-set, and fittings, it'll still be easy to kill because, well, it doesn't have that much to work with. So new players in their rookie ship will be put up against NPCs with new player stats and fits in a noob ship.

Personally, I think that is much easier to balance than balancing on NPC behaviour. You could even do it dynamically, fitting the mission to the player. It'll also parallel between how players work and how NPCs work. It also separates balancing of the NPCs from optimising the AI, making it much easier to handle. This means mission designers don't need to worry about AI and behaviour etc., just about the parameters and context within the AI needs to work. Mission to difficult? Well lets downgrade the fittings a little and see what we end up with (note that this can be automated as well, using the same mechanisms, but I'll leave the meta thing for now, before we go into using the same mechanism to test overall balancing etc.).

As for where you'd put the AI in the architecture. Well, you could use a single node or a couple to collect and evaluate all the data and then pass this back to the live cluster in an online feedback loop, yes. But first you'd want to test this thing thoroughly before you'd move onto such an automated process. For now, I don't think CCP is even thinking about the self-adaptive part, let alone the online continues feedback loop option. But, well, it's certainly possible, in fact, I've done it before in other circumstances.

CCP Incognito

Posted - 2008.12.10 10:42:00 - [344]
 

Originally by: Phantom Slave
...


Yes that is why we want to be able to swap out the basic script for a given ship. This will allow use to leave the 1.0 system NPC just as stupid as they are now, then as you move down the Sec the belt rats start getting the more intelligent rats added in to the mix. By the time a new player hits a 0.5 system they should have encountered a more advanced AI that has demonstrated some of the new features. By the time they hit 10/10 complexes they should have seen all AI features in isolation. The 10/10 should be using all the features to provide the hardest fight possible. This is the idea situation and will be years before we are at this stage.

As I said before we don't have time to do an adaptive AI, so what you will end up seeing is scripted AI behavior that introduces some cause and effect behavior, and cooperation between AI ships.

In SOME encounters.

Let me stress that again, we are only doing a hand full of NPC in the first release. They will most likely be scattered across all the types of content so that we can evaluate them in as many situations as possible.

We want to introduce this slowly to reduce risk, this is yet to be finalized but some groups in belts and some missions will have the new AI. But a majority of the NPC in the game will not change. This is some thing we can change with a server side change, so as we watch this we can step up or down the number of NPC that use the new AI. We won't have to wait for a big patch. Part of this sprint is to build a tool that allows for mass changing of the AI that a ship uses. so in one fell swoop we can change all the ships, or just the ships that spawn in 0.4-0.0 space and revert it if it doesn't work. :)


CCP Incognito

Posted - 2008.12.10 11:33:00 - [345]
 

I like the idea of a adaptive learning AI from a "that would be cool" point. But on the other hand since we don't have experience with that it is a risky thing to try. But within the current architecture we have we now can try to write one and have a test dungeon that uses it. But it will be on the back burner for a while.

I am also very interested in experimenting with a couple of other ways of doing AI:

I have been very impressed with stuff that Epic(tm) has done with the Kismet system where you link together blocks of actions and can custom build AI for a given encounter. This would let designers make interesting encounters and would be useful for scripted situations and story telling.

Another is Behavior trees, they look like they can do a lot of cool things when it comes to planning. It would be fun and maybe something I will explore on my own (read working on the weekend). But it would cut into my WoW time :(


Abrazzar
Posted - 2008.12.10 12:29:00 - [346]
 

I for one would be happy if NPCs would stop with the random idle orbiting. Like the Navy and CONCORD around Stargates. Ideally they'd take a defense formation and just change positions to a new defense formation from time to time. Seeing them hump a Stargate just doesn't look like a glorious Navy protecting sovereign space.

A collision avoidance AI for NPCs in missions would also be great. Having that Blood Raider Transport stuck in a LCO 100+km away when you're supposed to fetch some militants from them is just annoying (and rather stupid behavior).


I see three distinct AI procedures:


1. Idle Behavior:

Determines what the NPCs do when nothing is causing them to become aggressive. It defines things like:

- Orbit [Object] at [x]km.
- Move from waypoint [a] to waypoint [b] etc. and wait at each waypoint [t]seconds.
- Sit at location [marker] facing in [marker facing] direction.
- Or a combination of the above, e.g. move to marker [a], sit for [t1] seconds, move to marker b, orbit object [O] for [t2] seconds, repeat.



2. Aggression Logic:

Determines the circumstances the NPC becomes aggressive and specifies what will be targeted. The basic decision could be done by:

- range (closest, farthest, closest to other structure or NPC, etc)

- type (attack cruisers, attack interceptors, attack drones, attack logistic ships, etc.)

- a combination of the before (attack closest frigate), a either/or choice (attack drones and if no drones are around attack the closest ship)

- and/or a priority list of aforementioned (attack drones, if no drones attack frigate sizes, if no frigates attack destroyers, if no destroyers attack closest target, ignore ships beyond a certain range unless there is no target within the range limit, etc)

- and in the advanced state it'll reevaluate the situation frequently by running the aggression logic cycle again.



3. Combat Tactics:

Determines the behavior a NPC uses when attacking a aggression target. It would at the simplest orbit/keep distance at [x]km and fire weapons/apply remote attack modules (like ewar) or more complicated attempting to maintain [vt]transversal and [x]distance.

More complicated behaviour would determine how much tank is used, when to deaggress to gain distance for repairing damage, when and if to run off the combat area, switching ammunition type from long to short range and vice versa.

Higher AI behavior could adapt fittings to prepare for the incoming target, depending if the scenario logically allows for it. This would include damage type, resistances, range and speed, within certain pre-defined or dynamic parameters.



IMHO a specifically defined AI using scripts or a selection of AI routines that can be applied (or are fixed) to certain NPCs gives the Level Designers more control over how the missions (and other NPC situations) unfold than a universal adaptive learning AI.

Sansha should apply different tactics than Serpentis and Amarr Navy will not fight the same way as Minmatar Freedom Fighters.

One essential part of AI is, IMHO, to give the NPCs more character and personality.

J'Mkarr Soban
Posted - 2008.12.10 12:46:00 - [347]
 

Originally by: CCP Incognito
...This is the idea[l] situation and will be years before we are at this stage.

As I said before we don't have time to do an adaptive AI...


I don't understand this bit - you've got years to implement lots and lots of scripts that will require constant high-maintenance especially when major patches are released, but not to set development time for adaptive AI? Especially given that as you roll out more and more of these scripts, you have to balance them against each other and increase their scope, which will require an exponential increase in resources to maintain them.

Now I'm not trying to stir anything up, it's just sounding like the lack of time is an excuse to hide a lack of experience (which is a big thing I'll admit, but you have had offers of experts in the field to help), and thus a sense of 'let's run home to mama' and falling back on a static iterative design process, as that's all that the developers can understand. I can understand that the lack of experience is an issue, but please don't fob us off with the 'lack of time' excuse.

CCP Incognito

Posted - 2008.12.10 13:22:00 - [348]
 

Originally by: J'Mkarr Soban
Originally by: CCP Incognito
...This is the idea[l] situation and will be years before we are at this stage.

As I said before we don't have time to do an adaptive AI...


I don't understand this bit - you've got years to implement lots and lots of scripts that will require constant high-maintenance especially when major patches are released, but not to set development time for adaptive AI?



Sorry for not being more clear. Currently there is 1 AI script involved in pirate ships, it controls all pirate ships whether it is a cruiser or a battleship...

Now we will have 2, the old existing one, and the new one. In the future we can introduce third that does something different.

We don't intend to change the old script, or if possible as little as possible all the new scripted behavior will be in the new script.

And yes we lack experience in adaptive behavior so when my boss asks how long will it take, I don't have a answer. That makes it very risky for a fixed development cycle, and there for the answer is not yet.

As I learn more about how to do adaptive AI, that unknown will be come a known. And then at some point I can tell my boss that it will take X man months to implement a adaptive AI. At that point we will have a architecture that will allow us to plug that in and try it out. It will have a very narrow scope and with the tools that we have built we can move the game over to it if that is the right choice.

But at this time, I don't know how long it will take to do, so all I can do is study and implement something that we know how long it will take to implement.

Will what we implement be everything to everybody, no. Will it be better than what we have now, I hope so.

JoeBear770
Amarr
Faster Muffins
Posted - 2008.12.10 13:34:00 - [349]
 

Rewards- I was ratting in a 0.5 sys and popped a T1 (non dread)
rat. In the loot was an implant, sold it in Jita for 120mil. So I cant complain there, I have seen pricier loot in general since the last couple of patches.

Gnulpie
Minmatar
Miner Tech
Posted - 2008.12.10 13:54:00 - [350]
 

NPC AI sounds pretty cool.

And the way the project is approached makes sense also. You do not go full risk/****** into something you do not know (like adaptive stuff) but do it step by step: first setting up a framework which is flexible enough to try many thing - now and in the future - then going to fill that framework with useful stuff and finall make the uber-cool things Very Happy

What I would like to know is if there are plans to make missions/encounters procedurable built? Which means that you have a certain amount of parameters/numbers and from these numbers the mission/encounter is built up all on its own.

For example there could be a number which controls the amount of npcs in a mission, a number for amount of groups, a number for important building and so on.

In this case a NPC AI would be really useful to give the npcs reasonable behavior.

And such procedurally generated encounters would be such a great feature with so much potential that I really hope CCP is considering this. For example could you make then more or less easily create a mission/encounter generator which generates from the last mission a new one depending on the success of the last mission. This way an ongoing and potential infinite storyline would be created and it could be for every player unique!

NPC AI is good, but I really hope it is just only one piece in the large picture. I think it would be mindboggling cool if CCP would implement something like above mentioned. An ongoing and unique storyline for each player!

The mission designers would still have work! First, they can really work on the process of procedurally generating missions. And second, more important, they would need to see that they mission generator would create reasonable paths of missions. Ah well, if I have time I will write some stuff on Features&Ideas Very Happy

J'Mkarr Soban
Posted - 2008.12.10 16:08:00 - [351]
 

Originally by: Gnulpie
...do it step by step: first setting up a framework which is flexible enough to try many thing - now and in the future - then going to fill that framework with useful stuff and finall[y] make the uber-cool things


Well, see, that's where adaptive AI is strongest - it does all those trial and error bits for you, and can continue doing that no matter how much you add to or subtract from the game (new modules, ships etc).

As to your other comments, I'd love to see procedurally generated missions - in fact as I mentioned it was something that I looked at myself last summer, and managed to 'spawn' (i.e. list to me) ships, groups, waves, locations etc. based on the difficulty of the mission. One thing I discovered through this experiment was the current method of mission difficulty isn't the best - a far more linear method would be to use the standing of a player with the particular agent/corporation/faction to determine the relative rewards (and therefor risk) of the mission.

To bring this post back on topic, and to tie in with what I just talked about, rewards will really need to be monitored no matter what method of increasing the AI is used - arguably it's the biggest problem with adaptive AI - how do you determine the worth of a particular NPC opponent? That's where the risk/reward comes in - at the moment the NPCs are too easy to kill for too great a reward, but with this method it's entirely possible that you'll have an NPC that is too difficult to kill, for too little a reward. The whole 'difficulty' of a particular scenerio needs to be identified as a whole to work out the relative rewards (bounties) of the NPCs within that scenario.

A problem with procedurally generated content - whether it's the missions or the skills, and fittings of particular NPC opponents - is you'll face the Knapsack Problem, which isn't easy to overcome in polynomial time - how much work do you actually want the servers to do for this? Very Happy

Thebro Nobrunder
Schrodinger's Renegades
Posted - 2008.12.10 16:22:00 - [352]
 

Originally by: J'Mkarr Soban

A problem with procedurally generated content - whether it's the missions or the skills, and fittings of particular NPC opponents - is you'll face the Knapsack Problem, which isn't easy to overcome in polynomial time - how much work do you actually want the servers to do for this? Very Happy



That's no big deal... it's what Heuristics are for :)


Neamus
Posted - 2008.12.10 17:13:00 - [353]
 

I'm afraid that I don't have anything to add, I first discovered this thread when it was already quite mature and almost everything I have thought of has already been suggested. But I'd like to express my appreciation for the many contributions, especially those from Bartholomeus and Incognito. It's been an entertaining read and I hope that something constructive comes out of it.

Good luck Incognito!

I'd like to be engaged in a fight to the death with 'HAL 9000' as soon as possible please Wink


Seth Ruin
Minmatar
Ominous Corp
Circle-Of-Two
Posted - 2008.12.10 18:20:00 - [354]
 

Originally by: J'Mkarr Soban
To bring this post back on topic, and to tie in with what I just talked about, rewards will really need to be monitored no matter what method of increasing the AI is used - arguably it's the biggest problem with adaptive AI - how do you determine the worth of a particular NPC opponent? That's where the risk/reward comes in - at the moment the NPCs are too easy to kill for too great a reward, but with this method it's entirely possible that you'll have an NPC that is too difficult to kill, for too little a reward. The whole 'difficulty' of a particular scenerio needs to be identified as a whole to work out the relative rewards (bounties) of the NPCs within that scenario.
I wouldn't consider this any more difficult than arbitrarily assigning values of NPCs as they are now. Remember that adaptive AI's "goal" can be defined as practically anything. The rewards would not necessarily have to be based on the NPC itself, but could be based on that NPC's AI's goal, e.g. an easy webbing frig could be designed to "successfully web the opponent 30% of the time." Therefore, as modules and missions change, the NPC will adapt and still achieve the same goal.

A side-note comes to mind: It would still be possible for the AI to over-adapt in that situation. Therefore, it should also have a contradictory goal that it should be designed specifically to fail to get a web on an opponent at least a minimum percent of the time.

At least, that's what I'm assuming with my minimum knowledge of adaptive AI. Taking a course this Spring, though, so we'll see how that goes. Wink

Bartholomeus Crane
Gallente
The Crane Family
Posted - 2008.12.10 20:03:00 - [355]
 

Sorry, I was rather busy today preparing some software for my students next semester. I'll have them solve Pacman with adaptive AI. It's going to be hilarious.

Anyway, I want to throw out some comments.

I think that for this sprint, the idea of having different AIs for different NPCs is the way to go. Above anything else you'll need feedback on how the new parts work compared to the old ones. Also you don't want to go all out in one go, as things can go wrong. The idea of having a framework in which you can replace AI through server side changes without the need for patches is a good idea. I'm not sure about the 'years' thing, but I don't know how things fit together for you, so will leave it at that. This all ties together with the risk reducing concern, and I think that's a valid concern.

Regarding the adaptive AI. I'm trying to keep it on the menu. Not necessarily because it is cool (which it is) but also because it has some clear advantages in these circumstance. It can save a lot of work and time. It's a tried and tested method for optimising behaviour. And it's not all that difficult to understand.

I don't expect you to pull it out of a hat this iteration or the next, but I'm worried that without some expert knowledge, you'll be looking in the wrong direction and basically wasting time that needn't be wasted. There is a tendency among game developers to want to completely grok a concept before they want to introduce it in one of their games. What I'm basically saying is that you can't. You can scratch the surface, no doubt, but you can't possibly be expected to better someone who has years of experience in a certain field. Having said that, you'll need to have someone on the team who knows enough about the field to give an accurate estimate about what is involved and how much time is needed to implement it. More important, you need that person to be enthusiastic enough to convince others that it is worth the time to do that.

Regarding Kismet. I actually have some experience with the system (though not an awefull lot), because at one time we considered it for our AI in games course. It's a very nice system, especially the visual editor. Easy to use even for people who don't know much about AI (like students). You can also do some interesting things with it, although not overly so (to be honest). Four reasons why we didn't use it. First is financial, it was simply to expensive to license software for the university. Lame, but money counts. Second is that it was restrictive to the games for which it was used, and we didn't want to limit our teaching to just one type of game. Third, teaching it would have taken a lot of time, leaving us with not enough time to do the other things we wanted to do. But finally, and most importantly, Kismet creates scripts, and whether that is AI is debatable. Personally, in most cases, I don't think they are.

Whether CCP should implement something like Kismet for their designers is another question. Don't underestimate the amount of work needed to write a visual editor. If you have it, it is great to use, but you'll probably need a long time to make it worth the effort. Also, some concepts are hard to depict in a visual editor. Simple things won't give you a problem, but you'll start struggling when the concepts become more complicated. Another consideration is this. Behind the nifty AI is still a script, so basically, a visual editor is nothing but a fancy UI for a script editor. Sounds harsh, but there you have it. There are times when this is a good thing to invest time in, but you can also wonder if it isn't more efficient to just teach the designers to write the scripts directly. May sound very beancounterish, but it's a valid question you need to answer for yourself.

Continued ...

Bartholomeus Crane
Gallente
The Crane Family
Posted - 2008.12.10 20:40:00 - [356]
 

Regarding behaviour trees. This is a very interesting idea, and one with which I have a lot of experience. First thing you should notice is that a behaviour tree is a depiction of a script in a sense. It is very easy to translate a tree into a script and vice versa (if you remember you classes in Compiler Construction you'll know how).

Earlier I brought up DQT. It stands for Data Quality Tree, and is basically a behaviour tree used in Data Mining. I've worked with a special version of such a tree, using decision nodes, action nodes, and planning nodes. There isn't a behaviour you can't capture in that structure, and there are a lot of operators available to make adapting it over time easy. Concepts like subsumption, divide-and-conquer, etc. are all natively available within the concept as well. Furthermore, people easily understand trees, they are easily depicted, and editors for trees are a dime-a-dozen. So this is certainly worth losing a weekend of WoW over. Ohh, and I didn't mention planning-nodes off-handedly.

Regarding experience in adaptive AI, yes, you can pick it up superficially quite easily. The question is whether that is enough to answer your boss correctly on the time needed issue (which is also a valid question you'll need to answer). Probably not. Not because it's so difficult to grasp the concept (I don't think it's difficult), but because there are a lot of factors that affect the time needed to get it to work well. Divide and conquer is the only solution. And by that I mean that instead of trying to introduce one adaptive AI in one fell swoop, the safer method is to introduce a small portion of the whole 'AI', one that you can oversee, and then build on that. Less risk, less work, and if it doesn't work as expected, the damage is contained, and you can always step back and try something else.

What is important to recognise here is that the above method builds on the notion of cooperative AI. That is to say, not one big monolithic AI that does everything, but a collection of AI working in concert. An example would be having an AI handling one capability (a webber), and another AI handling another capability (the turrets). Does this work? Well, I can throw terms like multi-objective optimisation, and pareto-fronts at you but what it boils down to is that: yes it works (there is a nice Information Theoretic proof about), and it works really well. An implementation that you are familiar with would be Asimo, which also uses different AIs cooperatively to do what it does.

The good news is that, if I understand it correctly, the work that you are doing now will allow you to later on use these types of AI-collectives. It will provide the context, the parameters, and examples for the AI to learn from. Moreover, it provides a framework to build on for deploying it as well. So no work will go wasted.

And a final shot before the bow. I get the impression that you are planning to tune the AI to the problem. That is to say, use dumb for simple NPCs and smart AI for smart NPCs. I would argue against that. It's complicated to write dumb scripts, funny as it may sound. When it comes to tuning, I would suggest looking toward context and parameters first. It's easier to tune down parameters/capabilities then to write dumb scripts. That will allow you to write the best scripts you can but make the NPCs easier to kill by simply giving them less capability. Although theoretically possible, I don't think you'll be able to write the one script that rules them all, but the best approximation over a set of scripts for a sub-set of NPCs is certainly possible. Then you start of with the best possible (a 10/10 NPCs) and tune the difficulty down to what is needed by giving it less capabilities (a 2/10 NPC). If you choose the context right, you can automated the testing by throwing two NPCs in one dungeon and see who comes out on top, even without self-adaptive AI.

Thebro Nobrunder
Schrodinger's Renegades
Posted - 2008.12.10 20:43:00 - [357]
 

For the first pass (and likely the second, third, ... ) adaptive AI is likely too far to stretch.

Scripted behavior can go a long way to make npc's appear to be smarter than they really are.

Now for the long term adaptive AI would rock!

Bartholomeus Crane
Gallente
The Crane Family
Posted - 2008.12.10 21:05:00 - [358]
 

Originally by: Seth Ruin
Originally by: J'Mkarr Soban
To bring this post back on topic, and to tie in with what I just talked about, rewards will really need to be monitored no matter what method of increasing the AI is used - arguably it's the biggest problem with adaptive AI - how do you determine the worth of a particular NPC opponent? That's where the risk/reward comes in - at the moment the NPCs are too easy to kill for too great a reward, but with this method it's entirely possible that you'll have an NPC that is too difficult to kill, for too little a reward. The whole 'difficulty' of a particular scenerio needs to be identified as a whole to work out the relative rewards (bounties) of the NPCs within that scenario.


I wouldn't consider this any more difficult than arbitrarily assigning values of NPCs as they are now. Remember that adaptive AI's "goal" can be defined as practically anything. The rewards would not necessarily have to be based on the NPC itself, but could be based on that NPC's AI's goal, e.g. an easy webbing frig could be designed to "successfully web the opponent 30% of the time." Therefore, as modules and missions change, the NPC will adapt and still achieve the same goal.


Interesting comments by both of you. What you both recognise are two things: it is difficult to determine what to optimise (but certainly not impossible), and you are basically doing multi-objective optimisation. What you'll end up with are two things. You're optimising along a Pareto-front (Eyjo should know about those), and it is not necessary to capture the whole behaviour in one objective function. You can have several objective functions at the same time, either independent, cooperative, or combative. Now throw in different AIs for the different objective functions with some sort of intelligent broker on top and you are on your way to a solution.

Example. Consider an NPC with a ship from the best of all races, the Gallente. He has both blasters and a webber. Optimising for the webber means staying close to the maximum webber range from the target. Optimising for the blaster means trying to get a piggy-back ride. Clearly you can't do both at the same time. The optimal range to the target when optimised would be a number of points along a curve (not the best explanation for a Pareto-curve I admit). At one end of the curve the AI values the webber over all, and the other end of the curve the blasters are valued. Left to its own devices (one objective function for both), the AI will optimise to a sub-optimal solution for both capabilities. With an external broker (for example a designer), another point along the Pareto-front could be chosen. Or even better, the broker would recognise that short range blasters and long range webbers don't mix very well, and change the capabilities (fit some rails for-crying-out-loud). A collection of AIs with an AI overseer would need intelligence of its own to figure this one out.

Quote:
A side-note comes to mind: It would still be possible for the AI to over-adapt in that situation. Therefore, it should also have a contradictory goal that it should be designed specifically to fail to get a web on an opponent at least a minimum percent of the time.


Over-learning shouldn't be a big problem because the environment is chaotic, so you'll optimise towards the best average over time. The AI probably will have a lot of conflicting experiences after all (can be alleviated by having different AIs for different circumstances, but I think I hammered that point enough by now). In fact, where this isn't the case, you'll have found something that is not balanced. Military experts call this the Nerf-o-Finder.

Quote:
At least, that's what I'm assuming with my minimum knowledge of adaptive AI. Taking a course this Spring, though, so we'll see how that goes. Wink


You're in for a lot of fun, well, a lot of interesting things to learn about :).

voidvim
Minmatar
Genco
Curatores Veritatis Alliance
Posted - 2008.12.20 17:15:00 - [359]
 

I have read most of the thread and two things come to mind.

1) drones control
look at what people have asked for drone control, it should be a good start when considering what NPC's could do.

2) Alliance Tournament
Look at the way PvP works in tournaments, I think it might be a good model for NPC combat could work.

Bartholomeus Crane
Gallente
The Crane Family
Posted - 2008.12.20 17:57:00 - [360]
 

Originally by: voidvim
I have read most of the thread and two things come to mind.

1) drones control
look at what people have asked for drone control, it should be a good start when considering what NPC's could do.

2) Alliance Tournament
Look at the way PvP works in tournaments, I think it might be a good model for NPC combat could work.



I agree with both.

1. Drone control has been agonising me ever since I started using them. Things got better over the years, but here is something small that could benefit a lot of players. Basically, drones would be an ideal start for AI as their behaviour is simple to model and a lot of intelligent behaviour could be implemented within these constraints. It could also be used as a testbed to test other things, like formation flying, and fixed 'game plans'. Although it is possible to use a self-learning algorithm for it, even a static setup would improve a lot. Just imagine launching some drones or fighters, them forming up into squadrons, and then attacking a target intelligently.

2. An alliance tournament setup would provide a very controlled environment for testing co-operative behaviour within small gangs. Even 1v1 or 1vsome co-operation could be tested this way, for example for training up a self-adaptive AI or simply testing a static setup. With a good enough trace of what happens during an alliance tournament, you can also use it for back-propagation for learning the correct behaviour. The same thing can be done for missions. A self-adaptive AI could thus learn to behave exactly like the designers of the mission would want, yet still have the ability to adapt to specific circumstances (careful for overlearning though). Fixtures like this would be part-and-parcel in such situations and are actually used for training AI in other circumstances.


Pages: first : previous : ... 8 9 10 11 [12] 13 14 15 16 ... : last (21)

This thread is older than 90 days and has been locked due to inactivity.


 


The new forums are live

Please adjust your bookmarks to https://forums.eveonline.com

These forums are archived and read-only