1 คะแนน โดย GN⁺ 2023-07-16 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • อธิบายวิธีพิชิตดาว Watch for Rolling Rocks ใน Super Mario 64 แบบ 0.5 A Press โดยไม่ต้องกด A ใหม่เลย ใช้เพียงการ hold A ที่ต่อเนื่องมาตั้งแต่ก่อนเริ่ม
  • อินพุต A แบ่งเป็น press, hold, release และถ้ายังคง hold A ที่กดมาจากดาวก่อนหน้า ก็อาจนับเป็น 0.5 สำหรับดาวเดี่ยว หรือเป็นการไม่เพิ่มอินพุตเลยสำหรับการวิ่งทั้งรอบ
  • แกนหลักของวิธีคือย้ายตำแหน่ง home ของ Scuttlebug แล้วใช้ขอบเขตการเปิดใช้งานของห้องยกมันขึ้นด้านบน จากนั้นใช้ misalignment และการเด้งเพื่อให้ได้ความสูงถึงแพลตฟอร์มดาว
  • ความเร็วแนวนอนที่ต้องใช้สร้างด้วย Hyper Speed Walking โดยผสานน้ำตื้น ทางชัน gate และการตัดสิน out-of-bounds เข้าด้วยกัน การสะสมความเร็วใช้เวลาประมาณ 12 ชั่วโมง
  • เส้นทางการเคลื่อนที่ใน PU ถูกออกแบบให้ใช้การแปลง short ของ floor collision, syncing speed ตามความชันของ slope และการจัดแนว QPU เพื่อกลับสู่ main map และเข้าถึง elevator กับแพลตฟอร์มดาว

เกณฑ์ของ 0.5 A Press

  • A press ไม่ใช่อินพุตชั่วขณะเดียว แต่แบ่งเป็นสามขั้นคือ press, hold, release
    • press ใช้ทำให้ Mario กระโดด
    • hold สามารถใช้กับการเตะเล็ก, การว่ายน้ำใต้น้ำ, การร่อนช้าระหว่าง twirl, และการร่อนช้าขณะใส่ Wing Cap
    • release ยังไม่มีกรณีใช้งานที่สำคัญหรือเป็นประโยชน์ในตอนนี้
  • 0.5 A Press หมายถึงสถานการณ์ที่ไม่ได้กด A ใหม่ แต่ยังคง hold A ที่เคยกดไว้ก่อนหน้า
  • ตัวอย่างจาก Over the Rainbow แสดงวิธีนับแบบนี้
    • การไปถึง cannon platform ต้องเพียง hold A ไว้เท่านั้น
    • การยิง cannon ครั้งแรกและครั้งที่สองต้องใช้ A press อย่างละครั้ง
    • ถ้ามองเฉพาะดาวเดี่ยว จะนับเป็น 3 A presses
    • แต่ในการวิ่ง A Button Challenge ทั้งรอบ สามารถ hold A ต่อจาก A press ก่อนหน้าที่ใช้ตอนเข้า course เพื่อชดเชยความต้องการ hold ครั้งแรกได้
    • ดังนั้น Over the Rainbow จึงนับเป็น 2.5 A presses สำหรับดาวเดี่ยว และเพิ่มเพียง 2 A presses สำหรับการวิ่งทั้งรอบ
  • วิธีของ Watch for Rolling Rocks ก็เริ่มต้นโดยที่ A ถูกกดค้างไว้อยู่แล้ว และในการวิ่งทั้งรอบ อินพุตนี้ถูกนับว่าสืบต่อมาจาก A press ก่อนหน้า

