Hello community! I've been looking for a dungeon profile/plugin, but i couldn't find anything. So... Is there any open project (or someonw who has the idea) focused on acomplish this task? Thanks in advance! PS: Sorry for my bad spelling ^^
It could be done if someone felt like it. You would have to do a lot of scripting for tricky movement spots, lock outs, transports (not positive api exsists for transports/shortcuts), etc. Each dungeon would have to be scripted one at a time and that alone would be a lot of work. It would be a lot easier if the meshes got some attention but that's not necessary.
Well im not used to the rebornbuddy engine system so i dont know what the meshes are ^^, but i suppose you are right. That will be a lot of work. However, im also a developer and i think that this kind of bot is something that has to be done. If there is a couple of persons willing to invest some time and work in order to make an analysis to check if there is a way to make a worthy bot. Ill glad to help in the development.
I'm interested in this, but still have the idea a little fuzzy. What exactly would you consider a dungeon bot to be? Do you want to group up 4 bots inside a dungeon, start them, go eat lunch and when you come back expect the dungeon to be finished? Or do you want a "follower" type bot where you control the tank and the other 3 follow you around assisting you and doing boss mechanics? Either way it's definitely a big project. For me personally, I'd like something that grinds tombstones doing dungeons on it's own. However, since I'm a tank, the bot would have to "set the pace" for the group, which is I think fairly complex. The thing that I'm most afraid of is boss combat logic, how do you tell the tank to try and tank a boss in a specific location for a specific phase, but then if the place gets hit by permanent AoE ground spells, to move the boss to another safe spot but not a bad spot etc, etc. Especially since the Rebornbuddy API can't "see" spells in the ground right now, finding optimal spots to tank the boss is a challenge. You'd have to keep track of where they hit and calculate their shape and use a pathfinder to move your character avoiding the shapes, etc. You would also need to design a combat routine specifically for tanking, that cares only about enmity. For example, if there's a group of mobs consisting of a melee and a ranged one, the best thing to do is go to the ranged one and pull the melee to you, since the ranged one won't move towards you otherwise. Stuff like that might get complex. The tank logic is just very complex I feel. Other party members should be easier, but they would still have to do things like clicking objects on certain boss fights and such. There's also bosses that use AoE telegraphed spells without casting them, it's impossible to know when they happen. Honestly, the more I delve into AI in general, the more I am amazed about the human brain.
Having looked into this, be warned that the navigation meshes for the dungeons aren't perfect, you'll get stuck decently often, especially on small things (like the stairs/barrels/reefs in Sastasha). Other than that, the trickiest part would be coding the dungeon-specific criteria (like for dungeons that require you to open doors, collect items, etc, or for dungeons like Haukke Manor where you need to 'Return' back to the entrance after a boss). Wish I had more to offer on the matter, but that's about all I know.
I want the bot to do everything but not in the first release. For example, we can start doing something fancy but easy. Something like, autofollow + dps & healer mechanics and leave the tank for later. But, of course we have to do my lovely part of software engineering, the analysis in order to determinate what can we do. Well, the tombstone grinder was my first thought when i created this post. Although the bot has several limitations we can start doing the pieces that can be made and improving them as the bot does, until we reach the supreme tombstone grinder Yep, thats the sh*t that i miss in this bot. Therefore there is a need and we can cover it up. I'veen looking into the forums for some plugin to avoid AOE and i think that it actually exists. Same here . Yes, there is some moments that the player's attetion is required. But well try to minimize them. We have an ambicious project in our hands that is actually a need in this bot. And of course is a hard work. Nevertheless it does not mean that we have to do all of that work at once (versions ). If we decided to carry on with this project, we should do a meeting to analyze the functionality, capabilities, problems and how to overcome them, etc etc.. and apply some software engineering techniques to make our coding easier. If you have any other doubt or if you dont have something clear at all, feel free to ask.
Well the bot is based on a behavior tree, so it is quite powerful if you use such a structure to it's limits. Behavior trees are used in a lot of AAA games out there. I'm currently working on the Zekken plugin so don't have much time to do anything else, but once that's finished I might dig into this.
Well. I think ill start the project as soon as i finish some work. If you start to work on it before me, i'd like to join in the development.
Sounds good. I've been working on some OrderBot tags lately, and was surprised to see that OrderBot is basically a data driven behavior tree. I don't see any reason to use anything else to be honest, just making powerful custom tags should be enough to make a dungeon bot. Navigation without a mesh will be a pain though. I might try a few stuff and see if the idea goes anywhere.
Order Bot runs profiles, not the best for a dungeon bot. Definitely would want to make a custom BotBase for a dungeon bot. It will make everything so much easier in the long run.
Well what I was thinking is that any implementation of a dungeon bot will most likely need profiles of some sort. There's just too many "special case" scenarios inside dungeons, like having to click things in the middle of a boss fight, eating mushrooms every 3 stacks of poison, dodging very irregular telegraphed spells, moving a mob to a certain spot (like those stone heads that have to die on switches to open doors), etc. Either through a custom botbase or orderbot, you'll still probably need profiles for each dungeon and each role. I just started to delve into custom tags for orderbot today, and I'm finding it to be very powerful. So far I've managed to make a repair tag that when encountered, goes to repair if your gear is below a certain condition, and a dialog tag to make some quest with cutscenes hopefully cleaner and easier to make. Really orderbot feels more like a "meta bot" that chooses different bots for different tasks. I can definitely see a <Dungeon> tag with special sub elements specifying things like <Boss> fight behavior or <MobGroup> to pull and kill one group before going to the next. Imagine something like: Code: <Dungeon Name="Sastasha Seagrot" Role="Tank"> <MobGroup hotspot="13.4, 13.4, 13.4"> <MoveMobTo NpcId="Stone Head" XYZ="13.4, 13.4, 13.4"> <KillOrder orderByNpcId = "374, 334, 783"/> </MobGroup> <MobGroup hotspot="13.4, 13.4, 13.4"> <KillOrder orderByNpcId = "374, 334, 783"/> </MobGroup> <Boss> <PercentEvent bossHealth="50" name="Big Aoe Run!"> <MoveTo XYZ="safe spot"/> </PercentEvent> </Boss> </Dungeon>
The main problem I see is not being able to step upward in a profile. Once you pass a certain event, the bot won't go back to it (say, if you wipe or something). If you look at how HB implements their Dungeon Bot, you'll see that the individual dungeon customization is imported via a .cs file which includes the necessary information. While Order Bot could possibly do something like a dungeon bot, I think it would be way more work and less effective than making a custom botbase. In addition to that, there will be situations you'll want to call certain combat behaviors under, and other situations you won't want to call any combat behaviors, which you can't control under Order Bot. Making a custom BotBase isn't hard, I really can't see why you wouldn't want to do that instead.
Definitely good point about not going upward. I think you're right, it probably needs a new bot base.