   Are AI "nodes" the answer for MMRPG games?
  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 LandsIf you have C++ experience and wish toassist in the alpha development of our networktransport using very easy middleware, please contact me. 
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. ;  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. ;  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 goodbe evilbut do it WELL>>>>>>>>>>>>>>> ;  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] ;  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 LandsIf you have C++ experience and wish toassist in the alpha development of our networktransport using very easy middleware, please contact me.;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.-Predictorhttp://will.dwinnell.com;  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 