Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bots

Development::Bots Forum for bots.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 07-19-2011, 04:59 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default Bot Discussion

Since there has been some bot interest lately and I actually have a bit more time (I started a new job and am still working part time at my old job, and I have an 8-week old baby ), I wanted to try and organize some discussion regarding bots and some of the work being done. I was given commit access to the svn a few months ago, which was right before all of my changes, but was able to post some of my work with bot spells, healing, etc.

I would like to maintain a wishlist of enhancements for bots, with discussion, comments, and code, if anyone has any (or at least a link to a thread that contains it). This would be easier if I was a forum admin for the bots section so I could just continue to edit and maintain one post, but we'll do with what we have. I want to have opinions on some of the things we're working on and any ideas that may make bots even better than one person may envision. Criimson has a good starting list here.

From my own experiences and some of the recent discussion, I think one of the biggest improvements that can be made is handling how bots cast spells ( or not cast them ). After reviewing the work done by Pfyon and Criimson, here , here and here, I would suggest a few changes that would be more generic, but more powerful.

First, Bot roles were partially implemented, and the archetype system partially duplicates what was currently there (but not functional). I would suggest combining the 2 to eliminate redundancy. I believe Bot roles would provide more flexibility, as I stated in the pfyon thread where he introduced his archetypes. Possible roles include MT, secondary tank, main healer, secondary healer, puller, slower, etc. This would allow both buffs tailored to roles (rune on puller, Voice of Thule (agro+)on MT, etc.) and different AI based on roles (secondary healers cast other spells more than just heals, MTs taunting, beastlord without slower role would not slow, etc)

Second, I would try to remove hardcoded spells, spelltypes, or percentages as much as possible. I think loading generic spell preferences from the database with the ability change them on a class/individual basis would be preferable, as I do want my clerics or enchanters nuking; for me, they rarely run out of mana, and would prefer them to be productive instead of standing there. I move quickly, so I rarely allow my bots to get back to 100% mana when raiding. Others may be more passive, and not want their clerics to nuke no matter what, or have an enchanter that doubles as their only DD nuke source. Some of the new percentages don't really fit my play style, so I will change them back on my private server. I also like my hybrids healing, as they tend to heal themselves (they check themselves first to see if they need healing, which offloads some healing from my cleric, which especially helpful against rampagers or mobs with area affects). The change also almost eliminates the Paladin's ability to group heal, which can be a lifesaver. Regardless, something flexible would be best so everyone could tailor their bots' AI how they would want. Also, I definitely want to be able to add new spells to the bots' spell lists such as Voice of Thule and other agro management spells.


After some brainstorming on the issue of roles, buffs, and AI changes, I had a few ideas that I wanted to post to gather some comments and thoughts on what might be best.
  • First, I thought of server rules to determine how the various classes would act that could be adjusted, but I'm sure players would like to make their own to a basic system to tailor it to their needs. I don't think this would be a good approach, as it's not much better than just going in and changing it in code, and it's server-wide.
  • Second, I thought of making changes to the npc_spells_entries table to be able to store some information on who the spell should be cast on (target type), but it doesn't make much sense to change the whole table structure that will only affect bots, not all other npc types. I think for this to work, the best option may be to pull bot spells from the npc_spells and npc_spells_entries table into their own tables, and add a bitmask column for bot roles that the spell can be cast on. This may also need to be implemented for my next thought..
  • A third option would be to have presets that can be selected for the various spell types a bot can use. This would be secondary to bot roles- a beastlord must have the role slower to slow, then the aggressiveness setting would determine how often they would cast it. For example, for spelltype Heal, the bot could have Default, Passive, or Aggressive (which I believe somewhat mirrors mercs). A Cleric with Default would act as before, with Passive being more mana efficient, and aggressive less mana efficient, but faster healing (trying to keep healing target at max HP). Same for Nukes, Debuffs, Slows, etc. For spells such as slows, instead of saying one class automatically being ahead of another class, an aggressive slower may try to slow every mob, wheres as passive slower would only try to slow named-type mobs, or act the same, just with a lower priority.

I look forward to starting a discussion on bots and what others are interested in with regards to improvements that should be made. I use bots exlusively on my private server and am always looking for ways to better use them to move through PoP progression and beyond, including disciplines. The previously mentioned change to bot spells would allow melee-only disciplines be added, some of which I already have coded (I use #bot defensive), healing rotations (working on a rewrite), and if possible, battle rezs for bots..

Please feel free to post comments or thoughts. I used to be in #bots, but I don't have that option now, and so it's better to keep my discussion here (also so others can see who don't visit the irc chat).
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 03:00 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3