absolllute / Mega-Hack-Pro-Future

Mega Hack Pro Suggestion & Issue Tracker
40 stars 5 forks source link

Automatic Botting System #1117

Open tntgav opened 1 year ago

tntgav commented 1 year ago

(not sure if this is already suggested so ill say it) simple idea, a bot that (attempts) to beat levels by using the trajectories shown using "show trajectory" and going in the direction of the one that leads the furthest, of course for it to be perfect it'd need to look ahead a lot but i think that even if it isnt perfect it'd be fun to play with

CoderQCYT commented 1 year ago

Show trajectory would need a huge revamp, and this idea would be hard to program and execute.

tntgav commented 1 year ago
  1. how would show trajectory need a revamp? it shows the locations as boxes meaning it clearly knows the x positions of each result for clicking, and x positions is all this simple bot needs to function against simple obstacles
  2. it can't be extremely hard to program as it'd just be to compare the x positions of each result from the trajectories, and then click or dont click based on the x position that each trajectory will land at.
  3. you say execute as if its an external file, but its an injected mod into the game, so it pretty much has control of everything about the game, including something like simply clicking.

of course i am willing to admit i am in the wrong if you are able to disprove these, but other than that it just personally doesnt make sense, as it'd basically just do what show trajectory does, go "if (trajectoryClickX > trajectoryStillX) {click}" and same for the other way around, of course in the language that megahack7 is written in. of course clicking isn't that simple but it also isn't going to be a challenge of any sort

Brittank88 commented 1 year ago
  1. how would show trajectory need a revamp? it shows the locations as boxes meaning it clearly knows the x positions of each result for clicking, and x positions is all this simple bot needs to function against simple obstacles

Show trajectory is not 100% accurate and can both have false positives and false negatives. For tight timings, this may cause the bot to fail, in which case potentially a resolution would be to test a widening range of frames before and after the point that the bot thought it could pass through?

2. it can't be extremely hard to program as it'd just be to compare the x positions of each result from the trajectories, and then click or dont click based on the x position that each trajectory will land at.

You fail to consider the wider picture of pathing through a set of obstacles in general - what about multiple paths, or fake paths, or paths that only appear after you have made your move (such as setups with move triggers, etc.)?

3. you say execute as if its an external file, but its an injected mod into the game, so it pretty much has control of everything about the game, including something like simply clicking.

By execution I think they were referring to the execution of the concept, not literally code execution.

Brittank88 commented 1 year ago

I must stress that I still love the idea, but it is MUCH more complex than as you describe.

tntgav commented 1 year ago

your points are fair, i do believe that it should still be made, even if not perfect. as i said in the original message, "even if it is not perfect it'd be fun to play with"

looking in show trajectory, picking the one the furthest away does end up making you survive longer, my whole point is basically "if its broken, at least its fun to try" and frankly in my opinion it would be better if its not perfect because then you can't have people come along and bot whole extreme demons and post them without cheat indicator, in all, unless simulating clicking ingame (which has already been done with replays if im correct) and comparing numbers is really difficult, it shouldnt be that large.

again, feel free to prove me wrong and i am willing to take it, but i didn't this time because i didn't feel like my original idea was represented in what you thought i was suggesting, as you were talking about a whole different botting system which, yes, would be very advanced

CoderQCYT commented 1 year ago

This would cause a lot of lag and slowdowns in games similar to what I said in #1115 but I do like the idea.

NewAlexGamer commented 1 year ago

that's how calculating every possibility and choosing the best one works, you either have the necessary power to do that or you don't

Brittank88 commented 1 year ago

that's how calculating every possibility and choosing the best one works, you either have the necessary power to do that or you don't

However, like search algorithms, the intelligence with which you choose what paths you consider first can determine (on average) how many iterations are required.

Brittank88 commented 1 year ago

post them without cheat indicator

I consider this identical to if you did it manually, lol. MH makes it absurdly easy to bot levels already.