การขนย้ายและยก Scuttlebug

  • Scuttlebug Transportation อาศัยคุณสมบัติที่ตำแหน่ง home ของ Scuttlebug จะอัปเดตเมื่อมันชนกับ Mario
    • Scuttlebug จะ patrol อยู่ในรัศมีช่วงหนึ่งรอบ home
    • เมื่อ Mario เข้าไปในรัศมีนั้น มันจะทำ lunging attack
    • ถ้า Scuttlebug ชน Mario ตำแหน่งของ Scuttlebug ตอนชนจะกลายเป็น home ใหม่
  • การขนย้ายมีข้อจำกัด
    • Scuttlebug ออกนอก native room ของมันไม่ได้ และจะติดที่ door
    • ถ้าอยู่ต่ำกว่า home ปัจจุบันมากเกินไปแล้วเดินชน wall มันอาจหายไปได้ จึงต้องหลีกเลี่ยงระหว่างขนย้าย
  • เป้าหมายคือย้าย Scuttlebug และ home ของมันไปใกล้ corner ใต้ดาว Watch for Rolling Rocks
  • Scuttlebug Raising ใช้ขอบเขตการเปิดใช้งานของห้อง rolling rocks เพื่อยก Scuttlebug ขึ้น
    • room และ object ภายในจะถูกเปิดใช้งานก็ต่อเมื่อ Mario อยู่ในห้อง rolling rocks หรืออยู่ใน small yellow region ด้านนอก door
    • ถ้า Mario อยู่นอกบริเวณนั้น ห้องจะดูเป็นสีดำ และ object จะอยู่ในสถานะ invisible พร้อมทั้งไม่เคลื่อนไหว
    • แม้ Scuttlebug จะอยู่ในสถานะไม่ทำงาน มันก็ยังสามารถ turn เข้าหา Mario และเริ่ม lunge ได้
    • เมื่อ Mario เข้าไปใน yellow region เพื่อเปิดใช้งาน Scuttlebug แล้วออกจาก yellow region อีกครั้งตอนที่ Scuttlebug ไปถึง peak ของ trajectory พอดี Scuttlebug จะไม่ตกลงมา แต่จะค้างอยู่ที่ความสูงนั้น
    • ทำซ้ำกระบวนการนี้เพื่อยก Scuttlebug ขึ้นไปเรื่อย ๆ
  • รัศมีการตรวจจับของ Scuttlebug ไม่ใช่ sphere แต่เป็น cylinder ที่ยืดขึ้นลงแบบไร้ขอบเขต ดังนั้นต่อให้มันสูงขึ้นมากก็ยังล่อให้มัน lunge ได้ต่อ
  • ในวิธีนี้ทำให้ Scuttlebug lunge กลับไปทาง home เพื่อให้มันค้างอยู่เหนือ corner พอดี
    • ถ้า Mario เปิดใช้งานมันจากในรัศมีของ Scuttlebug มันจะ lunge เข้าหา Mario และเคลื่อนไปทาง door ได้
    • วิธีนั้นเร็วกว่า แต่ไม่ใช้ในวิธีนี้เพราะต้องการตำแหน่งใกล้ corner

Misalignment และการเก็บความสูง

  • เหนือ corner มีคุณสมบัติหนึ่งที่เรียกว่า misalignment
    • ในโค้ดของเกม วิธีประมวลผล floor collision checking กับ wall collision checking แตกต่างกัน
    • ผลคือในพื้นที่ขนาด 1x1 unit จะมีตำแหน่งที่ Mario ไม่ถูกดันออกจาก wall และสามารถแทรกลงไปใต้ floor ได้
  • ถ้า Mario อยู่ต่ำกว่า floor ไม่ถึง 79 units เขาจะถูก snap กลับขึ้นไปบน floor
  • ช่วงท้ายจะนำ Scuttlebug bounce และ ground pound มารวมกับ misalignment เพื่อให้ได้ความสูงพอจะขึ้นไปบนแพลตฟอร์ม Watch for Rolling Rocks

