- ใน NES Tetris ผู้เล่น Willis หรือที่รู้จักกันในชื่อ Blue Scuti กลายเป็นคนแรกที่ไปถึงเลเวล 157 และทำให้เกมแครชได้ สร้างสถิติ True Killscreen ครั้งแรกของชุมชน Classic Tetris แบบแข่งขันที่มีประวัติยาวนาน 34 ปี
- เลเวล 29 ที่เคยถูกเรียกว่า “killscreen” แท้จริงแล้วไม่ใช่ข้อบกพร่องของโค้ด แต่เป็น ขีดจำกัดความเร็วในการบังคับ และเมื่อมี hypertapping กับ rolling ปรากฏขึ้น ขีดจำกัดของผู้เล่นมนุษย์ก็ถูกผลักออกไปเรื่อยๆ
- glitched colors ที่เริ่มปรากฏหลังเลเวล 138 กดดันทั้งการมองเห็นและความอึด ทำให้การทำสถิติต่อไปไม่อาจอาศัยแค่ความสามารถในการกดเร็วเพียงอย่างเดียว
- งานวิจัยกลไกการแครชในปี 2022 ระบุว่า จุดที่เกมต้นฉบับ NES Tetris มีโอกาสแครชได้เร็วที่สุดคือการเคลียร์ single line ตอนเข้าสู่เลเวล 155 และในที่สุด Blue Scuti ก็ทำให้เกมแครชได้สำเร็จที่เลเวล 157
- แม้จะ “พิชิต” เกมได้แล้ว การแข่งขันก็ยังต่อยอดไปสู่เป้าหมายใหม่ เช่น ความเร็วในการไปถึงจุดแครช คะแนนสูงสุดก่อนแครช และการไปให้ถึง rebirth screen หลังเลเวล 255 โดยหลีกเลี่ยงการแครช
ขีดจำกัดแรกที่เลเวล 29 สร้างขึ้น
- NES Tetris วางจำหน่ายสำหรับ Nintendo Entertainment System ในปี 1989 เป็นเกมที่ให้ประกอบบล็อกที่ตกลงมาและลบแถวที่เติมเต็มได้สำเร็จ
- ทุกครั้งที่ลบครบ 10 แถว เลเวลจะเพิ่มขึ้นและความเร็วจะสูงขึ้น โดยที่เลเวล 29 เกมจะไปถึงความเร็วสูงสุดภายในเกม
- เป็นเวลานานที่เลเวล 29 ถูกเรียกว่า killscreen เพราะยากมากที่จะส่งชิ้นส่วนไปถึงขอบจออย่างเสถียรด้วยการกดปุ่มซ้ายขวาค้างตามปกติ
- อย่างไรก็ตาม มันไม่ใช่ killscreen ในความหมายดั้งเดิมแบบเดียวกับเลเวล 256 ของ Pac-Man ที่ไปต่อไม่ได้เพราะข้อผิดพลาดของโค้ด
- หากมีวิธีขยับชิ้นส่วนให้เร็วขึ้น ก็ยังสามารถเล่น NES Tetris หลังเลเวล 29 ต่อได้
Hypertapping และ Rolling ที่ผลักขีดจำกัดออกไป
- ในปี 2011 Thor Aackerlund สร้างบันทึกวิดีโอคนแรกที่ไปถึงเลเวล 30 ด้วย hypertapping ซึ่งเป็นการสั่นนิ้วกดคอนโทรลเลอร์อย่างรวดเร็วมาก
- หลังเลเวล 29 ความเร็วของเกมจะไม่เพิ่มขึ้นอีกแล้ว ดังนั้นในทางทฤษฎีจึงสามารถไปถึงเลเวลที่สูงกว่านี้ได้
- Joseph Saelee ไปถึงเลเวล 31 ได้เป็นคนแรกในปี 2018 คว้าแชมป์ Tetris World Championship ในปี 2018 และ 2019 และดันสถิติเลเวลขึ้นไปถึง 35
- EricICX ซึ่งเป็น hypertapper ที่เร็วยิ่งกว่า เป็นคนแรกที่ไปถึงเลเวล 37 และ 38
- แต่ hypertapping อยู่ในระดับที่แทบจะรับมือกับความเร็วเลเวล 29 ได้พอดี ทำให้การทำสถิติช่วงเลเวลกลางถึงปลาย 30 ต้องอาศัยทั้งดวงชิ้นส่วนที่ดีและการวางที่แทบสมบูรณ์แบบ
- ในปี 2020 cheez หลังจากเห็นกลยุทธ์การรัวปุ่มหลายแบบ ได้ผสานเทคนิคใช้นิ้วหลายตัวของ Hector Fly ที่ใช้กับ arcade cabinet เข้ากับวิธีใช้นิ้วด้านล่างดันคอนโทรลเลอร์ให้กระแทกนิ้วด้านบน จนเกิดเป็น rolling
- rolling ทำให้กดซ้ำได้เร็วกว่า hypertapper ที่เร็วที่สุดมากกว่าสองเท่า
- cheez เป็นคนแรกที่ไปถึงเลเวล 40
- หลังจากนั้นผู้เล่นระดับท็อปก็หันมาใช้ rolling และ EricICX ก็ขึ้นไปถึงเลเวล 95 ในปี 2021
อุปสรรคใหม่จากสีเพี้ยน
- เดิมที NES Tetris มีพาเลตสีสว่างและมองง่าย 10 ชุดสำหรับเลเวล 0~9 และจะวนใช้พาเลตเดิมทุกๆ 10 เลเวล
- ตั้งแต่เลเวล 138 เป็นต้นไป โค้ดที่กำหนดสีของเลเวลจะทำงานผิดพลาดและไปอ่านข้อมูลนอกตารางสี ทำให้เกิด พาเลตสีผิดปกติ ที่มองได้ยาก
- Fractal161 ไปถึง glitched colors ได้ก่อนในเวอร์ชัน PAL ที่คนนิยมน้อยกว่า แต่ PAL ช้ากว่า NTSC ซึ่งใช้ในการแข่งขันและลีดเดอร์บอร์ดหลักอยู่ 20%
- EricICX เป็นคนแรกที่ไปถึง glitched colors ในเวอร์ชัน NTSC และเคยไปถึงเลเวล 146 ในการแข่งขันจริง แต่ top out ในเลเวลมืด
- หลังจากนั้นการทำลายสถิติก็ติดขัดเพราะทั้งการมองเห็นและความอึด โดยเกมทำสถิติโลกของ EricICX กินเวลาเกือบ 40 นาที
- PixelAndy ผ่านเลเวลมืดที่ทำให้ EricICX ตกรอบได้ แต่ก็ไปหยุดที่เลเวลยากกว่านั้นซึ่งมีชิ้นส่วนสีเกือบดำ
หลักการของ True Killscreen และความสำเร็จของ Blue Scuti
- ในปี 2021 Cannon สร้าง AI เล่น Tetris ชื่อ stackrabbit เพื่อดูว่าจะไปไกลกว่าขีดจำกัดมนุษย์ได้แค่ไหน
- stackrabbit ไม่มีข้อจำกัดเรื่องกำลังหรือการมองเห็น จึงผ่านเลเวล glitched color ที่ยากได้ รวมถึงผ่านกลิทช์ประหลาดอย่างเลเวล 235 ที่คงอยู่ยาว 800 แถวแทนที่จะเป็น 10 แถวตามปกติ
- ที่เลเวลสูงมาก โค้ดของเกมจะทำงานอย่างไม่มีประสิทธิภาพ และเกิดสถานการณ์ที่เกมอ่าน RAM ราวกับเป็นโค้ดแทนคำสั่งจริง
- หากผลลัพธ์นำไปสู่คำสั่งหยุด เกมจะพังโดยสมบูรณ์ และสิ่งนี้เรียกว่า true killscreen
- การแครชไม่ได้เกิดขึ้นที่จุดเดิมเสมอไป
- มันอาจถูกกระตุ้นได้ในจุดที่เฉพาะเจาะจงมากตามเงื่อนไขอย่างเลเวล ชิ้นส่วนปัจจุบัน และจำนวนแถวที่ลบในครั้งเดียว
- stackrabbit เล่นบนเวอร์ชันดัดแปลงที่ตัวนับคะแนนเปลี่ยนจาก 6 หลักเป็น 7 หลัก ดังนั้นจุดแครชจึงไม่ตรงกับเวอร์ชันต้นฉบับ
- ในปี 2022 HydrantDude จัดทุกสถานการณ์ที่ทำให้เกิดการแครชได้ไว้ในสเปรดชีต และยืนยันว่าจุดแครชที่เร็วที่สุดในเวอร์ชันต้นฉบับที่ไม่ดัดแปลงคือการทำ single ตอนเข้าสู่เลเวล 155
- หลัง Fractal คว้าแชมป์โลกปี 2023 เขาเริ่มสตรีมท้าทายการทำให้เกมแครชทุกวัน แต่วันแรก Blue Scuti กลับผ่าน charcoal ได้ก่อนและไปถึงเลเวล 153
- สถิตินี้เป็นทั้งสถิติโลกใหม่ด้านเลเวลและคะแนน และเหลืออีกเพียง 18 แถวก่อนถึงแครชครั้งแรก
- จากนั้น Blue Scuti ก็เข้าสู่การแข่งขันท้าทายการแครชกับ Fractal และพลาดโอกาสแครชที่เลเวล 154 เพราะลบ triple แทน single
- เป้าหมายถัดไปคือเลเวล 157 ซึ่งในเลเวลนี้การเคลียร์ 1 แถวแต่ละครั้งมีโอกาสทำให้แครช 73%
- Blue Scuti ทำให้เกมแครชได้ในที่สุดด้วยความพยายามครั้งสุดท้ายที่เลเวล 157 โดยวาง J piece ทางซ้ายแล้วลบแถว กลายเป็นช่วงเวลาที่มนุษย์ “ชนะ” เกม NES Tetris ได้เป็นครั้งแรก
การแข่งขันทำสถิติหลังการแครชและเป้าหมายที่ยังเหลือ
- ตอน rolling ปรากฏขึ้นใหม่ๆ cheez กังวลว่าเทคนิคนี้จะทรงพลังเกินไปจนทำลายชุมชน แต่ในความเป็นจริงมันกลับนำ renaissance มาสู่ Classic Tetris
- ความกังวลว่าเกมแข่งขันอาจยาวเกินไปจนกลายเป็น endless lineout นำไปสู่ ROM patch ที่เพิ่มความเร็วขึ้นอีกในเลเวล 39 และการแข่งขันก็เปลี่ยนไปสู่การล่า line clear ที่ใหญ่กว่า
- แม้สถิติโลกด้านเลเวลและคะแนนจะดูเหมือนกำลังกลายเป็นการแข่งขันด้านความอึดล้วนๆ แต่กระบวนการท้าทายการแครชกลับทำให้มันกลายเป็นศึกไล่บี้ที่มีการเปลี่ยนสถิติหลายครั้งต่อสัปดาห์
- เป้าหมายหลังการแครชอาจแยกออกได้หลายทาง
- speedrun เพื่อไปถึงจุดแครชให้เร็วที่สุด
- คะแนนสูงสุดที่เป็นไปได้ก่อนแครช
- ความท้าทายในการไปให้ไกลกว่าเดิมโดยหลีกเลี่ยงเงื่อนไขที่ทำให้แครช
- คนบางส่วนในชุมชนใช้ tool-assisted speedrun (TAS) ป้อนทุกการเคลื่อนไหวด้วยมือเพื่อจำลองเส้นทางที่หลบกับดักการแครชทั้งหมด
- หากหลีกเลี่ยงการแครชได้ทั้งหมด เลเวลสุดท้ายที่สามารถไปถึงได้คือ 255 ซึ่งเป็นเลเวลสุดท้ายที่เกมสามารถเก็บไว้ในหน่วยความจำได้
- สีจะกลายเป็นพาเลตกลิทช์สีแดงล้วน
- จากชิ้นส่วนทั้ง 7 แบบ มี 5 แบบที่สามารถทำให้เกมแครชได้แม้ปล่อยตกตามปกติ ดังนั้นหากจะเอาตัวรอดแทบทุกชิ้นต้องกดลงล่าง
- เมื่อเคลียร์เลเวล 255 ได้ เกมจะวนกลับไปที่เลเวล 0
- ช่วงเวลาที่เกมกลับจากเลเวล 255 ไปยังเลเวล 0 ไม่ได้เป็นเพียงการที่ผู้เล่นชนะเกมเท่านั้น แต่เป็น rebirth screen ที่ทั้งผู้เล่นและเกมรอดไปด้วยกัน
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ช่วงไม่กี่ปีที่ผ่านมา วงการ Tetris เปลี่ยนไปแบบบ้าคลั่งจริงๆ
ผมเล่นแบบดั้งเดิมด้วย DAS[1] มาตั้งแต่เด็ก และไม่เคยมีเวลาฝึก hypertapping แต่พอ rolling โผล่มาเมื่อไม่กี่ปีก่อน ผมก็เลิกพยายามตามให้ทันไปเลย สถิติสูงสุดของผมคือเกือบ maxout ที่เลเวล 29
สิ่งที่เด่นยิ่งกว่าคือผู้เล่นอายุน้อยกำลังเปลี่ยนกติกาของเกมไปเลยจนสายดั้งเดิมสู้ไม่ไหว ใน CTWC ตอนนี้ไม่มีใครเล่นแบบ DAS แล้ว และดูเหมือน Jonas จะเป็นผู้เล่น DAS ระดับใหญ่คนสุดท้ายก่อนย้ายไปเล่นแบบ tapping ผมคิดว่าน่าจะเป็นเพราะคนอายุเกิน 30 เรียนแบบ DAS มาก่อน แต่ผู้เล่นเด็กๆ สามารถเริ่มด้วย rolling ได้ตั้งแต่แรก
RIP Jonas Neubauer(NubbinsGoody https://www.twitch.tv/nubbinsgoody) เขาคือคนที่จุดกระแส Tetris บูมหลังหนังออกมา และตอนที่ผมกำลังพยายามทำ maxout ในปี 2018 เขากับภรรยาก็แนะนำให้ผมหา CRT monitor มาใช้ ซึ่งตอนนั้นมันเป็นคอขวดพอดี
[1] https://tetris.fandom.com/wiki/DAS
ไหนๆ ก็พูดถึง Tetris แล้ว คุณสามารถเล่น Tetris แบบ เล่นคนเดียว/หลายคน บนเทอร์มินัลผ่าน SSH ได้
ssh playnetris.comโค้ด: 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 refusedน่าทึ่งที่ถ้าฝึกมากพอ มนุษย์สามารถยกระดับ การเคลื่อนไหวของกล้ามเนื้อ ที่รวดเร็วและซับซ้อนไปจนแทบเหนือมนุษย์ได้ นี่เป็นความสำเร็จที่ยอดเยี่ยมจริงๆ
เพราะแบบนี้ผู้เล่นเด็กมักเล่นเกมยิงมุมมองบุคคลที่หนึ่งได้ดีกว่าด้วย และก็น่าจะเป็นเหตุผลว่าทำไมผมถึงรอดใน CoD ได้ไม่เกินหนึ่งนาที :)
ในปี 2020 มีคนชนะ Tetris ด้วยอีกวิธีหนึ่ง: https://jasoneckert.github.io/myblog/i-finally-beat-tetris/
Tetris ที่ผมรู้จักมีแค่เวอร์ชันที่มากับ Windows Entertainment Pack <https://en.wikipedia.org/wiki/Microsoft_Entertainment_Pack>
เวอร์ชันนี้ทำมาสำหรับ Windows 16 บิต ดังนั้นการเก็บคะแนนด้วยจำนวนเต็ม 16 บิตก็ไม่น่าแปลก อะไรที่แปลกกว่าคือมันใช้จำนวนเต็ม 16 บิตแบบ signed พอคะแนนเกิน 32,767 คะแนนก็เลยกลายเป็นค่าติดลบ
ตอนเป็นวัยรุ่นผมเล่นเก่งพอที่ถ้าเกมไหนคะแนนไม่ติดลบจะรู้สึกผิดหวังเลย
หลายปีต่อมาผมเปิด Guinness Book of World Records แล้วเห็นว่าสถิติ Minesweeper ระดับ expert อยู่แถวๆ 25 วินาที แน่นอนว่าถ้าจะพิสูจน์ก็คงต้องไปขุดคอมพิวเตอร์เก่าออกมาจากหลุมฝังกลบ ดังนั้นผมคงต้องอยู่ต่อไปพร้อมสถานะเจ้าของสถิติโลกที่ไม่มีใครรับรอง
ผมเองก็ผิดหวังเหมือนกันถ้าทำคะแนนให้ติดลบไม่ได้ ถ้าฟอร์มดี มีเวลาเพียงพอ และโชคช่วยนิดหน่อย ในเกมเดียวคะแนนสามารถสลับจากบวกเป็นลบ กลับมาเป็นบวก แล้วกลับไปเป็นลบได้หลายรอบ ผมไม่เคยนับ แต่เคยเล่นเกมเดียวเกิน 45 นาทีอย่างน้อยหนึ่งครั้ง
แต่ไม่ว่าอันไหน การใช้จำนวนเต็มแบบ signed ก็ไม่ได้ทำให้ผมแปลกใจมากนัก ในทุกโค้ดเบสที่ผมเคยทำงานด้วย signed integer คือทางเลือกปกติสำหรับตัวเลขจนแทบเป็นค่า default ส่วน
uintจะเห็นก็ต่อเมื่อมันสำคัญจริงๆ หรือเมื่อนักพัฒนาเข้มงวดเป็นพิเศษมีโพสต์ที่เกี่ยวข้องด้วย: Celebrating the first NES Tetris game crash (biggieblog.com)
โพสต์โดย davidrjones1977 เมื่อ 10 วันก่อน, 197 คะแนน, ความเห็น 56 รายการ
https://news.ycombinator.com/item?id=38734106
เป็นวิดีโอที่สร้างแรงบันดาลใจมาก ถึงขั้นอาจพูดได้เลยว่าความ เนิร์ดสุดขั้ว ระดับนี้นี่แหละที่ผลักอารยธรรมของเราไปข้างหน้า
น่าทึ่งที่ได้เห็นพัฒนาการล่าสุด และ GameScout ก็เป็นหนึ่งในคนที่เล่าเรื่องราวในวงการเกมได้ดีที่สุดตอนนี้ ระดับเดียวกับ Summoning Salt เลย
วิดีโอแนะนำชุมชน Tetris ที่ John Green ทำไว้ในปี 2018 ก็ดีมากเช่นกัน:
https://www.youtube.com/watch?v=twS0SrDg-fc
ทั้งที่ผมไม่ได้สนใจ Tetris เลย แต่กลับพบว่าน่าสนใจกว่าที่คิด
ตอนนี้คำถามคือ การรันโค้ดจาก RAM จะนำไปสู่สถานะเกมหรือช่องโหว่น่าสนใจแบบ Pokémon Yellow Total Control Hack ได้ไหม: https://youtube.com/watch?v=p5T81yHkHtI
แต่ขั้นตอนเตรียมการซับซ้อนและต้องแม่นยำอย่างโหดร้าย ต้องทำคะแนนที่แทบเป็นไปไม่ได้ ใส่ชื่อบางชื่อในตารางคะแนนสูงสุด จากนั้นต้องไปถึงจังหวะแครชในเฟรมเดียวกันพอดีกับที่ค่าภายในของตัวสร้างเลขสุ่มบังเอิญกลายเป็นคำสั่งให้กระโดดไปยังตารางคะแนนสูงสุดนั้น แถมรีจิสเตอร์หลายตัวก็ต้องบังเอิญมีค่าที่ต้องการอยู่ด้วย
หลังจากนั้นก็ยังต้อง bootstrap ต่ออีกเล็กน้อยกว่าจะได้สิทธิ์ควบคุมเต็มรูปแบบ