When describing the process that a human can do but not a TAS bot try to be as specific as possible. Also if someone did somehow manage to build a TAS bot that did this thing you called "impossible" compare how difficult it would to be to program compared to current TAS bots.
A human can eat. When humans eat, they take a fork and a knife, cut the food into small pieces, then pierce them with a fork and put in their mouth. In case it's impossible to pierce the food, they use a spoon, or use a fork as they would use a spoon. After food arrives into mouth, humans start grinding it with their teeth until the food becomes a soft mass. Then they swallow it, and the food goes through digestive tract. After the food is fully digested, it's ejected out of anus in form of fecal matter.
A TAS bot cannot eat.
In seriousness, Humans are great at detection and estimation (possibly one of the most important part of statistics).
How does this matter? Dimensionality reduction. A human can easily detect when a movement will cause undesirable results, often long before the actual undesirable result occurs. A human can also easily estimate the result of a movement, which removes the need to test all possible permutations and combinations.
Detection example: Mario performs a jump that will result in the collision with a block. A human knows long before the collision that it will occur.
Estimation: A jump in game X requires holding the jump button for 8 frames, not 7, and not 9. A human can estimate that it will take 7-9 frames, and can easily test 7, 8 and 9. The computer counterpart must test 1,2,3,4,5,6,7,8,9,10, and etc.
So, unless you build advanced Detectors and Estimators, you can't reduce the dimensionality of the problem of a TAS. Bisqwit is better than I at the math to produce the possible outcomes.
Sage advice from a friend of Jim: So put your tinfoil hat back in the closet, open your eyes to the truth, and realize that the government is in fact causing austismal cancer with it's 9/11 fluoride vaccinations of your water supply.
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
DarkKobold is talking about the 'frameproblem', AI can't reduce the number of relevant possible actions in his world. However, this does not neccessarily mean a problem. The question was something impossible, which I would say none.
As for the frameproblem, that's where humans come into play, building certain rules and restricting it's action-space.
Unlessy you're talking about a neural net type of bot, in which case... good luck training it.
A very simply programmed bot would be able to do anything a human can do. It would just take eons to do so.
A complexly programmed bot would not be able to do anything a human can do, but it would be able to do many things much much faster.
I think there's a problem with the original question. <_<
If you had a computer that was infinitely fast, or so close that it could be considered infinite, and told it to find the fastest input to win all games in existence, it would still be limited. For example, if a game had a password screen, the bot would immediately enter a password to go to the last level. It would be impossible to have it do a no-warps run, and games like SMB3 would have very unentertaining autoscrollers for the sake of reducing lag.
I'm sure you could find the memory addresses that say "This is a warp" and program the bot to watch those addresses to avoid doing it. I mean, isn't that how the bot would know it's beaten the game in the first place?
put yourself in my rocketpack if that poochie is one outrageous dude
I believe the idea behind a universal turing machine is that given enough instructions a universal turing machine can do the work of any other machine.
Since a TAS bot is a state machine, given enough states and decisions, I guess it could do anything, but limitations on computing resources prevent this.
I don't think a TAS bot could love
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
A bot probably cannot think outside the box to create some intriguing solutions to a problem; you give it specific parameters, and it finds the best solution from that. A human can probably let his/her mind wander and think of something completely different.
I don't think a bot can make entertainment during waiting periods. There's 2 examples where this is not the case: Gradius, and Pulseman (I think?) where a bot was used to create pseudo-random input during entertainment segments; but in general I think a human can understand better of what an audience wants to see and would be entertained by, and personally know the game, what it's limits are, and how to push those limits in an entertaining fashion.
Bots can theoretically test routes better, but that takes massive amounts of time and processing power, which humans can do easier with some paper, pencil, free time,whatever it is they use (sometimes even in their head.)
When finding glitches, a human can look at something and say "hey, I wonder if this will work/can I use this method to do this, which I'm ordinarily not supposed to do/Hey, that wasn't supposed to happen."
I don't think bots can dance to the music.
Joined: 5/2/2006
Posts: 1020
Location: Boulder, CO
How reasonable would it be to set a TAS bot to work on arkanoid?
Because only 2 buttons (left and right) are relevent, would it be able to work that game over with 100% precision?
Joined: 5/1/2004
Posts: 4096
Location: Rio, Brazil
Twelvepack wrote:
How reasonable would it be to set a TAS bot to work on arkanoid?
Because only 2 buttons (left and right) are relevent, would it be able to work that game over with 100% precision?
Hard to do with the ball moving horizontally faster than the pad, but with the steering wheel control it is possible, I believe. But it may get stuck on the corner of a stage sometimes.
Joined: 11/11/2006
Posts: 1235
Location: United Kingdom
A bot would almost always be boring during auto scrollers (that or spazzing out). A human usually adds something interesting and/or entertaining to the area.
<adelikat> I am annoyed at my irc statements ending up in forums & sigs
A bot would almost always be boring during auto scrollers (that or spazzing out). A human usually adds something interesting and/or entertaining to the area.
But theoretically, a bot could be programmed to be entertaining whenever possible. It could even be programmed to make an entertaining movie without aiming for time. It would definitely be hard to do, but completely possible.
I don't think a universal bot could ever be possible unless it automatically adapts to each game. I think if the bot is programmed to know the game as with anything else like chess then the liklyhood is that it would probally be able to detech faults and likely oversights through using compilers and interpreters thus being able to analyze the gaming code in depth. Still a bot will always been inefficient compared to humans when it comes to TASing.
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
a universal bot is a problem by itself.
the way i've programmed bots so far is by first finding the specific ROM addresses for certain information. every game has it's own mechanic.
sure, some mechanics are quite generic, but most aren't. so building a universal bot (turing machine...) is a task i don't see accomplished any time soon. on the other hands, if you have a neural net and some correct goals and quite some time on your hands, you can probably train a net to do it. but that will take a lot of time and patience, and odds are it won't work very well (if at all).
But... bots themselves can be used fine to run through a game efficiently. didn't bisqwit do this for some rockman? i don't remember how fast it was compared to the record though.
i find bots computing tas'es quite interesting. having to find the rom addresses is the most annoying part of it. but there was a site trying to collect them, some wiki. search for it on this forum.
How reasonable would it be to set a TAS bot to work on arkanoid?
I think that this is very reasonable. Given you know the position, speed, and trajectory of the ball at a given time -- which I believe would be some memory addresses in RAM, along with the layout of the remaining blocks -- more addresses, you could calculate where the ball is going to be at any time in the future.
That actually would be very interesting to see.
I made a bot a long time ago with the concept of it being a user created state machine. A bot of this type wouldn't quite be universal because it would require human logic to program it's goals (i.e. should we mash buttons randomly, or move is a certain direction?), but it could be close. I believe that most games we play can be broken down into a series of yes/no conditions. If we know what the goals are, we could write a decision tree large enough to get to that goal, as well as handle any obstacles in our way.
How reasonable would it be to set a TAS bot to work on arkanoid?
I think that this is very reasonable. Given you know the position, speed, and trajectory of the ball at a given time -- which I believe would be some memory addresses in RAM, along with the layout of the remaining blocks -- more addresses, you could calculate where the ball is going to be at any time in the future.
That actually would be very interesting to see.
I made a bot a long time ago with the concept of it being a user created state machine. A bot of this type wouldn't quite be universal because it would require human logic to program it's goals (i.e. should we mash buttons randomly, or move is a certain direction?), but it could be close. I believe that most games we play can be broken down into a series of yes/no conditions. If we know what the goals are, we could write a decision tree large enough to get to that goal, as well as handle any obstacles in our way.
Joined: 6/4/2006
Posts: 97
Location: Everywhere including nowhere
qFox wrote:
But... bots themselves can be used fine to run through a game efficiently. didn't bisqwit do this for some rockman? i don't remember how fast it was compared to the record though.
He also used a genetic algorithm that one time to work with the Cutman glitch.
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
Right. Bots are very efficient to get you a few frames ahead. Especially with first generation consoles that have fewer buttons (hence cutting down decision space dramatically...)
Does the paddle in arkanoid move as fast as the ball? Because then a bot should never lose (obviously).
Joined: 4/25/2004
Posts: 615
Location: The Netherlands
And even then the tree is huge...
On the other hand you can just compute it per level, which should cut down the tree consideably. Unless it's bonus works like uh, that pool game bisqwit and I worked on a while ago.
Anyways, the point was that everything a human can do, a bot could do. The question is more of efficiency and probability though.
In arkanoid the ball can move faster than the paddle, so the "stay under" technique doesn't work for very long.
You can find the position, vertical and horizontal speed, and direction in ram, but that's still not enough to always predict where the ball will end up because there are enemies that appear in a much more "random" way (though technically you could probably decompile the code and figure that out too)
But even then, that's just a bot to *survive* arkanoid...
a brute forcebot should have an easier time with arkanoid simply because there are only 3 states the controler can be in.
true, but yeah, like qFox says, it would still be quite complex. it would be interesting to look at the best way to eliminate enough possibilities to make it speedrun even one level in a reasonable amount of time.