Hyper Speed Walking และการเคลื่อนที่ใน Parallel Universe

  • ความเร็วที่ต้องใช้สร้างด้วย Hyper Speed Walking
    • บน slope ที่ชันเกินไป ปกติ Mario จะยืนไม่ได้และจะลื่น
    • แต่ในส่วน underwater portion ของ slope ที่จมน้ำตื้น ถ้าพยายามวิ่งขึ้นเนิน Mario จะวิ่งถอยหลังและความเร็วจะเพิ่มต่อเนื่องโดยไม่มี upper bound
  • ปกติจะสะสมความเร็วได้ยากเพราะมักตกลงไปในน้ำหรือถึงปลาย slope แต่ถ้าใช้ gate และ out-of-bounds จะสะสมความเร็วอยู่กับที่ได้
    • ด้านล่างของ gate ถูกนับเป็น ceiling
    • ถ้า Mario พยายามเคลื่อนไปใกล้ใต้ ceiling มากเกินไป เกมจะปฏิเสธการย้ายตำแหน่งนั้น
    • เมื่อได้ความเร็วระดับหนึ่งแล้ว หากหันมุมให้ intended next position ข้าม wall ไปเป็น out-of-bounds เกมจะไม่ปล่อยให้ Mario ไปอยู่นอกขอบ แต่จะคงเขาไว้ที่เดิม
    • เนื่องจาก out-of-bounds ต่อเนื่องไปเรื่อย ๆ จึงสะสมความเร็วได้นานกว่าการติดใต้ gate ceiling
  • วิธีนี้เปิด gate ก่อน สะสมความเร็วบางส่วนด้วย gate ceiling แล้วหมุน angle ไปทาง out-of-bounds เพื่อสะสมความเร็วส่วนที่เหลือ
  • การสะสมความเร็วใช้เวลาประมาณ 12 ชั่วโมง

PU, QPU, syncing speed

  • position ของ Mario เป็น floating point number แต่ในการทดสอบ floor triangle collision จะถูกแปลงเป็น short
    • fractional portion จะถูก truncated
    • ค่าที่มากหรือน้อยเกินไปจะถูกนำเข้าอยู่ในช่วง -32768 ถึง 32767 ด้วย modulo operator
  • แม้ตำแหน่งจริงจะอยู่นอกช่วงนี้ แต่ตำแหน่งที่ใช้ตรวจ floor จะวนกลับเข้าไปในกล่องเดิม
    • ต่อให้ตำแหน่งจริงของ Mario ไม่มีภูมิประเทศอยู่ แต่ถ้าตำแหน่งตรวจ floor อยู่เหนือภูมิประเทศ เกมก็จะถือว่า Mario ยืนอยู่บนพื้น
    • พื้นที่ที่ทำงานเหมือนสำเนาของ map เดิมแบบนี้เรียกว่า Parallel Universe หรือ PU
  • ใน PU ไม่มี graphics และไม่มี object, enemy, coin, star หรือ wall อย่างเช่น elevator หรือ item block
  • บนเครื่อง N64 จริง ถ้า camera ตามเข้าไปใน PU อาจทำให้เกม crash ได้ วิธีนี้จึงตรึง camera ไว้บน main map เพื่อเลี่ยง crash
  • เกมจะตรวจในแต่ละ quarter step ของการเคลื่อนที่ของ Mario ว่าอยู่บนพื้นหรือไม่
    • การเคลื่อนที่ใน PU แบบง่ายต้องข้ามครั้งละ 4 PU เพื่อให้ทุก quarter step ไปลงบนภูมิประเทศ
    • ระยะ 4 PU นี้เรียกว่า QPU
  • speed จริงกับ de facto speed ที่ใช้ในการเคลื่อนที่ไม่เหมือนกัน
    • de facto speed ถูกกำหนดเป็นส่วนหนึ่งของ speed จริงตามความชันของ slope
    • ยิ่ง slope ชัน de facto speed ก็ยิ่งเล็กลงเมื่อเทียบกับ speed เดียวกัน
  • speed ที่ทำให้ระยะ QPU และ quarter step ลงตัวกันเรียกว่า syncing speed
    • syncing speed ที่ต่ำที่สุดคือความเร็วที่เคลื่อนที่ได้พอดี 1 QPU
    • พหุคูณของค่านี้ก็เป็น syncing speed เช่นกัน จึงทำให้เคลื่อนที่หลาย QPU ได้ในครั้งเดียว
    • แต่ละ slope มีชุด syncing speed ไม่เหมือนกัน
  • ในตัวอย่างการเคลื่อนที่ PU ของ Secret Aquarium ต้องทำให้สอดคล้องกับ syncing speed ของหลาย slope ตามลำดับ โดยใช้เวลาประมาณ 12 ชั่วโมงกว่าจะถึง syncing speed แรก และประมาณ 25 ชั่วโมงกว่าจะถึง syncing speed ที่สอง
  • เส้นทางของ Watch for Rolling Rocks ถูกออกแบบให้ใช้การสะสมความเร็ว 12 ชั่วโมงแทน 25 ชั่วโมง
    • path ที่ไต่ขึ้นจาก lake ประกอบด้วย floor triangle หลายสิบชิ้นซึ่งมี slope ต่างกัน
    • เลือกมา 6 triangle ตั้งแต่ T1 ถึง T6 ซึ่งมีความชันลดลงแบบ strictly decreasing
    • ความสูงของทั้งหก triangle ครอบคลุม vertical distance ที่ต้องการจากล่างถึงบนโดยไม่มี gap
    • ใช้ triangle เหล่านี้ตามลำดับเพื่อสร้าง route blueprint ให้สำเร็จได้ด้วย first syncing speed ของ slope เริ่มต้นเพียงค่าเดียว

