Baritone AI pathfinder

Baritone AI pathfinder

72.7k Downloads

Bit of a question, what's this news about a combat-oriented version of baritone?

BlueCyro opened this issue · 62 comments

commented

I just watched a video from FitMC about people getting massacred by a coordinated bot swarm powered by baritone, wherein a player was lured by a bot and keeping distance while it called for reinforcements, then a swarm appeared and proceeded to massacre the player.

I also heard that a ton more stuff is automated by machine-learning in the combat version and being developed in a private repository. Is any of this stuff true? And if so, will it ever be released? I'm extremely intrigued because I don't hear this being talked about anywhere else.

commented

The project was sold by c0nn3r to another person for aprox 5000 USD...

its going to be paywalled in some aspects and wlll have a swarm API for users.

the code will be entirely self contained. youll only have a blackbox access to the code..

kinda shitty imo

Where is the website or something for this?

commented

I wondered, and indeed hoped, that this would happen when I first discovered baritone. I'm just a little wary of it being private, because there's a few ways it could go from here. Either, it remains private and becomes a monopoly, with nobody being able to match the AI, or it becomes public and suddenly everyone has access to overpowered AI, potentially leading to huge changes in server policies.

commented

I'll try to write an email to Conner and ask him if it's true.

His commit history does show some contributions to a private repository, so I think it could be real.

commented

I hope it's real, I just hope that it doesn't stay private and turn into a sorta "minecraft robot overlord" situation.

commented

Don't worry, the development of this combat update seems to have happened in one day. I'm sure somebody could replicate without much effort.

commented

Perhaps. Though, implementing neural nets that he'd already developed would be easy - and not easy to replicate. I guess we'll just have to wait and see where it goes from here.

commented

oh boy, oh boy.

commented

It's currently 2AM for Conner. I think it's best to wait until he responds.

commented

Yeah probably.

commented

The branch is really outdated and probably won’t be updated any time soon. Brady maintained the branch for a while.

commented

I'm pretty sure everyone here is talking about a "private fork", as stated in the video.

commented

Then you shouldn’t be looking here?

commented

Yea not sure why the issue is here

commented

Anyway this issue is visible to people who are confused wtf is going on so I IMO it can reopened

Otherwise people will start spamming issues which is Not Good ™

commented

“Now as of right now, that fork is still private”
-FitMC

commented

I'm not saying that it isn't, it's just that this issue could serve as a place for public discussion of the fork because there aren't any others that I know of.

commented

You can still comment while the issue is closed. Plus, even if it is shown on the main “issues” page, retards people will still create new issues for it.

commented

Nice edit there, thought I was mentally rarted for a sec

commented

@c0nn3r confirm or deny?

commented

Should be 8:30 for @c0nn3r now.

commented

Woah this kinda blew up, wasn't expecting that, lol. Yeah, I suppose it's not hard to automate baritone even if you only kinda-sorta know what you're doing. All you really need are some bot accounts and what is essentially a list of different tasks for it to do. Like if a player is within a certain distance, summon bots to walk towards it's position with killaura enabled, then just proceed to swarm the player until dead.

commented

Tbh it would be better to just log off the bots and log them in when they approach the bot 🤔

commented

Tbh it would be better to just log off the bots and log them in when they approach the bot 🤔

Not a feasible strategy on as many servers as you would think. On ones w/o lobbies or queues, this would be perfect but wouldn't work on servers like 2b2t where if you log out, it could take you hours to get back in.

commented

2b2t
Imagine

commented

2b2t
Imagine

It's a powerful meta if you know what you're doing. Most players won't be matches for extremely agile pathfinding robots. It wouldn't even be hard to add new abilities like the usage of bows, end crystals, etc. Anybody who knows what they're doing could weaponize baritone snap just like that. And it seems they already have, lol.

commented

You don’t really need knowledge of Java for that, you could just use Impact. But yeah, after that video i’m quite inspired to make a fork myself.

commented

You don’t really need knowledge of Java for that, you could just use Impact.

Does it allow you to make a list of tasks for it to do? I've heard about that client before. I also wish I was any good at Java, I'd love to play with baritone and make my own combat-enabled fork too.

commented

You can use stuff like hunt (basically #follow and Killaura) etc

commented

I'm really interested in how Conner "replaced" some parts with ML. Judging by the MineBot docs, it seems like the current approach is a modified A* (correct me if I'm wrong). I think reinforcement learning could be applied to Minecraft, and it would be really interesting to read the implementation or at least a written summary of what it's doing.

I know Java/Kotlin pretty well as I do Android dev but I don't know much about MC modded clients in particular - I have messed around with making simple mods so I know basic stuff and the general game structure but no further than that. The video just randomly popped up in my recommended and I stumbled upon this repo.

Anyway, waiting for Conner's response on this.

commented

Mixins + forgegradle ❤️

commented

Mn. Certainly seems like we got something interesting happening here. But yeah, not much to do except wait until what's really going on is revealed.

commented

¿Báritone 2.0 papér when?

commented