i didn't feel like my original idea was represented in what you thought i was suggesting, as you were talking about a whole different botting system which, yes, would be very advanced

I understand, and I respect that. Something that kinda works but is fun to use on just general levels that aren't super difficult would be cool.

tntgav commented 1 year ago

post them without cheat indicator

I consider this identical to if you did it manually, lol. MH makes it absurdly easy to bot levels already.

i didn't feel like my original idea was represented in what you thought i was suggesting, as you were talking about a whole different botting system which, yes, would be very advanced

I understand, and I respect that. Something that kinda works but is fun to use on just general levels that aren't super difficult would be cool.

you get it, i just want to see the extent of something that isn't perfect, it'd be fun to see if it could do something like, beat stereo madness.

sofabeddd-old commented 1 year ago
  1. how would show trajectory need a revamp? it shows the locations as boxes meaning it clearly knows the x positions of each result for clicking, and x positions is all this simple bot needs to function against simple obstacles

Show trajectory is not 100% accurate and can both have false positives and false negatives. For tight timings, this may cause the bot to fail, in which case potentially a resolution would be to test a widening range of frames before and after the point that the bot thought it could pass through?

  1. it can't be extremely hard to program as it'd just be to compare the x positions of each result from the trajectories, and then click or dont click based on the x position that each trajectory will land at.

You fail to consider the wider picture of pathing through a set of obstacles in general - what about multiple paths, or fake paths, or paths that only appear after you have made your move (such as setups with move triggers, etc.)?

  1. you say execute as if its an external file, but its an injected mod into the game, so it pretty much has control of everything about the game, including something like simply clicking.

By execution I think they were referring to the execution of the concept, not literally code execution.

have it record a macro in practice, fixing the margin of error with multiple attempts

tntgav commented 1 year ago

you still don't get it, in my original post i thought i made it clear that it was not to bot levels perfectly, but just a fun idea, nobody can make a perfect bot without having to compute the level for hours at a time, and same with my other posts, its not a perfect bot, just a silly idea i thought of when bored and noticing that show trajectory's later x position ends up with getting further in the long run in many examples, it's not going to win on the hardest levels obviously

Spidapida commented 1 year ago

(Putting it here instead of making a new issue since this correlates to this)

I think a brute forcer makes more sense instead of this. Though I love seeing this idea come alive. Similar on making TASes on systems like NES, you will not see a tool that can auto complete objectives for you as fast as possible, and even if GD only has one input (or two if the level is a two-player mode), the compute power and time it requires to complete even something like Stereo Madness is something.

Additionally, 2.2 will spurt "soon" and platform mode completely invalidates this idea, due to the same reasons aforementioned.

Brittank88 commented 1 year ago

(Putting it here instead of making a new issue since this correlates to this)

I think a brute forcer makes more sense instead of this. Though I love seeing this idea come alive. Similar on making TASes on systems like NES, you will not see a tool that can auto complete objectives for you as fast as possible, and even if GD only has one input (or two if the level is a two-player mode), the compute power and time it requires to complete even something like Stereo Madness is something.

Additionally, 2.2 will spurt "soon" and platform mode completely invalidates this idea, due to the same reasons aforementioned.

I understand what you're saying and this is true, though @tntgav is requesting something that favours realtime over accuracy. They don't want something that is guaranteed to do well, just something to mess around and have fun with.

I feel like an auto system with two modes (realtime, accurate) would work well to satisfy everyone's desires here.

tntgav commented 1 year ago

absolutely agree with you, @Brittank88 as much as it'd be cool to automate a level perfectly, it'd take a lot of calculation, and probably lag the users computer for the calculation period. i think having 2 modes for an auto system would work well, as for platformer, just dont allow it to be used on platformer levels

absoIute commented 1 year ago

definitely a cool idea, but not sure if it's something I'd ever get around too, will keep this open though