เส้นทางสุดท้ายและการเก็บดาว

  • เส้นทางพื้นฐานเริ่มที่ slope สำหรับ Hyper Speed Walking ไต่ขึ้นตาม path เหนือ lake ขึ้น elevator 2 ตัว ไปถึงแพลตฟอร์ม Amazing Emergency Exit แล้วถูกยิงไปยังแพลตฟอร์ม Watch for Rolling Rocks
  • ระหว่างการเคลื่อนที่ใน PU ถ้า speed ต่ำกว่า syncing speed เล็กน้อยจะเคลื่อนไปแบบ relative forward และถ้าสูงกว่าเล็กน้อยจะเป็น relative backward
  • แม้ angle จะเบี่ยงจาก cardinal direction เพียงเล็กน้อย แต่ sideways movement จะถูกขยายอย่างมากเพราะระยะ QPU
  • การจัดการ QPU alignment จึงสำคัญมาก
    • grid ที่เป็นพหุคูณของ 4 PU เรียกว่า QPU grid
    • ถ้า Mario อยู่บน grid นี้ จะถือว่าอยู่ในสถานะ QPU aligned
    • การเคลื่อนที่ด้วยจำนวน PU บวกอื่น ๆ ต้องอาศัยเงื่อนไขพิเศษ เช่น out-of-bounds หรือ slope change
    • ถ้า QPU misaligned อาจกลับสู่ main map ได้ยาก
  • บน lake path จะค่อย ๆ ลด speed บนแต่ละ triangle ตั้งแต่ T1 ถึง T6 ให้เข้าใกล้ syncing speed ของ slope นั้น แล้วเคลื่อน uphill ไปยัง triangle ถัดไป
    • ทุกครั้งที่เปลี่ยน triangle ค่าการจัดแนว QPU จะเปลี่ยน แต่เส้นทางถูกวางไว้ให้หักล้างกันตอนจบจนกลับมาเป็น QPU aligned
    • บน triangle ที่หกจะใช้การเคลื่อนที่แบบ zigzag เพื่อเข้าใกล้ main map
  • เนื่องจากใน PU ไม่มี object จึงต้องกลับสู่ main map ก่อนจึงจะใช้ elevator ได้
  • เหตุผลที่ต้อง hold A ต่อไว้ คือเพื่อกด B ทำ kick เล็ก
    • ถ้าไม่มี kick, Mario จะทะลุ elevator
    • เมื่อ kick แล้วจึงขึ้น elevator และเก็บความสูงได้
  • การเคลื่อนที่สุดท้ายคือ kick ไปยังแพลตฟอร์ม Amazing Emergency Exit แล้วหันทิศเพื่อ launch ไปทาง Scuttlebug
    • การเคลื่อนที่นี้ทำให้เกิด displacement ไปทางขวา 10 PU และลงล่าง 3 PU ดังนั้นจึงต้องเริ่มจากตำแหน่งที่สูงขึ้น 3 PU และไปทางซ้าย 10 PU ล่วงหน้า เพื่อให้ลงเอยที่ main map พอดี
    • พร้อมกันนั้นยังต้องปรับ relative map position ให้ทำการเคลื่อนที่สุดท้ายได้ด้วย
  • Scuttlebug จะถูกเปิดใช้งานทันทีที่เข้าสู่ room เวอร์ชัน PU และต้องไปถึงมันก่อนที่จะตกลงมามากเกินไป จึงมีเวลาเผื่อเพียงไม่กี่ frame สำหรับ final approach
  • สุดท้ายจะใช้ Scuttlebug bounce และ ground pound ใน misalignment เพื่อให้ได้ความสูงพอขึ้นไปบนแพลตฟอร์ม Watch for Rolling Rocks และเก็บดาวได้ด้วย 0.5 A presses