Honestly IMO tho, implementing ML for baritone movement and/or combat wouldn't be hard - for movement at least, all you need to do is take the current pathfinding, replace parts of it with variables (neurons) and use machine learning to tweak them towards the fastest possible route between two points. I'm no expert in pathfinding or machine learning, but as far as I can tell, there's not a lot of data needed to create perfect minecraft pathfinding - you just have to tweak it towards the fastest possible route, given a fairly small set of extra rules (Such as being able to place and break certain blocks dynamically depending what the player has in their inventory etc)

Combat is harder, because there's no "perfect solution" to a situation, you have to do a lot more training if you want a proficient bot - though, using things like killaura as a starting point, it becomes easier.

(I apologise if I'm mistaken in any of this, as I said, I'm no expert, this is just my opinion from my knowledge of the topics)

commented

IMO ML wouldn't even be needed here - but it looks like using it could result in some improvements

commented

Not everything has to be machine learning. Most pathfinding uses simple approximations (a* for example); in some basic simulations of movement, these algorithms are actually perfect. In Minecraft, these algorithms are probably pretty close to perfect. The bot in the FitMC video just used basic pathfinding to evade the guy, then it used basic pathfinding to follow him+kill aura. These features are already in Barritone, but automatically switching between them isn't; at least in the video, it's a much simpler automation of Barritone commands, rather than actual machine learning, that was going on.

commented

...but Fit said in the video that he had a conversation with lejiurv and that's how he got the info that Conner replaced some parts with ML, giving it a significant advantage to vanilla Baritone?

commented

I will not be releasing any details at this time.

commented

Aaalright, thanks for the response.

commented

The are multiple techniques involved in machine learning. There's learning by example (back propagation), and then there's learning through experimentation (evolutionary algorithms). Of course, there are no examples of pefect movement, and if there were then that method could just be implemented; that leaves evolution. Neural networks are actually pretty large and hard to simulate. The virtual evolution of neural networks, to become better than vanilla Barritone (if that's possible), would require something like 10000 generations of a population of 1000 neural nets each taking something like a minute to simulate individually. Completing that would take 19 years. You could also have tiny neural networks, with something like 3 layers and 20 neurons, but you're going to hit diminishing returns very quickly and are probably not going to succesfully outperform vanilla Barritone.

commented

There's learning by example (back propagation), and then there's learning through experimentation (evolutionary algorithms).

There are also various very successful techniques for reinforcement learning that usually outperform evolutionary algorithms, including normal and deep Q learning, policy gradients, actor-critic and many more.

Still haven't read through the whole thing, just leaving some notes

commented

I completely agree that it's nearly impossible to do this with neural evolution, but maybe he trained a neural network to approximate a heuristic for pathfinding or rewards for movements in specific directions? I assume that's what was meant by "replacing some parts". Not sure if it would really speed up the process but I guess with enough data from vanilla Baritone it could just as well outperform it

commented

I think reinforcement learning is kind of like learning through memory; it applies to closed systems where there's either a set outcome for each action, or at the very least a fixed probability linked to different outcomes. If you could have some kind of course, featuring a highly varied combination of interlinking parkour jumps, and you kept starting off your bot in a random section of it, you could probably get one that knows how to take paths that, 4 or 5 "moves" down the line, could allow you to save a second or 2. You would still have to go through a lot of work to fine tune that, and statistically speaking, I still think this guy just automated his Barritone, though.

commented

Off-topic: why are you doubling the "r" in Baritone?

commented

Maybe he wrote a differentiable A*? 😱

commented
commented

writing a differentiable A*

I don't think this really means anything.

commented

The rocket is typically used (in this repo) to convey sarcasm, but I searched for it and found some legit results (differentiable A* = you can train a neural network on it btw)

commented

Derivative just means slope... like in lines? Idea being that you're taking your neural network through a multi-dimensional curve towards a local minimum for the cost function, and you're building that curve out of line segments? To be honest, I'm not sure what that has to do with a basic, predefined search algorithm, or how you would go about "writing" it.

commented

I guess, we'll see, eh?

commented

It would honestly be really interesting if Conner and/or leijurv decide to sell this combat modification as a form of monetization strategy

commented

Only sell the combat modification? Its gonna get paid as a whole #436 🤔

commented

What @stijnsimons said.

commented

Sure seems to be heading that way, though babbaj's suggestion could involve the combat mod, if it has the potential to make enough moolah.

commented

Currently I am starting work on my own pathfinder from scratch (Mostly because it’s a cool and fun project idea). One of the long term goals I have in mind is algorithmic combat, which adapted based on enemy fighting style. I have a several mock ups of the algos behind pathfinding and combat systems, but haven’t started on code as of yet.

commented

Sounds cool, are you planning to open-source the "mock-ups"?

commented

I’m planning on open sourcing it (as I do with all my projects)

commented

👌

commented

Neat!

commented

A bit late, but here is a full explanation of @c0nn3r's work

commented

The project was sold by c0nn3r to another person for aprox 5000 USD...

its going to be paywalled in some aspects and wlll have a swarm API for users.

the code will be entirely self contained. youll only have a blackbox access to the code..

kinda shitty imo

commented

Who did c0nn3r sell it to?