From: James Y. <ji...@em...> - 2006-02-03 19:35:11
|
Thanks for the info that gives me a good start and direction. I was researching finite state machines used for ai, I think it would have = many benefits such as reuseable components and should be easy to extend/cus= tomise.=20 If it works like I imagine the machines FSMs could be configured and modifi= ed in a graphical editor so it would be easy to create different ai. There = would probably be one FSM for general NPCs, a NPCs attributes would alter t= he probability of which actions they may take. If an NPC needed more specia= lised behaviour simply create another FSM, similarily for the monsters. If it helps I could get the basics of the design drafted and post them for = everyone input. Cheers Jim > ----- Original Message ----- > From: "Matthias Totz" <mt...@gm...> > To: ari...@li... > Subject: Re: [Arianne-devel] Changes at Marauroa > Date: Fri, 03 Feb 2006 19:34:42 +0100 >=20 >=20 > Hi Jim, >=20 > > I've just got a couple of questions that hopefully you won't mind > > answering. >=20 > Never. We're thankful for all help, so we answer all your=20 > questions. Even if you ask: What the meaning of live? (it's 42 btw=20 > ;) ) >=20 > > If no one else is currently looking at the creature AI it is something I > > would like to have a shot at, along with graphics I've always been > > interested in AI. > > > > 1. Is the AI implemented through Python or java (I haven't found > > anything obvious in the code). >=20 > Java. Python support was planned and prepared but never really used=20 > (too slow). >=20 > > 2. Will the creatures AI run on the server or client (what would happen > > if more than one client able to influence creature). >=20 > It will run on the server. The reason is the design concept of=20 > marauroa. The client can only send actions to the server and these=20 > actions are player centric. This helps to avoid 'hacked' clients,=20 > an easy thing with an open source game. >=20 > > 3. Do you have a basic idea of what the ai class should achieve, > > interface, and associations (eg. Does each creature in existence have an > > object representing it, if so which class, and will it be this class > > that drives the ai operations?) >=20 > Not really. Miguel has planned a pluggable 'behavior' object. Each=20 > turn the logic()-method is called for each creature/npc and its=20 > 'behavior' object. See the logic()-methods of=20 > games.stendhal.server.entity.creature.Creature and=20 > games.stendhal.server.entity.creature.Sheep (creatures) and=20 > games.stendhal.server.entity.npc.Behaviours (npcs). >=20 > > 4. I assume the ai should only update once per second. >=20 > Atm it is updated each server-tick, that is 300ms. >=20 > > 5. Should the ai work for friendly NPCs that give them something to do > > when not interacting with users, e.g pop to the tavern for some lunch. >=20 > I think yes. It may not only present idle actions but also feature=20 > conversation and shop issues (to have a consistent interface). This=20 > is not really ai, but it's closely tied to it. Let's see what the=20 > other devs think of it. >=20 > > Any information you can think of with regards to AI would be useful. > > > > If you are not fed up with questions or someone else wishes to answer > > these here are some questions about path finding and maps. > > > > 1. By moving pathfinding to the client do you mean just for the users > > character when they move by clicking the mouse or NPCs as well. >=20 > First one. I think moving creature/npc pathfinding problems to the=20 > clients give them too much control over the world. See hacked=20 > client note above. >=20 > > 2. Do you implement a finding algorithm eg. AStar or is it your own. >=20 > Yep, its A*. You find the sources in games.stendhal.server.pathfinder.* > The 'core' is in Pathfinder and NavigableStendhalNode. >=20 > > 3. Do NPCs only follow a set path. >=20 > Yep. The path are hardcoded atm. >=20 > > 4. (This is probably a biggy) What information is stored about a map and > > how, is this the same for client and server. (This is so I know how > > pathfinding could use map information) If you'd prefer to just direct me > > to some classes I'd understand :) >=20 > For pathfinding you only need the collision layer data available on=20 > both the server and the client=20 > (games.stendhal.common.CollisionDetection and=20 > games.stendhal.client.StaticGameLayers.collides()). That's the=20 > whole magic. >=20 > Because of my lack of graphic skills I cannot say anything related=20 > to graphics :( >=20 > Regards > Matthias >=20 >=20 >=20 > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log fi= les > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D103432&bid=3D230486&dat= =3D121642 > _______________________________________________ > Arianne-devel mailing list > Ari...@li... > https://lists.sourceforge.net/lists/listinfo/arianne-devel > --=20 ___________________________________________________ Play 100s of games for FREE! http://games.mail.com/ |