NES Tetris AI gets 1.5 MILLION! (Human Possible) - Level 41

Поделиться
HTML-код
  • Опубликовано: 10 фев 2025
  • This is a highlight game from my Tetris AI, called StackRabbit. It absolutely obliterates the human world record of 1,439,000 by Joseph Saelee in 2020. It also beats the level world record of level 40 by Cheez (may be broken again soon by his new rolling technique though).
    StackRabbit has restrictions on both its tapping speed (13.5 Hz) and reaction time (416 ms), to keep its gameplay within the range of what humans are able to execute.
    Stay tuned for more AI-related content soon!

Комментарии • 136

  • @GregCannon7
    @GregCannon7  3 года назад +77

    As many of you have seen, a human (HydrantDude) has beaten this score, with an incredible 1.6 million! Thanks to the new rolling playstyle, humans can consistently achieve 20+ Hz taps, which completely redefines "human-possible." Under the new category of "rolling-possible," StackRabbit has achieved a score of 30 million (!!), but my goal is to see it hit the true killscreen with human-possible limitations! Stay on the lookout for a video of that nature, hopefully very soon.

    • @wapashaowo2384
      @wapashaowo2384 3 года назад

      bro this game keeps blowing my mind everyday

    • @LetsChat
      @LetsChat 3 года назад +6

      Someone in the tetris community: "And this is the ultimate limit of human achievement."
      Tetris Community: "Some kid in middle school did that last week, yo."

    • @copper4eva
      @copper4eva 3 года назад

      I think it'd be cool to see how efficient it could be pre-killscreen with rolling speeds. Like, I would love to know how often it could maxout, what percent of games, before the killscreen.

    • @redalchemist0
      @redalchemist0 3 года назад

      A human rolled the score and added 27.72K points on top of that

    • @drkn0ckers715
      @drkn0ckers715 3 года назад

      @@redalchemist0 80k actually

  • @bluephoenix97
    @bluephoenix97 15 дней назад +1

    Little did he know a human would get ten times this score

  • @tetris_roo3125
    @tetris_roo3125 3 года назад +87

    Is it possible to make a 'best move' mod?, where you can calculate a player's piece placement accuracy using stack rabbit? Creating a real time accuracy mod that could be used while playing maxoutclub seems like the next, big step for stack rabbit! PLEASE AND THANK YOU :D Great video

    • @waynedayata3775
      @waynedayata3775 3 года назад +4

      Yes that would be real great

    • @axelanderson2030
      @axelanderson2030 Год назад +1

      Theoretically, but I don't think it'd be able to cope if the board was a mess

    • @Saltmaster-ro4ep
      @Saltmaster-ro4ep Год назад +1

      StackFish

    • @DR-54
      @DR-54 8 месяцев назад

      Not reasonable because of the design of the AI.
      This AI is designed to get high scores rather than play the best it can. If the game was slowed down such that the AI had time to do actual lateral thinking to assign a score to the board and maximize the potential of the board, with the AI having an understanding of how the RNG is calculated, then the AI could be used this way.
      What we see here is not what is best, but it is simply what is not bad.

  • @marcdeusxtetris877
    @marcdeusxtetris877 3 года назад +27

    wow. Great work! This really shows how much more is possible (even without Rolling)

  • @cobratetris
    @cobratetris 2 года назад +11

    2021: AI gets 1.5 million!
    2022: Eric gets 6.4 million!

    • @ddodd69
      @ddodd69 9 месяцев назад +4

      2023: Blue Scuti Crashes Game!
      2024: Alex Thach gets 16 million

    • @Kalaphant
      @Kalaphant 3 месяца назад +1

      @@ddodd69
      Also 2024: dogplayingtetris gets rebirth with 29 million points!

    • @Official_Mister_Craigy
      @Official_Mister_Craigy 3 месяца назад +1

      @@Kalaphantnow we have to wait till someone gets triple rebirth with a score of 821364871364971364

    • @Official_Mister_Craigy
      @Official_Mister_Craigy 3 месяца назад

      @@Kalaphantnow we have to wait till someone gets triple rebirth with a score of 821364871364971364

  • @benmullen295
    @benmullen295 3 года назад +22

    This is awesome to see. I have long wanted to see a good "human possible" AI. love it!

  • @storminorman315
    @storminorman315 3 года назад +10

    THIS is the future of NES Tetris theory. I feel like I’ve learned a lot of stacking fundamentals, in just this one video. This is so freaking cool!!!

  • @jonasboandersen
    @jonasboandersen 3 года назад +2

    I really enjoyed your explanations along the way. Made it really enjoyable

  • @horsefeathersmcclipclopert5659

    Who wouldn't guessed that today would be one of the biggest milestones in the history of Tetris. A lot of it is thanks to you buddy!

  • @aaronroach2604
    @aaronroach2604 3 года назад +4

    If you want to create a more human-like bot and make it more exciting, I recommend adding RNG to the reaction time. Normally distribute it around 0.25 with a standard deviation of 0.03. This would be very realistic to a human reaction time. Also can add RNG to the speed for each piece. 13.75 + normal (0,0.5) error term.
    On a good day, a competitive human with good reaction time can get around 0.18. Sometimes we mess up tapping and slow down for a second, sometimes we barely get that extra tap in.

  • @stevemercier6691
    @stevemercier6691 3 года назад +1

    I absolutely LOVE the micro-adjusments!

  • @maxhaibara8828
    @maxhaibara8828 3 года назад +2

    I love how the AI loves flat line instead of just put everything on the left

  • @M4ni4C.44
    @M4ni4C.44 3 года назад +1

    named after your childhood pet rabbit , awesome ! ❤
    also awesome project 💪

  • @budgetcoinhunter
    @budgetcoinhunter 3 года назад +2

    And then a human hits 1.6 and flat rolls the extended score counter...

  • @spragetwang6317
    @spragetwang6317 3 года назад +1

    This is by far the BEST game I've ever seen in NES tetris. Not only because of the score, but the optimized piece placements and skillful adjustments. Even if rollers may surpass the score in the future, it won't change the fact that this is the best game. Truly stunning human endeavor! Keep up the good work, Greg!

    • @bluehacker122
      @bluehacker122 3 года назад

      i would say that DOGs soulutions are way more impressive

  • @evanwestphal3073
    @evanwestphal3073 3 года назад +2

    Just seeing this now but the world record for points is now at 2.3 million points. It’s insane how far Tetris has been pushed

  • @dillonfreed
    @dillonfreed 3 года назад +4

    Would love to do an analysis of great players piece placements vs. StackRabbit…. maybe we can learn something

  • @FrotLopOfficial
    @FrotLopOfficial 3 года назад +1

    Just wait until JD (Joseph) masters rolling. 15hz taps at a 2 mil score babyyyy

  • @AidanMmusic96
    @AidanMmusic96 3 года назад +1

    And now, human-achieved. Madness!

  • @MatthewBluefox
    @MatthewBluefox 3 года назад

    It was very well possible to stack for a comfort-zone Tetris in Level 37 at 10:56 by just stacking the J, and for 1.5 million and 45'600 points for the Tetris alone it would have been worth going for it. Huge game though, and awesome programming!

  • @33Pokenerd
    @33Pokenerd 3 года назад +13

    the audio for your voice is a bit low for me? Might just be my phone but yeah

    • @GregCannon7
      @GregCannon7  3 года назад +2

      Yeah it was a little scuffed, I'll try to boost it more next time!

    • @GregCannon7
      @GregCannon7  3 года назад +4

      Added subtitles for those having trouble hearing!

  • @sarysa
    @sarysa 3 года назад +3

    7:42 was weird. Can the AI not predict the outcome of a line clear? Up until then, it seemed like it would always use long bars immediately when tetris ready.

    • @GregCannon7
      @GregCannon7  3 года назад +4

      Yeah it was a bit odd. I think this particular instance is due to it really not liking that J dependency in the context of its current stack (probably because the left wall of the dependency is quite high, which is usually quite bad. But in this case isn't so bad, since it's along the left wall). In this case though I agree that taking the Tetris is probably the better move

    • @magicomerv
      @magicomerv 3 года назад +2

      @@GregCannon7 how much data can you retrieve? Would it be possible to see what kind of rank the AI assigned to that move?
      Good work btw, this is massively fascinating

  • @ebelsa
    @ebelsa 3 года назад +4

    Amazing work. The placement of the first piece was… odd. Any idea why it chose to immediately create a hole? I can see how calculating a move on a blank board might be tricky.

  • @superfunfactory8893
    @superfunfactory8893 3 года назад +1

    great video. little bit quiet maybe but great idea and work

  • @jrmaddu1
    @jrmaddu1 3 года назад +3

    If cheez made it to level 41 with his best Tetris rate in the kill screen he could probably score a 1.6 or 1.7 million, absolutely insane

  • @shazers7313
    @shazers7313 3 года назад +10

    Is StackRabbit a reference to StockFish ?

    • @GregCannon7
      @GregCannon7  3 года назад +8

      Yeah, it's definitely remeniscent of Stockfish. It's also cause I love rabbits, and cause the name rolls off the tongue 😁
      (It also has lots of parallels to Stockfish in terms of competition vs. other Tetris AIs. The two other major NES AIs at the moment are going all in on deep neural networks, whereas StackRabbit (like Stockfish) instead leverages deep move search and a high quality evaluation function)

    • @shazers7313
      @shazers7313 3 года назад

      @@GregCannon7 yeah that's what I noticed. Could you do a das version of it ? I would like to see how it survives without relying on tapping

  • @nycReaching
    @nycReaching 3 года назад

    The adjustments are ridiculous.. gg

  • @evanjones9602
    @evanjones9602 9 месяцев назад

    And now we’ve got a WR of level 235 and 16.7 million

  • @Flyzguy
    @Flyzguy 3 года назад +5

    Fantastic Work!!! Can Stack Rabbit get a DAS 1.3? Does stack rabbit know DAS or does it just have adjustable tapping speed?

    • @GregCannon7
      @GregCannon7  3 года назад +5

      It currently only has a flexible tapping speed, but there might be future possibilities of it playing with actual DAS! It's not unfeasible by any means, just is a matter of whether I get a chance to do it amidst everything else upcoming on the project 😅

  • @stevemelo
    @stevemelo 3 года назад +4

    Amazing work!
    Really hoping aGameScout does a video on this subject.
    Question... Is it possible to use this existing algorithm to determine if a maxout is possible starting on level 29? So far, Cheez has come the closest at an amazing 570k!

    • @GregCannon7
      @GregCannon7  3 года назад +8

      StackRabbit actually has a number of maxouts from a 29 start! 15 Hz is the lowest tapping speed that it's gotten a maxout 29 start, and it's also gotten them with 20 and 30 Hz. Lower tapping speeds are mayyybe possible but would require insane RNG or significantly better killscreen stacking

    • @stevemelo
      @stevemelo 3 года назад +1

      @@GregCannon7 so awesome!!

  • @jianshen2223
    @jianshen2223 3 года назад +1

    Interesting video. Needs to increase audio volume

  • @wolfelkan8183
    @wolfelkan8183 3 года назад +2

    Do you have a video about how you made StackRabbit? Specifically, how did you hook it up to an actual NES?

  • @simonvietjohansson8069
    @simonvietjohansson8069 3 года назад +3

    Very nice work! From another machine learning/AI enthusiast, which algorithm are you using? The way you describe the board as states and evaluating with 3 moves into the future very much sounds like a monte carlo tree search to me, but I suppose you could do something similar with a recurrent neural network as well?

    • @GregCannon7
      @GregCannon7  3 года назад +5

      At the moment it does a 2-ply search, and then chooses the best ~10 or so pairs of the first two moves to evaluate at depth 3. At that point it takes the top placement for each of the 7 3rd pieces, and averages them to get the EV. It also does a 1-ply search with a similar 7-branched hypothetical search to determine the initial placement (before its reaction time is over and it hasn't 'seen' the next box yet).
      From an AI standpoint the tree search isn't too complex, but it works quite well for this purpose. There's also tons of implementation complexity that stems from the fact that it does all of this 7 times simultaneously for each of the possible 2nd pieces (since it doesn't know the 2nd piece yet when it makes the initial placement)
      MCTS would def be something to look into in the future, since it could potentially get more depth on the promising placements. I didn't use it initially because the rest of the implementation of StackRabbit has so many moving parts I wanted to stick with something comprehensible and deterministic for debugging.

  • @CaryTheEagle
    @CaryTheEagle 3 года назад +3

    Jounce skipped 1.5 and got 1.6

  • @PresidentScrooge
    @PresidentScrooge 3 года назад

    This is the thing I have theorised a while ago, but I have no background in programming. Thanks for putting it into action. Great means to look at stacking options. If you could do one for DAS that would be cool as well, tho.

  • @Yubin_Lee_Doramelin
    @Yubin_Lee_Doramelin 3 года назад

    I assume that this AI is based on many hypertappers such as Joseph Saelee and EricICX. Cheez, a rolling player, has achieved 1.46M (New WR) as I remember, and according to this, we will be able to achieve 1.5M more easily.

  • @Joystick111
    @Joystick111 3 года назад

    That is a very good AI I have to say

  • @andrewhuang8024
    @andrewhuang8024 3 года назад +5

    Can the AI do pole vaults? would be really useful like at 6:39 where it decides to place the Z on the right instead of the left

    • @GregCannon7
      @GregCannon7  3 года назад +1

      It actually can! It thinks it's another kind of spin, e.g. the default placement would be vertical L and then it finds a "spin" that unrotates it to the final placement

  • @isaacmammel9186
    @isaacmammel9186 3 года назад

    Still beats Alex T's new record, but humans are within spitting distance! StackRabbit better watch out lol

  • @SodiumOverdose
    @SodiumOverdose 3 года назад

    POV smartest man in the world makes AI

  • @Toothache42
    @Toothache42 3 года назад +1

    I would be interested to know what biases StackRabbit has in terms of looking for getting multiple lines and Tetrises, over trying to maintain a landscape that can cover most or all pieces, and does that change during a particular play session, is it randomised in a certain set of ranges or will they adjust depending more on what is on the board at that moment?

  • @joesimpson6260
    @joesimpson6260 3 года назад +3

    I Think Joseph will beat it this year

  • @itsthefire
    @itsthefire 3 года назад +2

    Who's here after Jounce's 1.6?

    • @GregCannon7
      @GregCannon7  3 года назад +2

      Truee, rolling changed the game! Time to see what StackRabbit can do in the "rolling-possible" format (20Hz with human reaction time 😮

  • @al3ph35
    @al3ph35 3 года назад +7

    Really great stuff!
    Also remember when das was the traditional way? XD

    • @GregCannon7
      @GregCannon7  3 года назад +5

      Pepperidge Farms remembers

  • @gonengazit
    @gonengazit 3 года назад +1

    This is extremely cool! I’m wondering- can human change directions as quickly as the bot does? It seems to do a lot of quick left right switches (especially for those micro adjustments) it might be another interesting limitation to add.

    • @GregCannon7
      @GregCannon7  3 года назад +2

      It's hard to specify exactly. Although I will say that the 416 ms gives plenty of extra time to switch the finger position. It'll never do like an insta-tuck, but some of the tucks and spins it pulls off can be on the tougher side.

  • @iwersonsch5131
    @iwersonsch5131 Год назад

    I'm interested in StackRabbit's limitations with a Lv.39 double killscreen. Does that double killscreen end indefinite skillscreen play for good? Or is there still a chance?

  • @brahdavv8371
    @brahdavv8371 3 года назад +1

    Yoooo someone just got 1.6 milion check on tetris monthly plays

  • @TylerDunphy
    @TylerDunphy 3 года назад

    Wow!! This is fantastic. What were the inputs you gave to the AI?

  • @3rdalbum
    @3rdalbum 3 года назад

    It's impressive, but I feel like it's slightly disappointing to look at the memory to find the next piece rather than parsing the screen display.
    Still damn impressive in light of your next video.

    • @GregCannon7
      @GregCannon7  3 года назад +1

      I do have a console version that plays by visually scanning the board! The emulator one reads from memory mostly because it's logistically easier

    • @sangbeta2043
      @sangbeta2043 3 года назад

      @@GregCannon7 That's what I'd really like to see. An A.I. playing an NES console! Interfacing through the controller port would be obvious, but reading the board would be problematic.

  • @Leafu0
    @Leafu0 3 года назад

    super cool!

  • @Squizz11222
    @Squizz11222 3 года назад

    Great vid!
    I would be interested in finding out if there are any rolling limits. So higher Hz rate (30?) and reaction time of 250 ms

  • @Muunas
    @Muunas 3 года назад

    Matt Martin just told me about this, this is pretty awesome. I'd really love to see the max at 7.5hz though lol

    • @thunder7433
      @thunder7433 3 года назад

      I think that would be longer than 12hz cuz it would be to scared to even get a triple

  • @superfunfactory8893
    @superfunfactory8893 3 года назад

    would love to browse your code. Not that I would understand it I doubt. Very clever stuff

  • @anthonytrinh5168
    @anthonytrinh5168 3 года назад

    Could some link a video of the 47 million score with no limits? I feel like that could be so cool to see

    • @GregCannon7
      @GregCannon7  3 года назад

      I'm working on editing a video for its new best score of 102 million!

  • @PanchoKnivesForever
    @PanchoKnivesForever 3 года назад +1

    Is there a video proof of Joseph Saelee doing 1,439,000 anywhere? If so, could someone link it, please. I thought the 1.4 million barrier hadn't been broken yet by human play.

    • @GregCannon7
      @GregCannon7  3 года назад +4

      There was no video, but 10+ people watched him do it in screenshare in a video call. It's not the most solid evidence but it's been generally accepted by the community

    • @PanchoKnivesForever
      @PanchoKnivesForever 3 года назад

      @@GregCannon7 Oh cool! I had nooo idea. That's exciting. Thanks, Greg!

  • @michutetris6502
    @michutetris6502 3 года назад

    Anyone here after 1.6?

  • @xehP
    @xehP 3 года назад +1

    is the audio muted? /s

  • @ri3lalee
    @ri3lalee 3 года назад

    is there a vid with das only?

  • @colinfranco3046
    @colinfranco3046 3 года назад +1

    Why does the bot never do long bar flat to burn on kill screen? Is it actually just that un optimal?

    • @GregCannon7
      @GregCannon7  3 года назад

      There's nothing bad about it, but if the bar can reach the sides I think it's often better to build out the sides than clear the line. If it can't reach the side, then burning would be the next best option

  • @khairur_rachim
    @khairur_rachim 3 года назад

    I wonder what happen if the AI only knows 1 tetriminos piece next (only 1 piece in future)

    • @GregCannon7
      @GregCannon7  3 года назад

      It currently gets around 930k median, with similar restrictions to the one in the video, which is quite good considering how hard it is to stack without considering the next piece at all

    • @khairur_rachim
      @khairur_rachim 3 года назад

      @@GregCannon7 what's the median if it's only consider 1 next piece?

    • @GregCannon7
      @GregCannon7  3 года назад

      @@khairur_rachim oh like when it plays the whole game with only 1 next piece, the median score it gets is around 930,000 points.

    • @khairur_rachim
      @khairur_rachim 3 года назад

      @@GregCannon7 wow that's looks very nice. What's the best possible score on that case?

    • @GregCannon7
      @GregCannon7  3 года назад

      @@khairur_rachim the best it's gotten with no adjustments for the next box is a bit shy of 1.2 million. It's unusual because it's pretty consistent at getting 900k+ but it's really hard to get really high scores. Probably due to the fact that without knowing the next piece, you get forced into making holes pretty frequently, so it's hard to play completely clean

  • @shazers7313
    @shazers7313 3 года назад

    How does StackRabbit work ? Is it screenshot parsing ? Or does it had access to the game's data more directly ? I would like to do something similar with DAS but I don't know how to get the informations on screen.

    • @GregCannon7
      @GregCannon7  3 года назад

      It reads the pieces and the game state bit from the emulator memory (using a Lua script). As for the board, it tracks the state internally since it always knows what the board will be after every move it makes

    • @shazers7313
      @shazers7313 3 года назад

      @@GregCannon7 ok thank you. Does that means I have to do everything with lua ? Or can I somehow transfer the data to use python instead ?

    • @GregCannon7
      @GregCannon7  3 года назад

      @@shazers7313 I definitely wouldn't recommend doing the whole thing in Lua. I currently have a server set up that the Lua script talks to using HTTP requests. There might be other ways too, but that's what's worked for me

    • @epidemicz
      @epidemicz 3 года назад

      @@GregCannon7 any plans on releasing the source?

  • @owenatkin3148
    @owenatkin3148 3 года назад +1

    I hate to be that guy this long after the video came out, but... the audio volume is nearly non existent... like i had to quadruple my monitor volume to hear that you're actualyl speaking

  • @LinCalc
    @LinCalc 3 года назад

    Boom tetris for stackrabbit

  • @BramCohen
    @BramCohen 3 года назад

    How high of a score can it get while restricted to DAS?

  • @thelonelyowl2654
    @thelonelyowl2654 3 года назад +1

    Cheez just did a 2.3m lol

  • @grzegorzgk31
    @grzegorzgk31 3 года назад

    Can you simulation with das restrictions?

  • @codygrandell
    @codygrandell 11 месяцев назад

    how do you compile this?

  • @reina4969
    @reina4969 Год назад

    Well this didn't age well considering what the new max is...

  • @XZYSquare
    @XZYSquare 3 года назад +2

    you're too quiet I can't understand what you're saying

  • @derkrebskandidat8911
    @derkrebskandidat8911 3 года назад +1

    Unfortunately much too quiet

  • @standepain
    @standepain 3 года назад +2

    41 was just hit 2 days ago. Shockingly not by Cheez.

  • @herreragonza5891
    @herreragonza5891 3 года назад +1

    lvl 41 beat by Alex Tatch 2 weeks ago, without rolling

  • @LewisBeckman
    @LewisBeckman 3 года назад +1

    Can't hear you.

    • @GregCannon7
      @GregCannon7  3 года назад +3

      Yeah the audio wasn't recorded loud enough :(
      I added subtitles if you're having trouble hearing!

  • @iDrinkLotsOfCoffee_
    @iDrinkLotsOfCoffee_ 3 года назад +1

    Eh, Scotto Bozo got 1.5 by replaying a TAS run with his own two hands with DAS and not even playing into kill screen

  • @reddeugemo
    @reddeugemo 3 года назад

    emulate nes on snes

  • @НиколайМаринков-я6л

    Perfect vid but one problem and I am not mad about it but your voice is a little bit cuiet