Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » zMUD General Discussion
umdbandit
Wanderer


Joined: 31 Oct 2004
Posts: 94

PostPosted: Thu Nov 09, 2006 6:35 pm   

Feedback for new bot
 
So i've made many bots in the past, but i guess i am just kind of bored of them. Most walk along a static path, and do a pretty static list of things. So I want to make a new one, and I am trying to make its behavior much more dynamic than ones I have made in the past.

So i've been writing up pseudocode for it, and I wanted to just get some more eyes on it, so I could have feedback and suggestions.

For starters i'm going along this kind of heirarchy. I want an "object" which decides what the next thing to do is, and after every task, i will run this object.

So something like this

1. Decision heirarchy
-if under attack, will flee
-if low, will heal
-if loaded with loot, will sell
-if none of above, will do a quest or kill a mob
-will quest or kill based on a priority variable which is basically how lucrative the thing is

So it would keep questing/killing until one of the above happened, and when it recovered, it would go back to questing/killing


In greater detail-
First, a class that will be used for adding mobs as potential targets
It creates aliases to add/remove the mob from the target list, and creates two triggers. One which is used to mark the location of the mob, and add it to the string list of locations, and the other would activate a kill 'object' which had specific instructions on how to fight that npc.

When the npc was dead, provided the bot didnt need to run/heal/sell, it would select what mob/quest was the next most lucrative, and then, assuming there were many of them, would calculate all the paths to them, and go to the closest one.

Anyways, thats about what i'm looking at. I would plan on adding as many situational choices as i could to the decision 'object' and using that as a mechanism to make its behavior more and more complex.

So what i'd love, is if you guys would give me some feedback whether this is the best way going about accomplishing what i want to accomplish.

thanks like aways!

-umdbandit
_________________
Rufus- Winner of Stuff
Reply with quote
chris-74269
Magician


Joined: 23 Nov 2004
Posts: 364

PostPosted: Mon Nov 13, 2006 7:37 pm   
 
what i would recommend doing is making your triggers based on variables, for example i have ({@botmobs}) and something that triggers off the room that will see if there is a mob, a mob & player, items, or neither. the path is stored in @botpath, and i use this to walk. this way i can use 2 triggers that will move me and kill in every area in the game, all i need to make new is an alias. so my feedback is to make it the most dynamic is to make use of variables in your trigger since they are so much easier to change.
Reply with quote
umdbandit
Wanderer


Joined: 31 Oct 2004
Posts: 94

PostPosted: Wed Nov 29, 2006 6:07 am   
 
Sorry to bump this... Didnt realize someone had responded until now...

Anyways, Chris, I think what you said is pretty much what i have been doing in the past. The difference that I am trying to add now, is to have some kind of priority for each thing to kill, and how strong/healthy/high of a level i have to be to attack said mob.


So i dont want to go into much code discussion right now, but I am curious how far any of you have gone into making a bot AI that uses some decision making process to emulate the behavior of a player. I am familiar with using alice via a COM object, but i am looking for AI in terms of playing, rather than socializing. Well anyways, its late, and i can barely see straight, but post some feedback, as I would like food for thought.
_________________
Rufus- Winner of Stuff
Reply with quote
Iceclaw
Apprentice


Joined: 11 Sep 2005
Posts: 124

PostPosted: Thu Nov 30, 2006 6:24 pm   
 
I wrote something that sort of like this that had a decision making process for the non-social elements it worked pretty well, but I'd like to do some more work to make it a little more generic, and aware of what's 'safe' to attack at any given level based on what I know about the mob's stats.
Reply with quote
umdbandit
Wanderer


Joined: 31 Oct 2004
Posts: 94

PostPosted: Mon Dec 04, 2006 4:31 pm   wanna work with me?
 
Iceclaw (and anyone else out there)

Wanna join forces with me, and make this somewhat of a public works project? I think we could probably come up with a decision making object that could easily be customized to various muds. I believe it could be an interesting, and worthwhile addition to the zmud community.
_________________
Rufus- Winner of Stuff
Reply with quote
chris-74269
Magician


Joined: 23 Nov 2004
Posts: 364

PostPosted: Mon Dec 04, 2006 9:11 pm   
 
i'd like to give this a go, i might find something interesting to add to my existing bots. my current setup i pretty much just enter whatever area i want and type botarea and it auto-recognizes mobs/objects/ect. and is pretty dynamic imo
Reply with quote
umdbandit
Wanderer


Joined: 31 Oct 2004
Posts: 94

PostPosted: Tue Dec 05, 2006 4:49 am   
 
Chris,

Do you think you could explain a little more about how it is auto-recognizing mobs and objects and the likes? All the bots I have made have had pre-defined stuff in that regard.
_________________
Rufus- Winner of Stuff
Reply with quote
megamog75
Enchanter


Joined: 20 Nov 2002
Posts: 627
Location: USA

PostPosted: Fri Dec 08, 2006 3:27 am   
 
I have this war bot I made up that does pretty much that.
you could nest the if statements so that conditions are met before anything is done and you could also give creatures and events a numerical order. This way you could see if 1 >6 the do this but if 1 > 3 do this. it made since in my head rreally. My bot was working for the better part of 5 years till I deactavated it.
_________________
megamog75 Smile
I will do this.Nothing in my life matters except this.No moment in my life exists except this moment.I am born in this moment, and if I fail, I will die in this moment. Raistlin Majere
Reply with quote
chris-74269
Magician


Joined: 23 Nov 2004
Posts: 364

PostPosted: Fri Dec 08, 2006 4:57 am   
 
well just use ansi to capture the name of the mob/objects. the most important part of a mob's name is usually at the end, so you can use something like #tr {%e[5m&mob.name%e[0m~.} {#var botkill %lower(%word(@mob.name,%numwords(@mob.name)))...ect} that will register the last word of a mob. it just depends on the conventions of your mud.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » zMUD General Discussion All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net