Archived

This topic is now archived and is closed to further replies.

Are AI "nodes" the answer for MMRPG games?

This topic is 5011 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

STOP!!! Don''t hit the reply button yet!! =) I don''t want to hear about your "neural network", "self learning", "take over the world" AI system. My question here is are "node" based AI systems the answer for optimum, processor efficient AI engines in MMRPGs. My AI criteria: - Must be able to support approx 200-400 NPCs per "zone". (each zone is a server entity in itself. I am not developing my own load-balancing etc etc at this time. So concider carefully that the 200-400 AI objects must be able to function smoothly on a single physical "server" box.) - There are several distinct AI "types", some of which require more overhead than others. "Wanderer" AI will simply stroll "node" waypoints, react to agression or PC interaction. "Hunter" AI will wander "node" waypoints but also do "sphere of influence" (agro) radius checks to determine if any unfriendly objects exist every xx seconds. "Merchant" AI will include static placement and small radius wander code and Interact with PCs on demand. There are the vasic AI types although there are several subclasses of each type they are similar in systme requirements. - Overall Zone AI is controlled by "factions" and dynamic NPC movement and agression is controlled by the world AI server. The AI server controls the "Agression", "courage", "goal" variables for every single faction in the world. Any zone may contain many different AI "factions" who will operate dynamically as the world AI server sends out regular updates to the factions variables. The research that I''ve done and various "test" script AI''s seem to indicate that I get the most bang for the buck using "node based" AI movement and shrink or increase an AI''s roaming nodes based on the info from the world AI server. Using this method of invisible AI node objects placed throught the zone AIs can be given "raid" objectives and leader achtype mobs that attack different waypoints in the zone. IE a guardhouse, a Strategic bridge, an outpost or watchtower etc. These nodes all make possible very intricate "pathing" AI for tricky 3D towers etc. Anyone else have any thoughts on this? Any other pathing and wandering systems I should be looking at or concider? Thanks kindly. Mark Aakrana: The Forgotten Lands If you have C++ experience and wish to assist in the alpha development of our network transport using very easy middleware, please contact me.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by Slyxsith
- Must be able to support approx 200-400 NPCs per "zone". (each zone is a server entity in itself. I am not developing my own load-balancing etc etc at this time. So concider carefully that the 200-400 AI objects must be able to function smoothly on a single physical "server" box.)
Don''t process 380 of those 400 NPCs, only process the ones in the player''s vicinity. Using the same AI routines for all 400 NPCs all the time would be a huge waste of time unless your project''s sole purpose was to simulate them all with a single AI routine. But I assume your purpose is to make an RPG with a believable AI. By discarding most of the NPCs, you get to do more processing for the few.

Share this post


Link to post
Share on other sites
You will still want to do some processing on the NPCs out of view, although perhaps lighter weight. Otherwise they will stop where they are when they go out of the local region and wont move until they become local again. This may not be obvious to a player at first, but will eventually be noticed.

A node based system can be as simple or as complicated as you want. A node can simply be part of a network that indicates paths that NPCs can take, e.g. using A-star to do path finding. It is simply a position in the world. They can be extended to contain any information you want, details about a location, special nodes for doorways, tatical info like how much cover a location offers. Nodes can be added and removed from the world depending on various factors.

The only problem with this is that the nodes have to be mapped individually, making sure they are placed so that NPCs can get to them for path finding and that they contain the right information for their location- e.g. erroneous information will affect the behaviour. They may try hiding in a location that offers no cover etc.

An alternative is navigation meshes. They are a mesh (usually a low detail version of the landscape) that is used for navigation. It generally involves less mapping and can give a more robust navigation solution - e.g. its more difficult to end up with areas that NPCs can''t navigate to, where as with nodes they can easily be mapped in ''inconvient'' places. Extra information can be attached to the mesh (each tri/vertex) as with nodes. It also gives topological information about the landscape which may aid path finding systems.

Share this post


Link to post
Share on other sites
i like the idea of abstract ai, where the ai is a fct of the world rather than an object, very clever, if i have understood, that''s mean that an object is influance by the ai in which is current state made him step into??? by state i mean position, internal variable, internal satus etc...

>>>>>>>>>>>>>>>
be good
be evil
but do it WELL
>>>>>>>>>>>>>>>

Share this post


Link to post
Share on other sites
I don''t think they''re the ''answer'' because their usage is surely a no-brainer? Almost all the decent games pathfinding systems I can think of would mark out points in the world like this.

[ MSVC Fixes | STL Docs | SDL | Game AI | Sockets | C++ Faq Lite | Boost
Asking Questions | Organising code files | My stuff | Tiny XML | STLPort]

Share this post


Link to post
Share on other sites
Thanks for the feedback everyone. Couple of things.

- As for the no-brainer, I kind of figured that was the case but wanted to make sure I wasnt missing an obvious alternateive =)

- As for having the AI go into "sleep-mode" yes that is a planned feature but keeping in mind that the platofrm is a MM game I have to be prepared to have all AIs in full operatoional status as a worst cased scenario and still have acceptable funcitonality.

- The world AI server was my concept for having a dynamically changing world to spur players on to actaully achieve great victories or suffer minor setbacks or territorial loses. I''m pretty stoked on it.


Thanks everyone. Glad I''m on the right track. My current scripting engine makes AI dev pretty easy so I''m going to start implementing the node AI system into the alpha zone. Thanks much.

Mark

Aakrana: The Forgotten Lands
If you have C++ experience and wish to
assist in the alpha development of our network
transport using very easy middleware, please contact me.

Share this post


Link to post
Share on other sites
quote:
Original post by paulc
You will still want to do some processing on the NPCs out of view, although perhaps lighter weight. Otherwise they will stop where they are when they go out of the local region and wont move until they become local again. This may not be obvious to a player at first, but will eventually be noticed.



This happens in "Trespasser". It is very annoying and very much robs the game of some degree of realism.

-Predictor
http://will.dwinnell.com


Share this post


Link to post
Share on other sites
yea i compleatly agree with you.
To make the world you are in seem leaving and not as much as a game the ai must not been in sleep mode even if there was sleep mode it wouldnt be activated to much since players will be all over the place in MMOs.

i really like the idea as the guild is building his town the monsters are grouping and building as much as the players are doing. =)

Looked a bit on you page it seems awsome =)

Just started to lookinto ai my self.
Not good though so i dont have any ideas of how to implement the ideas.

keep up the good work

Share this post


Link to post
Share on other sites