2 คะแนน โดย GN⁺ 2024-01-11 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Turing Complete เป็นเกมที่มุ่งเน้นประสบการณ์ในการค่อย ๆ แก้ปัญหาด้วยตัวเองเพื่อทำความเข้าใจแนวคิดด้านวิทยาการคอมพิวเตอร์ให้ลึกซึ้งยิ่งขึ้น
  • การเรียนรู้เริ่มต้นจาก ลอจิกเกต และดำเนินไปในรูปแบบการลองสร้างเกตอื่น ๆ ขึ้นมาจาก nand gate เพียงอย่างเดียว
  • จากนั้นจึงผสาน หน่วยความจำและคอมโพเนนต์ เพื่อขยายวงจรง่าย ๆ ให้เข้าใกล้สถาปัตยกรรมคอมพิวเตอร์จริงมากขึ้น
  • คอมพิวเตอร์ที่ผู้เล่นสร้างมีเป้าหมายให้เป็น Turing complete ซึ่งหมายถึงโครงสร้างที่สามารถคำนวณอัลกอริทึมแบบเดียวกับ Turing machine ได้
  • ผู้เล่นจะประกอบ คำสั่งแอสเซมบลี บนฮาร์ดแวร์ที่สร้างขึ้นเอง และแก้ปริศนาการเขียนโปรแกรมที่อิงกับโค้ดไบนารี

วิธีเรียนรู้วิทยาการคอมพิวเตอร์ผ่านเกม

  • Turing Complete เป็นเกมที่ใช้วิทยาการคอมพิวเตอร์เป็นธีมหลัก
  • เหมาะสำหรับคนที่ชอบความสนุกจากการค้นพบคำตอบด้วยตัวเอง และชอบช่วงเวลาที่ได้มองแนวคิดซึ่งคิดว่าเข้าใจแล้วให้ลึกขึ้นกว่าเดิม
  • มีให้เล่นบน Steam ที่ Play Turing Complete

