- En NES Tetris, Willis, también conocido como Blue Scuti, se convirtió en la primera persona en llegar al nivel 157 y provocar el colapso del juego, logrando el primer True Killscreen en los 34 años de historia de la comunidad profesional de Classic Tetris
- El nivel 29, que durante mucho tiempo fue llamado “killscreen”, no era un fallo de código sino un límite de velocidad de control; con la llegada del hypertapping y el rolling, el límite humano siguió desplazándose
- Los glitched colors que aparecen después del nivel 138 presionan al mismo tiempo la visibilidad y la resistencia, por lo que ya no basta solo con poder presionar rápido para seguir rompiendo récords
- Gracias a la investigación de 2022 sobre el mecanismo de colapso, se determinó que el punto más temprano posible para un crash en el NES Tetris original era un single line clear al entrar al nivel 155, y Blue Scuti finalmente consiguió el colapso en el nivel 157
- Incluso después de “terminar” el juego, la competencia puede continuar con nuevos objetivos como la velocidad hasta el crash, la puntuación máxima antes del crash y llegar al rebirth screen después del nivel 255 evitando el colapso
El primer límite que impuso el nivel 29
- NES Tetris fue lanzado en 1989 para Nintendo Entertainment System y consiste en acomodar bloques que caen para borrar las líneas completadas
- Cada vez que se borran 10 líneas, el nivel sube y la velocidad aumenta; en el nivel 29 se alcanza la velocidad máxima dentro del juego
- Durante mucho tiempo, el nivel 29 fue llamado killscreen porque era difícil mandar las piezas de forma estable hasta los bordes manteniendo presionados los botones izquierdo o derecho
- Sin embargo, no era un killscreen en el sentido tradicional, como el nivel 256 de Pac-Man, donde un fallo de código impide seguir avanzando
- Si existiera una forma más rápida de mover las piezas, también sería posible seguir limpiando niveles después del 29 en NES Tetris
Hypertapping y rolling empujan el límite
- En 2011, Thor Aackerlund dejó el primer registro en video de haber llegado al nivel 30 usando hypertapping, una técnica de pulsación rapidísima que hace vibrar los dedos sobre el control
- Después del nivel 29, la velocidad del juego ya no aumenta, así que en teoría era posible llegar a niveles más altos
- Joseph Saelee fue el primero en alcanzar el nivel 31 en 2018, ganó el Campeonato Mundial de Tetris en 2018 y 2019, y elevó el récord de nivel hasta 35
- EricICX, un hypertapper todavía más rápido, fue el primero en llegar a los niveles 37 y 38
- Como el hypertapping apenas alcanzaba para soportar la velocidad del nivel 29, los récords en los niveles medios y altos de los 30 requerían muy buena suerte con las piezas y colocaciones casi perfectas
- En 2020, cheez, después de ver varias estrategias de pulsación rápida, creó el rolling al combinar la técnica de varios dedos de Hector Fly usada en arcade cabinet con una forma de empujar con los dedos por debajo del control para golpear los dedos de arriba
- El rolling permite una velocidad de pulsación más de dos veces mayor que la del hypertapper más rápido
- cheez fue el primero en llegar al nivel 40
- Después, los jugadores de élite cambiaron al rolling, y EricICX llegó hasta el nivel 95 en 2021
La nueva barrera creada por el glitch de colores
- NES Tetris originalmente tiene 10 paletas de colores brillantes y fáciles de ver para los niveles 0 a 9, y repite esa misma tabla cada 10 niveles
- A partir del nivel 138, el código que define los colores del nivel se rompe y empieza a leer datos fuera de la paleta, lo que produce paletas de colores anómalas difíciles de ver
- Fractal161 fue el primero en llegar a los glitched colors en la versión PAL, menos usada, pero PAL es 20% más lenta que NTSC, que es la usada en campeonatos y en los principales leaderboards
- EricICX fue el primero en llegar a los glitched colors en la versión NTSC y alcanzó el nivel 146 en un torneo real, aunque hizo top out en un nivel oscuro
- Desde entonces, los intentos de romper el récord quedaron frenados tanto por la visibilidad como por la resistencia, y la partida del récord mundial de EricICX duró casi 40 minutos
- PixelAndy superó el nivel oscuro que había eliminado a EricICX, pero quedó fuera en un nivel todavía más difícil donde aparecían piezas casi negras
Cómo funciona el True Killscreen y el éxito de Blue Scuti
- En 2021, Cannon creó la IA para jugar Tetris stackrabbit con el objetivo de llevar el juego más allá de los límites humanos
- stackrabbit, al no tener restricciones de resistencia ni visibilidad, superó los difíciles niveles con glitched colors y también pasó glitches extraños como el del nivel 235, que dura 800 líneas en lugar de las 10 habituales
- En niveles muy altos, el código del juego empieza a funcionar de forma ineficiente y llega un punto en que el juego lee la RAM como si fuera código en vez de leer instrucciones reales
- Si eso termina en una instrucción de detención, el juego se rompe por completo, y a eso se le llama true killscreen
- El crash no ocurre siempre en el mismo punto
- Puede activarse en momentos muy específicos dependiendo de condiciones como el nivel, la pieza actual y cuántas líneas se borraron de una sola vez
- Como stackrabbit jugó una versión modificada en la que el contador de puntuación cambiaba de 6 a 7 dígitos, sus puntos de crash no coincidían con los del juego original
- En 2022, HydrantDude organizó en una hoja de cálculo todos los escenarios que podían provocar un crash, y confirmó que el punto más temprano posible en la versión original sin modificar era un single al entrar al nivel 155
- En 2023, después de ganar el Campeonato Mundial, Fractal empezó a transmitir intentos diarios para provocar el crash, pero el primer día Blue Scuti llegó antes que él más allá de charcoal y alcanzó el nivel 153
- Ese resultado fue un nuevo récord mundial de nivel y también de puntuación, y quedó a solo 18 líneas del primer crash posible
- Después, Blue Scuti entró en una carrera con Fractal por lograr el crash y perdió una oportunidad en el nivel 154 al borrar un triple en lugar de un single
- El siguiente objetivo era el nivel 157, donde cada clear de 1 línea tenía una probabilidad de crash de 73%
- En el nivel 157, Blue Scuti logró borrar una línea en un último intento colocando una pieza J a la izquierda y provocó el crash del juego, marcando la primera vez que un jugador humano “venció” a NES Tetris
La competencia de récords después del crash y los objetivos que quedan
- Cuando apareció el rolling, cheez temía que la técnica fuera tan fuerte que arruinara a la comunidad, pero en la práctica le trajo un renaissance a Classic Tetris
- La preocupación de que las partidas de torneo se volvieran demasiado largas por el endless lineout llevó a un parche ROM que añadió una velocidad más alta en el nivel 39, y los partidos cambiaron hacia un estilo que busca line clears más grandes
- Los récords mundiales de nivel y puntuación parecían encaminados a convertirse en una simple competencia de resistencia, pero la carrera por provocar el crash los transformó en una persecución donde los récords cambiaban varias veces por semana
- Los objetivos después del crash pueden dividirse en varias direcciones
- Un speedrun hasta llegar al crash
- La mayor puntuación posible antes del crash
- Intentos de avanzar todavía más evitando las condiciones que provocan el crash
- Parte de la comunidad usa speedruns asistidos por herramientas (TAS) para introducir manualmente todos los movimientos y simular rutas que eviten las trampas de crash
- Si se esquivan todos los crashes, el último nivel al que se puede llegar es el 255, que es el último nivel que puede guardarse en la memoria del juego
- Los colores pasan a una paleta glitcheada de rojo puro
- 5 de las 7 piezas pueden provocar un crash incluso solo por caer normalmente, así que para sobrevivir hay que empujar hacia abajo casi todas las piezas
- Al completar el nivel 255, el juego regresa al nivel 0
- Ese momento de volver al nivel 0 después del 255 queda como un rebirth screen, que va más allá de que el jugador venza al juego: es el jugador y el juego sobreviviendo juntos
1 comentarios
Opiniones de Hacker News
En los últimos años, la escena de Tetris cambió de forma realmente vertiginosa.
Desde chico jugué con el método tradicional DAS[1], y no tuve tiempo de aprender hypertapping; cuando apareció rolling hace unos años, abandoné por completo cualquier intento de seguirles el ritmo. Mi mejor puntaje fue casi un maxout en el nivel 29.
Lo más llamativo es que los jugadores jóvenes están aplastando a la vieja escuela al cambiar las reglas mismas. En el CTWC ya nadie juega con DAS, y creo que Jonas fue el último gran jugador de DAS antes de pasarse al tapping. Supongo que es porque los mayores de 30 aprendimos con DAS, pero los jugadores jóvenes pueden empezar directamente con rolling.
RIP Jonas Neubauer (NubbinsGoody https://www.twitch.tv/nubbinsgoody). Después de que salió la película y Thor prácticamente se retiró, él fue quien impulsó el boom de Tetris, y en 2018, cuando yo intentaba lograr un maxout, él y su esposa me aconsejaron conseguir un monitor CRT. En ese momento ese era el cuello de botella.
[1] https://tetris.fandom.com/wiki/DAS
Ya que estamos hablando de Tetris, se puede jugar single player/multiplayer Tetris en la terminal por SSH:
ssh playnetris.comCódigo: https://code.rocket9labs.com/tslocum/netris
Connection to playnetris.com closed by remote host.Connection to playnetris.com closed.>ssh playnetris.comssh: connect to host playnetris.com port 22: Connection refusedEs increíble que, con suficiente práctica, la gente pueda llevar movimientos musculares rápidos y complejos a niveles casi inhumanos. Es un logro realmente impresionante.
Por eso los jugadores jóvenes suelen ser mejores también en los shooters en primera persona, y por eso a mí me cuesta sobrevivir más de un minuto en CoD :)
En 2020 vencí Tetris de otra manera: https://jasoneckert.github.io/myblog/i-finally-beat-tetris/
El único Tetris que conocía era la versión incluida en Windows Entertainment Pack <https://en.wikipedia.org/wiki/Microsoft_Entertainment_Pack>
Como esa versión era para Windows de 16 bits, no me sorprendía que guardara el puntaje en un entero de 16 bits. Lo sorprendente era que usaba un entero con signo de 16 bits, así que al pasar los 32.767 puntos el puntaje se volvía negativo.
De adolescente jugaba bastante bien, al punto de que me decepcionaba si en cada partida el puntaje no terminaba siendo negativo.
Años después vi en el Guinness Book of World Records que el récord de Minesweeper experto era de unos 25 segundos. Claro que, para demostrarlo, tendría que desenterrar de un basural aquella computadora vieja, así que tendré que vivir con el hecho de ser un poseedor no reconocido de un récord mundial.
A mí también me decepciona si no logro que el puntaje se vuelva negativo. Si estoy en forma, tengo suficiente tiempo y también un poco de suerte, en una sola partida puede pasar varias veces de positivo a negativo, luego otra vez a positivo y otra vez a negativo. Nunca lo conté, pero alguna vez una partida me duró al menos más de 45 minutos.
Dicho eso, tampoco me sorprende demasiado que cualquiera de los dos usara enteros con signo. En todas las bases de código en las que trabajé, los enteros con signo se usaban como la opción obvia para números, casi como valor por defecto. Solo veía
uintcuando era realmente importante o cuando el desarrollador era demasiado estricto.También hay un artículo relacionado: Celebrating the first NES Tetris game crash (biggieblog.com)
Publicado hace 10 días por davidrjones1977, 197 puntos, 56 comentarios.
https://news.ycombinator.com/item?id=38734106
Es un video realmente inspirador. Hasta se podría decir que este nivel de frikismo es lo que empuja nuestra civilización hacia adelante.
Es sorprendente ver los avances recientes, y GameScout es una de las personas que mejor narra historias de videojuegos hoy, a la par de Summoning Salt.
El video introductorio a la comunidad de Tetris que hizo John Green en 2018 también es excelente:
https://www.youtube.com/watch?v=twS0SrDg-fc
No me interesa Tetris, pero aun así me resultó sorprendentemente interesante.
Ahora la pregunta es si la ejecución de código desde RAM puede llevar a estados de juego o exploits interesantes, como el Pokémon Yellow Total Control Hack: https://youtube.com/watch?v=p5T81yHkHtI
Pero la preparación es terriblemente compleja y precisa. Hay que conseguir un puntaje casi imposible, ingresar nombres específicos en la lista de mejores puntajes y luego llegar al crash exactamente en el frame en que el valor interno del generador de números aleatorios representa por casualidad una instrucción que salta a esa lista de mejores puntajes. Además, varios registros también tienen que contener por casualidad los valores necesarios.
Después de eso sigue un poco de bootstrapping hasta obtener control completo.