1 पॉइंट द्वारा GN⁺ 2024-01-03 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • NES Tetris में Willis, जिन्हें Blue Scuti के नाम से जाना जाता है, पहली बार level 157 तक पहुँचे और game crash कराकर 34 साल पुराने pro Classic Tetris community का पहला True Killscreen record बनाया
  • कभी “killscreen” कहे जाने वाला level 29 कोई code bug नहीं था, बल्कि input speed की सीमा थी; hypertapping और rolling के आने के बाद human players की limit लगातार आगे खिसकती गई
  • level 138 के बाद दिखने वाले glitched colors visibility और endurance दोनों पर दबाव डालते हैं, जिससे सिर्फ तेजी से button दबाने की क्षमता के भरोसे record आगे बढ़ाना मुश्किल हो जाता है
  • 2022 में crash mechanism पर research से यह साफ हुआ कि original NES Tetris में सबसे जल्दी crash कराने की संभव जगह level 155 में प्रवेश करते समय single line clear है, और Blue Scuti ने आखिरकार level 157 पर crash सफल किया
  • game को “beat” करने के बाद भी competition crash तक पहुँचने की speed, crash से पहले highest score, और crash से बचते हुए level 255 के बाद rebirth screen तक पहुँचने जैसे नए लक्ष्यों में जारी रह सकता है

Level 29 ने बनाई पहली सीमा

  • NES Tetris 1989 में Nintendo Entertainment System के लिए release हुआ था; यह गिरते blocks को जोड़कर पूरी lines मिटाने वाला game है
  • हर 10 lines मिटाने पर level बढ़ता है और speed तेज होती जाती है; level 29 पर game अपनी maximum in-game speed तक पहुँचता है
  • लंबे समय तक level 29 को killscreen कहा गया, क्योंकि pieces को left/right button hold करके reliably किनारे तक भेजना मुश्किल था
  • हालांकि यह Pac-Man के level 256 की तरह code bug के कारण progress रुक जाने वाले पारंपरिक अर्थ का killscreen नहीं था
    • अगर pieces को और तेजी से move करने का तरीका हो, तो NES Tetris में level 29 के बाद भी clear करना संभव है

Hypertapping और Rolling ने सीमा आगे बढ़ाई

  • 2011 में Thor Aackerlund ने controller को उंगलियों को कंपन कराने जैसा बहुत तेजी से दबाने वाली technique hypertapping से level 30 तक पहुँचने का पहला video record बनाया
  • level 29 के बाद game speed और तेज नहीं होती, इसलिए theoretically और ऊँचे levels तक पहुँचना संभव था
  • Joseph Saelee 2018 में पहली बार level 31 तक पहुँचे, 2018 और 2019 Tetris World Championship जीते, और level record को 35 तक ले गए
  • और तेज hypertapper EricICX पहली बार level 37 और 38 तक पहुँचे
  • hypertapping level 29 की speed को बस मुश्किल से संभाल पाने के स्तर का था, इसलिए 30s के middle-to-late records के लिए अच्छी piece luck और लगभग perfect placement चाहिए था
  • 2020 में cheez ने कई button-mashing strategies देखने के बाद, arcade cabinet में इस्तेमाल हुई Hector Fly की multi-finger technique और controller के नीचे की उंगली से धक्का देकर ऊपर की उंगली से टकराने वाली technique को मिलाकर rolling बनाया
    • rolling सबसे तेज hypertapper से भी दोगुनी से ज्यादा tapping speed संभव बनाता है
    • cheez पहली बार level 40 तक पहुँचे
    • इसके बाद top players rolling पर shift हुए, और EricICX 2021 में level 95 तक पहुँच गए

Color glitches ने नई दीवार बनाई

  • NES Tetris में मूल रूप से level 0~9 के लिए 10 bright और साफ दिखने वाले color palettes हैं, और हर 10 levels पर वही color table repeat होती है
  • level 138 से level colors तय करने वाला code टूट जाता है और color table के बाहर का data पढ़ने लगता है, जिससे देखने में मुश्किल abnormal color palettes दिखते हैं
  • Fractal161 कम इस्तेमाल होने वाले PAL version में पहले glitched colors तक पहुँचे, लेकिन PAL championship और major leaderboards में इस्तेमाल होने वाले NTSC से 20% धीमा है
  • EricICX NTSC version में पहली बार glitched colors तक पहुँचे और actual tournament match में level 146 तक गए, लेकिन dark level में top out हो गए
  • इसके बाद record attempts में visibility और endurance दोनों बाधा बने, और EricICX का world record game लगभग 40 minutes तक चला
  • PixelAndy ने वह dark level पार कर लिया जिसने EricICX को बाहर किया था, लेकिन एक और कठिन level में हार गए जहाँ pieces लगभग black दिखते थे