1 ความคิดเห็น

 
GN⁺ 2023-07-16
ความเห็นจาก Hacker News
  • รู้สึกว่านี่อาจเป็น วิดีโอ YouTube ที่สมบูรณ์แบบ ก็ได้
    มีทั้งซาวด์แทร็ก Mario เท่ ๆ กับภาพเกมเพลย์อยู่ด้านหลัง กราฟที่ทำขึ้นเองก็ช่วยให้เห็นภาพว่ากำลังเกิดอะไรขึ้น และมีคำบรรยายเสียงอธิบายสิ่งที่อยู่บนหน้าจอ
    ยังอ้างอิงทั้งวิดีโอ YouTube อื่น ๆ และคอมเมนต์ต่าง ๆ ด้วย ละเอียดมากและมีความรู้ลึกมาก แต่ก็ไม่ได้ขายอะไร
    ให้ความรู้สึกว่าเป็นงานที่ทำด้วยใจมากกว่าทำเพื่อยอดวิว สำหรับฉันนี่คือจุดสูงสุดของ YouTube

    • วิดีโอของ HealthyGamerGG ก็ให้ความรู้สึกคล้ายกัน
      ครอบคลุมตั้งแต่ neurochemistry/biochemistry, จิตวิทยา เกม พฤติกรรมมนุษย์ วัฒนธรรมและศาสนา ตลอดจนสิ่งเหล่านี้เปลี่ยนไปอย่างไรตามกาลเวลา แบบละเอียดและลึกมาก
      สำหรับฉันนั่นแหละคือจุดสูงสุดของ YouTube
    • ถ้าพูดว่า “ตอนเริ่มด่านให้กดปุ่ม A ค้างไว้ แล้วหลังจากนั้นจะไม่กดปุ่ม A อีกเลย” น่าจะเข้าใจง่ายกว่า
    • ก็น่าจะดีใจได้แล้วที่ตัวเองไม่ได้ไวต่อเพลงประกอบมาก
      สำหรับฉัน เพลงประกอบนี่ทนฟังยากมาก
  • ความรู้ลึกและพลังในการวิเคราะห์ ของ pannenkoek น่าทึ่งจริง ๆ
    พอดูวิดีโอ SM64 ไปเรื่อย ๆ มาตรฐานก็สูงขึ้นมาก จนแทบหาอะไรในเกมอื่นที่เข้มงวดและคุณภาพการผลิตระดับเดียวกันได้ยากมาก
    ที่ใกล้เคียงที่สุดเท่าที่เคยเจอคือวิดีโอเกี่ยวกับเหล่าสปีดรันเนอร์ที่พิชิต RNG ในปริศนาหนึ่งของ Wind Waker
    https://youtu.be/1hs451PfFzQ

    • https://www.youtube.com/watch?v=FnKWKICUqWU เป็นวิดีโอสปีดรันด่าน Break the Target ของ Peach ใน Smash Bros Melee ซึ่งมีองค์ประกอบบ้าพลังอยู่พอสมควรและน่าดูมาก รวมถึงมี การคำนึงถึง RNG ด้วย
      AsumSaus ก็มีวิดีโอจำนวนมากที่ผ่ากลไกประหลาด ๆ ของ Melee
      แทบทั้งหมดดีมากจนเลือกยาก แต่ https://www.youtube.com/watch?v=rA8kpvTBh8Q กับ https://www.youtube.com/watch?v=9fo0cPmj4VA เป็นจุดเริ่มต้นที่ดี
    • ถ้าเป็นเกมเรโทร Retro Game Mechanics Explained คือช่องที่คุณกำลังหาอยู่พอดี
      พูดถึงการจัดวางหน่วยความจำ วิธีที่บั๊กไม่ตั้งใจทำงาน ชุดคำสั่ง CPU และสิ่งที่เกิดขึ้นในระดับฮาร์ดแวร์
      แนะนำมาก
      https://www.youtube.com/@RGMechEx
    • Paper Mario 64 ก็มีช่องที่วิเคราะห์ลึกในทำนองเดียวกัน
      https://www.youtube.com/channel/UCYDnJiF0_RqSjkjvjRbG1tA
      โดยเฉพาะซีรีส์ที่ทำให้ Paper Mario แครชด้วยวิธีประหลาดนับไม่ถ้วนจนกลายเป็นมีม
      น่าเสียดายที่ไม่มีความเคลื่อนไหวตั้งแต่ปี 2020
    • ถ้าชอบ TF2 ก็น่าจะชอบ shounic(https://youtu.be/5m7V9zWlYdM) ด้วย
      วิดีโอสั้นแต่การวิเคราะห์ดีมาก
    • บนเซิร์ฟเวอร์ Minecraft ของ SciCraft และ ZipKrowd ก็มีวิดีโอที่น่าประทับใจมากอยู่หลายชิ้น และเจาะโครงสร้างภายในของ Minecraft ลึกมากเพื่อการสร้างสิ่งต่าง ๆ
      ขอแนะนำอย่างมาก https://youtu.be/6sPS4yqC72I หรือ https://youtu.be/TM7SutJyDCk
  • นี่คือ nerd porn แบบบริสุทธิ์แท้ และดีมากจริง ๆ
    คำอธิบายประเภทที่ว่า collision detection ของเกมรับค่าทศนิยมแบบ floating-point จริง ๆ แล้วแปลงเป็น short นั้นให้ความรู้สึกเหมือนกระตุ้นสมองอย่างประหลาด
    ข้อเท็จจริงที่ว่าเกมอย่าง SM64 ยังทำให้ผู้คนหลงใหลและหมกมุ่นได้แม้ผ่านไปหลายสิบปีหลังวางขาย บอกอะไรได้หลายอย่าง
    รู้สึกว่าเกมกระแสหลักยุคนี้ที่มีแพสชันจากผู้เล่นในระดับนั้นมีน้อยลงเรื่อย ๆ

  • ประวัติศาสตร์ฉบับสมบูรณ์ของ A Button Challenge
    https://www.youtube.com/watch?v=yXbJe-rUNP8
    เป็นวิดีโอความยาวเกิน 5 ชั่วโมง เลยชอบเปิดทิ้งไว้เป็นพื้นหลังหรือดูฆ่าเวลา
    ปริมาณความรู้และระดับการใช้ประโยชน์จากบั๊กที่คนพวกนี้แสดงออกมานั้นเหลือเชื่อมาก

    • เพิ่งดูจนจบไปไม่นานนี้ และแนะนำอย่างมากสำหรับทุกคนที่สนใจแม้แต่นิดเดียว
      บางสิ่งที่ค้นพบกันได้นี่บ้าคลั่งจริง ๆ และมันน่าทึ่งมากว่ามีองค์ประกอบที่แทบจะทำงานแบบเฉียดฉิวอยู่เยอะขนาดไหน
      Bismuth เองก็เป็น YouTuber คุณภาพสูงโดยรวมอยู่แล้ว
  • ฉันขำแตกตรงช่วง "สะสมความเร็วเป็นเวลา 12 ชั่วโมง"
    https://youtu.be/kpk2tdsPh0A?t=640
    กระบวนการคิดชัดเจนมากจริง ๆ
    ดีจังที่บนอินเทอร์เน็ตมีคนฉลาดมาก ๆ แบบนี้เยอะ

    • มองอีกมุมก็ดูเหมือนเสียของนิดหน่อยเหมือนกัน
      แน่นอนว่าแต่ละคนมีสิทธิ์ใช้สมองตัวเองแบบไหนก็ได้ แต่การทุ่มเทขนาดนี้กับบั๊กที่พิสดารสุด ๆ ในเกมอายุราว 30 ปี แล้วพิสูจน์ว่าทริกที่แทบทำจริงไม่ได้หากไม่มีเครื่องมือช่วยนั้นเป็นไปได้ในเชิงเทคนิค ก็ยังดูแปลกมากอยู่ดี
      วิดีโออธิบายนั้นยอดเยี่ยม แต่เป้าหมายที่อยู่ใต้ทั้งหมดนั้นสำหรับฉันดูไร้สาระมาก
  • ถ้าคุณชอบเรื่อง parallel universe ก็ขอแนะนำอย่างมากให้ดู SM64 1-Key speedrun https://youtube.com/watch?v=iUt840BUOYA แล้วตามด้วยคำอธิบายของ Bismuth https://youtube.com/watch?v=wjge1bVobN0
    เป็นความสำเร็จทางเทคนิคที่น่าทึ่งจริง ๆ และอาศัยงานวิจัยของ pannenkoek2012 อย่างมาก

    • คำศัพท์ที่เหล่าเกมเมอร์คิดขึ้นมาเพื่ออธิบายปรากฏการณ์ที่ท้ายที่สุดแล้วก็เป็นแค่บั๊กของเกมนี่ตลกดี
      parallel universe และ lore รอบ ๆ มันทั้งหมดเกิดจากการที่จำนวนเต็ม 16 บิตล้นค่าในโค้ดตรวจพื้น
      ปกติ Mario 64 เก็บตำแหน่งเป็น floating-point แต่ตอนตรวจการชนจะถูกแปลงเป็นจำนวนเต็ม 16 บิต
  • น่าทึ่งจริงๆ
    ทุกครั้งที่เห็นคนที่ถูกขับเคลื่อนด้วยความหลงใหลบางอย่างอย่างแรงกล้า จนทุ่มเทได้สุดขั้วขนาดนี้ก็อดทึ่งไม่ได้
    ตัวฉันเองแทบไม่เคยรู้สึกถึงความหลงใหลที่ทำให้ขยันได้ขนาดนี้
    บางทีก็คิดว่าคงดีถ้าคนแบบนี้เอาพรสวรรค์และพลังงานไปใช้กับเรื่องสำคัญจริงๆ อย่างการรักษาโรคหรือความก้าวหน้าทางวิทยาศาสตร์
    อย่างน้อยในมุมของเจ้าตัวเองก็คงรู้สึกได้ว่าศักยภาพมหาศาลไม่ได้สูญเปล่า
    แค่ความพยายามที่ใส่ลงไปในวิดีโอนี้ก็น่าจะได้งานวิจัยดีๆ มาหนึ่งฉบับแล้ว
    อยากมีแรงจูงใจในงานของตัวเองระดับนี้บ้าง แต่โดยรวมแล้วก็มีแต่ความชื่นชม

  • ชอบวิดีโอนี้มาก
    ช่วงหลังเขายังทำวิดีโอที่เจาะรายละเอียดเชิงเทคนิคของ N64 ด้วย และต้องระวังเรื่อง floating point
    https://youtu.be/nYDmBdUalgo

    • วิดีโอนี้ดีพอจะใช้เป็นสื่อเกริ่นนำเรื่อง pseudorandom number generator และ IEEE floating point ในคลาสวิทยาการคอมพิวเตอร์ได้เลย
  • มีใครช่วยแนะนำ วิดีโอโพรงกระต่าย แบบโพสต์ต้นฉบับได้อีกไหม?
    จะหัวข้ออะไรก็ได้
    ฉันชอบวิดีโอแบบนี้ที่แสดงให้เห็นว่าเรื่องหนึ่งสามารถลงลึกได้ไกลแค่ไหน
    ตอนนี้อันที่ชอบที่สุดคือ https://youtu.be/_hjRvZYkAgA

    • ช่วงนี้เพิ่งดูวิดีโอที่เริ่มจากการ decompile เกม Lego PC เก่าๆ ที่จำได้จากตอนเด็ก https://www.youtube.com/watch?v=MToTEqoVv3I แล้วรู้สึกว่าสนุกมาก
    • Marcel Vos มีวิดีโอ YouTube เยอะพอสมควรเกี่ยวกับกลไกของเกม Roller Coaster Tycoon โดยเฉพาะกรณีที่ดันไปจนสุดทาง
      https://youtu.be/KVgoy_a_gWI
    • ยังมีวิดีโอชั้นเยี่ยมอีกอันที่ชนะ Pokémon ได้เสมอด้วยชุดอินพุตเดียวกัน
      https://youtu.be/6gjsAA_5Agk
    • วิดีโอ speedrun ของ Karl Jobst ก็ดีเหมือนกัน
  • วิดีโอนี้ยังอธิบายด้วยว่าอินพุต 0.5 A คืออะไร และทำไมคนถึงสนใจมัน
    ใน Mario 64 เกมไม่ได้ให้ความสำคัญกับการปล่อยปุ่ม ดังนั้นนักวิ่งจึงไม่นับการปล่อยปุ่มแยกต่างหาก
    เพราะคุณสามารถเลือกที่จะไม่ปล่อย A ได้ตลอด เมื่อเป็นการวิ่งแบบใช้อินพุต A ให้น้อยที่สุด จึงมีเหตุผลให้ปล่อย A ก็แค่เพื่อจะกด A อีกครั้งเท่านั้น
    ในการพากย์สดอาจอธิบายสั้นๆ ได้ว่า 0.5 A “หมายถึง” อะไร แต่ถ้าไม่มีคำอธิบายแบบนี้ คนดูก็น่าจะสงสัยว่าทำไมต้องใส่ใจกับมันด้วย

    • ถ้าอ่านแค่นี้ คนที่ไม่ค่อยรู้จักเกมก็คงไม่เข้าใจว่าทำไมตอนกดครั้งสุดท้ายถึงกด A ค้างไว้ไม่ได้
      ต้องอธิบายด้วยว่าถ้ากด A ค้างไว้ Mario จะทำพฤติกรรมต่างจากตอนที่ไม่ได้กด A
    • ถ้าจะให้แม่นยำกว่านั้น บางครั้งเกมต้องการให้ กด A ใหม่ แต่ในบางครั้งแค่ให้ A อยู่ในสถานะถูกกดก็พอที่จะเกิดการกระทำได้
      ในกรณีแรก ถ้าคุณกด A แล้วไม่ปล่อย กรณีที่สองก็อาจยืมอินพุตนั้นไปใช้ได้
    • ที่ว่า “Mario 64 ไม่สนใจการปล่อยปุ่ม” นี่จริงหรือ?
      ถ้าเกมสนใจสถานะกดค้างอย่างการร่อนกลางอากาศ งั้นก็ต้องสนใจสถานะไม่กดค้างด้วยโดยปริยาย เช่น อยู่กลางอากาศแต่ไม่ได้ร่อน ไม่ใช่หรือ
      ถ้าจะเปลี่ยนจากสถานะร่อนกลางอากาศไปเป็นสถานะอยู่กลางอากาศแต่ไม่ร่อน ก็ต้องปล่อยปุ่ม
      ฉันเข้าใจผิดหรือเปล่า?
      ฉันเล่น M64 มาแค่ประมาณ 5 นาที แต่ใส่มันไว้ในลิสต์ว่าจะเล่นสักวัน และยังคอยยุให้ลูกๆ ติดมันเพื่อที่ฉันจะได้หาเวลามาเล่นบ้าง
    • เกมสนใจการปล่อยปุ่มอยู่เหมือนกัน
      ถ้าจะกระโดดครั้งที่สอง คุณต้องปล่อยปุ่มก่อน
      0.5 จริงๆ แล้วใกล้เคียงกับแนวคิดที่ว่าอินพุต A หนึ่งครั้งต่อเนื่องข้ามหลายด่านมากกว่า
    • keydown + keyup = keypress
      มองเผินๆ อาจจะรู้สึกว่า “0.5 นี่อะไรกัน?” แต่สุดท้ายแล้วมันก็เป็นแค่ประเด็นเชิงความหมายเท่านั้น