ลำดับการเรียนรู้จากวงจรไปสู่สถาปัตยกรรมคอมพิวเตอร์

  • ลอจิกเกต

    • ลอจิกเกตคือองค์ประกอบพื้นฐานของการคำนวณ
    • เรียนรู้พื้นฐานของวงจรด้วยการสร้างเกตอื่น ๆ ทั้งหมดจาก nand gate เพียงตัวเดียว
  • คอมโพเนนต์และหน่วยความจำ

    • เมื่อเพิ่มหน่วยความจำบนลอจิกเกต ก็สามารถสร้าง คอมโพเนนต์ ที่ซับซ้อนยิ่งขึ้นได้
    • จากนั้นนำองค์ประกอบเหล่านี้มาประกอบกันเพื่อขยายไปเป็นโครงสร้างคอมพิวเตอร์จริง
  • สถาปัตยกรรม

    • คอมพิวเตอร์ที่ประกอบขึ้นเองมีเป้าหมายให้เป็น Turing complete
    • หมายถึงคอมพิวเตอร์ที่สามารถคำนวณอัลกอริทึมแบบเดียวกับ Turing machine ได้
  • แอสเซมบลี

    • คอมพิวเตอร์ถูกเขียนโปรแกรมด้วยโค้ดไบนารี
    • ผู้เล่นจะสร้างคำสั่งแอสเซมบลีเพื่อทำให้กระบวนการนี้ง่ายขึ้น และแก้ปริศนาการเขียนโปรแกรมบนฮาร์ดแวร์ที่สร้างขึ้นเอง

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

 
GN⁺ 2024-01-11
ความคิดเห็นบน Hacker News
  • ผมเป็นคนง่าย ๆ ที่ถ้าเห็น Turing Complete บน HN ก็จะทิ้งคอมเมนต์เชิงบวกไว้ :)
    ผมซื้อเกมนี้เมื่อหลายปีก่อนแล้วเล่นไปไม่กี่ด่าน จากนั้นก็ให้ลูกชายที่ตอนนั้นอายุ 14 ปีเล่นต่อช่วงปิดเทอมฤดูร้อน และคอยช่วยบ้างเป็นบางครั้ง ในด่านสุดท้าย ลูกชายผมเขียนโปรแกรมด้วยภาษา pseudo-assembly ที่เกมสอน ให้คอมพิวเตอร์ที่เขาสร้างเองตั้งแต่ logic gate เดินผ่านเขาวงกตแบบสุ่มด้วยกฎมือขวา เกมนี้สุดยอดจริง ๆ
    ข้อติอย่างเดียวคือสมัยผมอายุเท่านั้น ไม่มีแม้แต่เกมที่คล้ายกันด้วยซ้ำ
    ผมมักติดอยู่ที่ด่านที่เริ่มมีการนำหน่วยความจำเข้ามาใช้ ดูเหมือนสมองผมจะรับแนวคิดเรื่อง tick ถัดไป/ก่อนหน้า ได้ไม่ค่อยดีนัก แต่ก็ยังมีคำใบ้และเฉลยเต็ม ๆ ออนไลน์อยู่เยอะ ถ้าจำเป็นก็ใส่เฉลยแล้วข้ามไปด่านถัดไปได้
    ตัวเกมเองแทบจะเสร็จสมบูรณ์มาตั้งแต่กว่าปีก่อนแล้ว และผู้พัฒนากำลังเขียนใหม่ทั้งระบบเพื่อปรับปรุงประสิทธิภาพและให้สร้าง CPU ที่ซับซ้อนขึ้นได้ หวังว่าตอนปล่อยอัปเดตจะไม่มีอะไรพัง
    แนะนำอย่างยิ่ง

    • คิดว่า Rocky's Boots(1982) [0] น่าจะเป็นเกมที่คล้าย ๆ กัน
      [0] https://en.wikipedia.org/wiki/Rocky%27s_Boots
    • ตอนออกแบบ memory chip ใน NAND to Tetris ผมติดตรงเดียวกันเป๊ะ สุดท้ายต้องดูเฉลยส่วนนั้น และปรากฏว่าผมก็ไม่ได้ห่างจากเฉลยมากนัก แต่ไม่เข้าใจไวยากรณ์ที่ทำให้มันทำงานได้
      สิ่งที่ผมทำคือ:
      Mux(a=out, b=in, sel=load, out=muxOut)
      DFF(in=muxOut, out=DFFOut)
      บรรทัดสุดท้ายควรเป็นแบบนี้:
      DFF(in=muxOut, out=DFFOut, out=out)
      ถึงอย่างนั้น Turing Complete ก็ดูเหมือนเป็นคู่หูที่สมบูรณ์แบบของ NAND to Tetris เพียงแต่ดูเหมือนจะขายเฉพาะบน Steam เลยอยากให้ซื้อแบบอิสระได้ด้วย
    • ทำให้นึกถึง TIS-100 และ Shenzhen I/O ของ Zachtronics
  • ผมชอบเกมแนวนี้มาก เลยมีคอลเลกชันเกมที่เกี่ยวข้องบน Steam เพิ่มขึ้นเรื่อย ๆ ทีละนิด บางเกมก็ไม่ได้อยู่บน Steam เช่น nandgame
    Turing Complete จัดว่าเป็นเกมที่ดีในกลุ่มนี้ และตัวจำลองก็ดูเสถียร ภารกิจหลังจากการปรับโครงสร้างช่วง Early Access แรก ๆ ก็ออกแบบมาได้ค่อนข้างดี
    อย่างไรก็ตาม UI ไม่ได้ลื่นไหลเสมอไป และคำแนะนำก็น้อย จึงน่าจะเหมาะกับคนที่เคยผ่านกระบวนการคล้าย ๆ กันใน simulator อื่นมาก่อนแล้ว
    ถ้าต้องการเกมที่อธิบายแนวคิดได้ดีกว่าในบรรดาเกมคล้ายกัน ผมแนะนำ Silicon Zeroes โดยรวมอาจรู้สึกขัดเกลาน้อยกว่านิดหน่อย แต่มีโครงเรื่องน่ารัก ๆ อธิบายได้ดีกว่าว่าแต่ละด่านต้องการนำเสนออะไร และจัดการการแก้ปัญหาเกี่ยวกับ clock ได้ดีกว่ามากเป็นพิเศษ
    ถ้าชอบฝั่ง pseudo-assembly มากกว่าวงจรอิเล็กทรอนิกส์ ผมแนะนำ TIS100 หรือ Shenzhen I/O
    ถ้าชอบปริศนาที่ออกแบบมาดี Human Resource Machine อาจจะตรงรสนิยมมากกว่า
    ข่าวนี้ของ Turing Complete ก็น่าดู: https://steamcommunity.com/app/1444480/eventcomments/3806156...
    หลังจากไม่มีอัปเดตมาหนึ่งปี ก็มีข่าวเมื่อเดือนสิงหาคม 2023 ว่า “ขอโทษครับ/ค่ะ อัปเดตใหญ่ใหม่กำลังจะมาเร็ว ๆ นี้!” แล้วหลังจากนั้นก็กลับมาเงียบอีกครั้ง
    ดูเหมือนผู้พัฒนาจะติดอยู่กับ การเขียนใหม่ครั้งใหญ่ ที่มีขนาดมหาศาล และใช้เวลานานกว่าที่คาดไว้มาก
    ผมรอจะกลับไปเล่นอีกครั้งเมื่อออกจาก Early Access แต่ก็เริ่มกังวลว่าจะต้องรอไปตลอดกาล

    • กำลังคิดว่าจะทำเกม analog computing สไตล์ Zachtronics ดีไหม ตอนนี้กำลังทำ circuit simulator อยู่ แต่ยังไม่รู้ว่ามันจะสนุกจริงไหม หรือจะหาวิธีทำให้สนุกได้หรือเปล่า
      digital computing มีข้อได้เปรียบเรื่อง abstraction การคิดถึง logic gate ไม่จำเป็นต้องรู้กฎของโอห์ม
      ถ้าไปทาง analog computing ก็ต้องหาวิธีสอนคณิตศาสตร์ให้ได้ การคำนวณไม่ใช่ Boolean อีกต่อไป แต่เป็นการผสมกันของสมการไฟฟ้าหลายชุด แม้จะเป็นคณิตศาสตร์ง่าย ๆ ก็ยังให้ความรู้สึกต่างจากเกมเขียนโปรแกรมทั่วไป
      ถึงอย่างนั้นก็อยากรู้ว่าฟังดูน่าสนใจไหม และน่าเล่นหรือเปล่า
    • ถ้าคุณเคลียร์ TIS-100 แล้ว แต่ยังอยากได้ประสบการณ์ภาษา assembly ที่น่าเบื่อยิ่งกว่าเดิม ผมมีเกม คำสั่งเดียว (subleq) ฟรีบน Steam ชื่อ SIC-1
      https://store.steampowered.com/app/2124440/SIC1/
    • ถ้าเป็นแฟน Zachtronics ก็ขอแนะนำ Opus Magnum และ Exapunks ด้วย ใน Exapunks คุณต้องเรียนภาษาคล้าย assembly ใหม่เพื่อสั่งงานเอเจนต์หุ่นยนต์ และผมเล่นได้สนุกมากจริง ๆ
      ผมจำได้ว่าเคยลอง Human Resource Machine แค่ความท้าทายช่วงต้น ๆ ไม่กี่อัน รู้สึกว่าปริศนาง่ายเกินไป และขั้นตอนการแก้ก็ไม่ได้ยากมาก เลยไม่ได้ไปถึงช่วงท้าย
    • ในแนวนี้ MHRD ก็ยอดเยี่ยมเช่นกัน ผมเล่นมาหลายรอบแล้ว ดีใจที่มีเกมคล้าย ๆ กันอีก: https://store.steampowered.com/app/576030/MHRD/
    • สงสัยว่ามีเกมลักษณะคล้ายกันที่สอน machine learning หรือ deep learning บ้างไหม
  • บังเอิญเพิ่งซื้อมาเมื่อกี้ตอน Steam Winter Sale
    เป็นแนวคิดที่เท่ แต่ถ้าจะเป็นเกมที่ดีจริง ๆ หรือเป็นเครื่องมือการศึกษาแบบเดี่ยว ๆ ก็ยังต้องขัดเกลาอีกมาก
    สำหรับคนที่มีความรู้เกี่ยวข้องอยู่แล้วก็โอเค แต่สำหรับมือใหม่ น่าจะเป็นประสบการณ์ที่ค่อนข้างน่าหงุดหงิด เพราะโยนปัญหาให้โดยแทบไม่มีคำแนะนำ การสอน หรือการเตรียมพื้นฐาน
    อยากให้มีฟีเจอร์ช่วย จัดวางวงจร ด้วย พอขยับหรือหมุนชิ้นส่วน มันจะหลุดจากสายไฟ แล้วต้องวาดสายใหม่ทีละเส้นด้วยมือ แม้จะคิด logic ที่ถูกต้องได้แล้ว ก็ยังมี friction ตอนนำไปทำจริงอยู่ไม่น้อย

    • ในด่านแรก ๆ ด่านหนึ่งมีทิปว่าถ้าดับเบิลคลิกชิ้นส่วน จะสามารถย้าย สายไฟที่เชื่อมกับชิ้นส่วนนั้น ไปพร้อมกันได้ เมื่อดับเบิลคลิก ระบบจะเลือกไม่ใช่แค่ชิ้นส่วน แต่รวมถึง node ของสายไฟที่เชื่อมอยู่ด้วยโดยอัตโนมัติ ถึงอย่างนั้นฝั่ง UI ก็ยังมีพื้นที่ให้ขัดเกลาอีก
  • เกมนี้ผมเล่นแล้วสนุกมาก และตอนนี้ก็ยังสนุกอยู่ เหมาะที่สุดเวลาจับเล่นยาว ๆ ทีเดียว
    คล้าย Factorio คือถ้าพักไปนานแล้วกลับมาเล่นต่อ หลายครั้งการเริ่มใหม่จะสนุกกว่าการเล่นต่อจากเดิม หรือไม่ก็แค่อยู่ในแซนด์บ็อกซ์ขั้นสุดท้ายไปเลยก็ได้
    UI ยังขัดเกลาได้อีก และช่วงหลายปีที่ผ่านมา มีการทำ ปรับปรุงประสิทธิภาพครั้งใหญ่ ที่ยังไม่ได้ปล่อยออกมา ช่วงนี้มีการส่งออก Verilog ด้วย แต่ผมยังไม่ได้ลองใช้อย่างจริงจัง
    ชิ้นส่วนเพิ่มเติมที่ปลดล็อกช่วงท้ายทำให้แซนด์บ็อกซ์สนุกขึ้นจริง ๆ มีระบบคะแนนด้วย จึงเพิ่มองค์ประกอบการแข่งขันเข้ามา แต่จะปลดล็อกหลังจากผ่านคอมพิวเตอร์เครื่องแรกไปไกลพอสมควร
    ผมเล่นเกมนี้เยอะมากก่อนตัดสินใจเรียนปริญญาวิทยาการคอมพิวเตอร์ตอนวัยกลางคน และมันทำให้เนื้อหาสถาปัตยกรรมพื้นฐานง่ายมาก ขอแนะนำอย่างยิ่งสำหรับใช้ทบทวนแบบสนุก ๆ ด้วย
    “สนุก” ในที่นี้หมายถึงความสนุกจากการเล่นกับตรรกะบูลีนในสภาพแวดล้อมที่เป็นมิตร ดังนั้นถ้าไม่ชอบแนวคิดนั้น “เกม” นี้ก็คงไม่เหมาะกับคุณ

  • ที่บริษัทก็ใช้สิ่งนี้จริง ๆ และขอแนะนำอย่างยิ่ง
    ประมาณ 1 ปีก่อน ผมกับเพื่อนร่วมงานลองเล่นจนจบในเวลาว่าง และชอบมาก มองว่าเหมาะสุด ๆ สำหรับเด็กฝึกงานด้านวิศวกรรมไฟฟ้า เพราะในหลักสูตรพวกเขาเรียนแนวคิด ตรรกะดิจิทัล อย่างเกต รีจิสเตอร์ ชิฟต์รีจิสเตอร์ และเคาน์เตอร์ แต่ไม่ค่อยมีโอกาสนำไปใช้กับโปรเจกต์จริงมากนัก
    อีกทั้งเพราะข้อจำกัดด้านเวลา เนื้อหาต่อยอดอย่างการเขียนโปรแกรมแอสเซมบลีก็แทบไม่ได้สอนกันดีนักแล้ว
    หากมีคำแนะนำเพิ่มเติมจากภายนอกเล็กน้อย เกมนี้ช่วยกระตุ้นให้ผู้คนเข้าใจการทำงานของชิ้นส่วนตรรกะดิจิทัลและอยากลองเล่นเองได้จริง ๆ จุดที่ยอดเยี่ยมคือสามารถไปถึงขั้นเขียนภาษาแอสเซมบลีแบบง่าย ๆ แล้วใช้มันแก้ปริศนาได้ ซึ่งเป็นแรงจูงใจอย่างมากสำหรับนักเรียนด้วย

  • ตอนเปิดหน้าเว็บครั้งแรก ดูเหมือนลอก Digital Logic Sim [1] ของ Sebastian Lague มา แต่พอดูวิดีโอแล้วพบว่าจริง ๆ ลงลึกกว่ามากจนน่าประทับใจ เลยซื้อมา หวังว่าจะมีเวลาได้ลองเล่นในเร็ว ๆ นี้
    1: https://sebastian.itch.io/digital-logic-sim

  • เกมนี้เทียบได้ง่าย ๆ กับวิชาพื้นฐานวิศวกรรมคอมพิวเตอร์หนึ่งภาคการศึกษา แต่รู้สึกสนุกกว่า โดยเฉพาะเพราะมินิเกมแอสเซมบลี
    ที่มหาวิทยาลัยมีงานให้ ออกแบบคำสั่งเฉพาะสำหรับ CPU สมมติ และงานออกแบบวงจรเฉพาะแยกกัน แต่ไม่ได้เป็นการออกแบบที่สมบูรณ์หรือใช้งานได้จริง
    Turing Complete สนุกตรงที่ให้สร้าง CPU ขนาดเล็กที่สมบูรณ์ พร้อมสร้าง สถาปัตยกรรมชุดคำสั่ง ของตัวเอง และจะลงลึกเท่าไรก็ได้ตามต้องการ

  • เกมที่คล้ายกัน: https://nandgame.com/
    อย่างไรก็ตาม Turing Complete ดูเหมือนจะมีความลึกมากกว่า nand game

  • ผมซื้อเกมนี้แล้ว และมองว่าเป็นงานศิลปะชิ้นหนึ่ง
    ผมไม่ได้จบเอกวิทยาการคอมพิวเตอร์ แต่ทำงานเป็นนักพัฒนามาประมาณ 15 ปีแล้ว เนื้อหาหลายอย่างในเกมเป็นสิ่งที่ผมรู้ในเชิงนามธรรม หรือเคยลองจับด้วยบอร์ด Arduino โปรเจกต์เสริมเล็ก ๆ และอื่น ๆ มาก่อน
    แต่สิ่งนี้คือ หลักสูตรแบบลงมือทำ ที่คนชอบงัดแงะคอมพิวเตอร์เฝ้าถวิลหาอย่างแท้จริง

  • Exapunks(https://www.zachtronics.com/exapunks/) ก็น่าจะสนใจเช่นกัน สอนแอสเซมบลีได้ดีกว่าคลาสมหาวิทยาลัยเสียอีก

    • TIS-100 ก็ยอดเยี่ยมเหมือนกัน ยากกว่าแอสเซมบลีจริงเสียอีก
    • อยากรู้ว่าเคยเล่น Shenzhen I/O ด้วยไหม