True Killscreen का सिद्धांत और Blue Scuti की सफलता

  • 2021 में Cannon ने human limits से आगे देखने के लिए Tetris-playing AI stackrabbit बनाया
  • stackrabbit में stamina और visibility की constraints नहीं थीं, इसलिए वह कठिन glitched color levels से गुजर गया और level 235 जैसी अजीब glitch भी पार कर गया, जो सामान्य 10 lines की जगह 800 lines तक चलती है
  • बहुत ऊँचे levels पर game code inefficiently चलता है, और ऐसी स्थिति बनती है जहाँ game instruction code की जगह RAM को code की तरह पढ़ता है
    • अगर उसका परिणाम halt instruction तक पहुँचे, तो game पूरी तरह टूट जाता है, और इसे true killscreen कहते हैं
  • crash हमेशा एक ही जगह नहीं होता
    • level, current piece, और एक बार में साफ की गई lines की संख्या जैसी conditions के हिसाब से यह बहुत specific points पर trigger हो सकता है
    • stackrabbit 6-digit से 7-digit score counter में बदले हुए modified version पर खेलता था, इसलिए उसके crash points original जैसे नहीं थे
  • 2022 में HydrantDude ने crash trigger कर सकने वाली सभी situations को spreadsheet में व्यवस्थित किया, और original unmodified version में सबसे शुरुआती possible crash point level 155 में प्रवेश करते समय single के रूप में confirm हुआ
  • 2023 में World Championship जीतने के बाद Fractal ने daily crash challenge stream शुरू की, लेकिन पहले ही दिन Blue Scuti ने पहले charcoal पार किया और level 153 तक पहुँच गए
    • यह नया level world record और score world record था, और पहले crash से सिर्फ 18 lines दूर था
  • इसके बाद Blue Scuti Fractal के साथ crash challenge race में उतरे, और level 154 पर single की जगह triple clear करके crash मौका चूक गए
  • अगला लक्ष्य level 157 था, जहाँ हर 1-line clear पर crash की probability 73% थी
  • Blue Scuti ने level 157 पर J piece को left में रखने की आखिरी कोशिश में line clear कर game crash trigger किया, और NES Tetris में पहली बार किसी human player द्वारा game को “win” करने का पल बनाया

Crash के बाद records की दौड़ और बचे हुए लक्ष्य

  • rolling के आने के समय cheez को चिंता थी कि यह technique इतनी powerful है कि community को खराब कर सकती है, लेकिन असल में इसने Classic Tetris में renaissance ला दिया
  • tournament games endless lineout की वजह से बहुत लंबे हो सकते हैं, इस चिंता के चलते level 39 में और तेज speed जोड़ने वाला ROM patch आया, और matches का focus बड़े line clear करने पर shift हुआ
  • level और score world records देखने में सिर्फ endurance की competition बनते लग रहे थे, लेकिन crash challenge के दौरान यह एक ऐसी chase में बदल गया जिसमें एक ही हफ्ते में कई बार records बदले
  • crash के बाद के goals कई दिशाओं में बँट सकते हैं
    • crash तक जल्दी पहुँचने वाला speedrun
    • crash से पहले संभव highest score
    • crash conditions से बचते हुए और दूर जाने की challenge
  • community का एक हिस्सा tool-assisted speedrun (TAS) से हर move को manual input करके crash traps से बचने वाले routes simulate करता है
  • अगर सभी crashes से बचा जाए, तो आखिरी reachable level 255 है, और यही वह last level है जिसे game memory में store कर सकता है
    • color एक pure red glitch palette है
    • 7 pieces में से 5 सिर्फ normal falling से भी crash trigger कर सकते हैं, इसलिए survive करने के लिए लगभग हर piece को down press करना पड़ता है
  • level 255 clear करने पर game level 0 पर वापस लौटता है
  • level 255 के बाद level 0 पर लौटने का पल player द्वारा game को beat करने से आगे जाकर, player और game दोनों के साथ जीवित बचने वाला rebirth screen बन जाता है

1 टिप्पणियां

 
GN⁺ 2024-01-03
Hacker News की रायें
  • पिछले कुछ वर्षों में Tetris का सीन सचमुच बहुत तेज़ी से बदल गया है
    बचपन से मैं पारंपरिक DAS[1] तरीके से खेलता आया, और hypertapping सीखने का समय नहीं निकाल पाया; लेकिन कुछ साल पहले rolling आने के बाद मैंने साथ बने रहने की कोशिश पूरी तरह छोड़ दी। मेरा सर्वश्रेष्ठ स्कोर level 29 पर लगभग maxout के करीब था
    और भी खास बात यह है कि युवा खिलाड़ी खुद नियमों को बदलते हुए पारंपरिक खिलाड़ियों पर हावी हो रहे हैं। CTWC में अब कोई DAS से नहीं खेलता, और Jonas शायद tapping पर जाने से पहले आखिरी बड़े DAS खिलाड़ी थे। मेरा मानना है कि इसकी वजह यह है कि 30+ उम्र के लोगों ने DAS से सीखा, जबकि युवा खिलाड़ी शुरुआत से ही rolling से शुरू कर सकते हैं
    RIP Jonas Neubauer(NubbinsGoody https://www.twitch.tv/nubbinsgoody). फिल्म आने के बाद Thor के लगभग रिटायर हो जाने पर Tetris की लहर को आगे बढ़ाने वाले वही थे, और 2018 में जब मैं maxout का लक्ष्य बना रहा था, तब उन्होंने और उनकी पत्नी ने मुझे CRT monitor लेने की सलाह दी थी। उस समय वही bottleneck था
    [1] https://tetris.fandom.com/wiki/DAS

    • मुझे लगता था कि मैं Tetris जानता हूं, लेकिन ऐसा नहीं था। ऊपर वाली comment मैं कितना कम समझ पाया, यह समझकर विनम्र हो गया
    • मुझे नहीं पता था कि Jonas का निधन हो गया था; यह सचमुच दुखद है। YouTube पर उनके Tetris वीडियो और “Boom Tetris” कहने वाले उस व्यक्ति को देखने की याद है
    • hypertapping और tapping क्या होते हैं?
  • Tetris की बात चली है तो, SSH के जरिए terminal में single-player/multi-player Tetris खेल सकते हैं
    ssh playnetris.com
    code: https://code.rocket9labs.com/tslocum/netris

    • game शुरू होने के 1–2 मिनट बाद connection टूट गया
      Connection to playnetris.com closed by remote host.
      Connection to playnetris.com closed.
      >ssh playnetris.com
      ssh: connect to host playnetris.com port 22: Connection refused
  • यह हैरान करने वाला है कि पर्याप्त अभ्यास से लोग तेज़ और जटिल muscle movements को लगभग अमानवीय स्तर तक ले जा सकते हैं। सचमुच कमाल की उपलब्धि है

    • मानसिक क्षेत्र में भी यही बात है। chess जैसी चीज़ के बारे में सोचें। कुल मिलाकर यह आश्चर्यजनक है कि इंसान किसी भी चीज़ में कितना अच्छा हो सकता है, और कल्पना होती है कि अतीत के close-combat आधारित युद्धों के दौर में भी ऐसे ही असाधारण लोग रहे होंगे। अच्छी genetics, अच्छा diet और अच्छी training जिनमें साथ आ जाए, वे सचमुच इंसानों के बीच पहाड़ जैसे रहे होंगे
    • मुझे लगता है कि शीर्ष Tetris खिलाड़ियों में ज़्यादातर बच्चे होने की एक वजह है। कोई वयस्क चाहे जितना अभ्यास करे, उसी स्तर की hand-eye coordination तक पहुंचना मुश्किल होगा
      इसलिए युवा खिलाड़ी आम तौर पर first-person shooter games में भी बेहतर होते हैं, और यही वजह है कि मैं CoD में एक मिनट से ज्यादा जिंदा नहीं रह पाता :)
    • यह इरादतन musical instrument बजाने की virtuosity से समानता दिखाने के लिए था या नहीं, पता नहीं, लेकिन किसी भी तरह इससे असहमत नहीं हुआ जा सकता
  • 2020 में मैंने Tetris को एक अलग तरीके से हराया था: https://jasoneckert.github.io/myblog/i-finally-beat-tetris/

    • font बदलना बेहतर होगा। लंबा text पढ़ने के लिए यह बहुत मुश्किल है
  • जिस Tetris को मैं जानता था, वह सिर्फ Windows Entertainment Pack में शामिल version था <https://en.wikipedia.org/wiki/Microsoft_Entertainment_Pack>
    यह version 16-bit Windows के लिए था, इसलिए score को 16-bit integer में store करना आश्चर्यजनक नहीं था। आश्चर्य की बात यह थी कि इसमें signed 16-bit integer इस्तेमाल हुआ था, जिससे 32,767 points पार करते ही score negative हो जाता था
    teenager उम्र में मैं काफ़ी अच्छा था, इतना कि अगर हर game में score negative न हो तो निराशा होती थी

    • 90 के दशक की गर्मियों में मैं लगभग हर दिन Minesweeper खेलता था। इतना अच्छा हो गया कि आखिरकार सबसे बड़ी puzzle, यानी expert difficulty, को 17 seconds तक ले आया। उस समय लगा कि इससे तेज़ नहीं हो सकता, इसलिए किसी और game पर चला गया
      कुछ साल बाद Guinness Book of World Records देखा तो expert Minesweeper का record करीब 25 seconds था। बेशक इसे साबित करने के लिए landfill से पुराना computer खोदकर निकालना पड़ेगा, इसलिए मुझे इस बात के साथ जीना होगा कि मैं एक अनमान्य world record holder हूं
    • आज भी मुझे Tetris का वही version सबसे ज़्यादा पसंद है। कभी-कभी अभी भी खेलता हूं। 64-bit Windows, 16-bit programs के साथ ठीक से नहीं चलता, इसलिए इसे dedicated Windows XP virtual machine में चलाता हूं
      अगर मैं score को negative नहीं बना पाता तो मुझे भी निराशा होती है। अगर हालत सही हो, समय पर्याप्त हो और थोड़ी किस्मत भी साथ दे, तो एक game में positive से negative, फिर positive, फिर negative कई बार जा सकते हैं। गिना नहीं है, लेकिन एक game कम-से-कम 45 मिनट से ज्यादा चला है
    • याद है कि पुराने Solitaire या Freecell में से किसी एक में भी यही समस्या थी। जानबूझकर game हारता था ताकि score -32767 के आसपास पहुंच जाए, और बचपन में integer wrapping से मेरा पहला सामना वही था। ऐसी चीज़ें अनजाने में बहुत कुछ सिखा देती हैं
      हालांकि दोनों में से किसी में भी signed integer का इस्तेमाल होना बहुत हैरानी की बात नहीं है। जिन भी codebases पर मैंने काम किया है, उनमें signed integers को बस numbers के लिए स्वाभाविक choice की तरह default माना गया। uint मैंने तभी देखा जब वह सचमुच जरूरी हो या developer जरूरत से ज्यादा strict हो
  • इससे जुड़ा लेख भी है: Celebrating the first NES Tetris game crash (biggieblog.com)
    10 दिन पहले davidrjones1977 ने post किया, 197 points, 56 comments
    https://news.ycombinator.com/item?id=38734106

  • यह सचमुच प्रेरित करने वाला video है। कहा जा सकता है कि इस स्तर की geekiness ही हमारी सभ्यता को आगे धकेलती है

    • community भी एक-दूसरे को काफ़ी support करती दिखती है। “King of Kong” के मुकाबले, जो कहीं ज्यादा competitive और संदिग्ध लगा था
    • video सचमुच बहुत अच्छी तरह बना है, और देखने में बहुत मज़ा आया
  • हाल की progress देखना हैरान करने वाला है, और GameScout अभी game narratives को सबसे अच्छी तरह पेश करने वालों में से एक है, जिसे Summoning Salt के बराबर रखा जा सकता है
    John Green का 2018 में बनाया Tetris community intro video भी शानदार है:
    https://www.youtube.com/watch?v=twS0SrDg-fc

  • Tetris में रुचि न होने के बावजूद यह अप्रत्याशित रूप से दिलचस्प था

    • मेरे साथ भी यही हुआ। मैं YouTube videos भी लगभग नहीं देखता, लेकिन शुरुआत से थोड़ा आगे बढ़ते ही जल्दी ही इसमें खिंच गया
  • अब सवाल यह है कि क्या RAM code execution Pokémon Yellow Total Control Hack जैसे दिलचस्प game states या exploits तक ले जा सकता है: https://youtube.com/watch?v=p5T81yHkHtI

    • यह संभव है, और NES Tetris में arbitrary code execution हासिल किया जा चुका है
      हालांकि setup बेहद जटिल और बहुत सटीक है। लगभग असंभव score बनाना होता है, high score list में खास नाम डालने होते हैं, और ठीक उस frame पर crash तक पहुंचना होता है जब random number generator की internal value संयोग से उस high score list पर jump करने वाले instruction को दर्शाती हो। इसके अलावा कई registers में भी संयोग से जरूरी values होनी चाहिए
      इसके बाद पूर्ण control मिलने तक थोड़ी bootstrapping चलती है
    • Super Mario World में भी कुछ ऐसा ही है: https://youtu.be/jnZ2NNYySuE