เกมเกี่ยวกับวิทยาการคอมพิวเตอร์ 'Turing Complete'
(turingcomplete.game)- Turing Complete เป็นเกมที่มุ่งเน้นประสบการณ์ในการค่อย ๆ แก้ปัญหาด้วยตัวเองเพื่อทำความเข้าใจแนวคิดด้านวิทยาการคอมพิวเตอร์ให้ลึกซึ้งยิ่งขึ้น
- การเรียนรู้เริ่มต้นจาก ลอจิกเกต และดำเนินไปในรูปแบบการลองสร้างเกตอื่น ๆ ขึ้นมาจาก nand gate เพียงอย่างเดียว
- จากนั้นจึงผสาน หน่วยความจำและคอมโพเนนต์ เพื่อขยายวงจรง่าย ๆ ให้เข้าใกล้สถาปัตยกรรมคอมพิวเตอร์จริงมากขึ้น
- คอมพิวเตอร์ที่ผู้เล่นสร้างมีเป้าหมายให้เป็น Turing complete ซึ่งหมายถึงโครงสร้างที่สามารถคำนวณอัลกอริทึมแบบเดียวกับ Turing machine ได้
- ผู้เล่นจะประกอบ คำสั่งแอสเซมบลี บนฮาร์ดแวร์ที่สร้างขึ้นเอง และแก้ปริศนาการเขียนโปรแกรมที่อิงกับโค้ดไบนารี
วิธีเรียนรู้วิทยาการคอมพิวเตอร์ผ่านเกม
- Turing Complete เป็นเกมที่ใช้วิทยาการคอมพิวเตอร์เป็นธีมหลัก
- เหมาะสำหรับคนที่ชอบความสนุกจากการค้นพบคำตอบด้วยตัวเอง และชอบช่วงเวลาที่ได้มองแนวคิดซึ่งคิดว่าเข้าใจแล้วให้ลึกขึ้นกว่าเดิม
- มีให้เล่นบน Steam ที่ Play Turing Complete
ลำดับการเรียนรู้จากวงจรไปสู่สถาปัตยกรรมคอมพิวเตอร์
-
ลอจิกเกต
- ลอจิกเกตคือองค์ประกอบพื้นฐานของการคำนวณ
- เรียนรู้พื้นฐานของวงจรด้วยการสร้างเกตอื่น ๆ ทั้งหมดจาก nand gate เพียงตัวเดียว
-
คอมโพเนนต์และหน่วยความจำ
- เมื่อเพิ่มหน่วยความจำบนลอจิกเกต ก็สามารถสร้าง คอมโพเนนต์ ที่ซับซ้อนยิ่งขึ้นได้
- จากนั้นนำองค์ประกอบเหล่านี้มาประกอบกันเพื่อขยายไปเป็นโครงสร้างคอมพิวเตอร์จริง
-
สถาปัตยกรรม
- คอมพิวเตอร์ที่ประกอบขึ้นเองมีเป้าหมายให้เป็น Turing complete
- หมายถึงคอมพิวเตอร์ที่สามารถคำนวณอัลกอริทึมแบบเดียวกับ Turing machine ได้
-
แอสเซมบลี
- คอมพิวเตอร์ถูกเขียนโปรแกรมด้วยโค้ดไบนารี
- ผู้เล่นจะสร้างคำสั่งแอสเซมบลีเพื่อทำให้กระบวนการนี้ง่ายขึ้น และแก้ปริศนาการเขียนโปรแกรมบนฮาร์ดแวร์ที่สร้างขึ้นเอง
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ผมเป็นคนง่าย ๆ ที่ถ้าเห็น Turing Complete บน HN ก็จะทิ้งคอมเมนต์เชิงบวกไว้ :)
ผมซื้อเกมนี้เมื่อหลายปีก่อนแล้วเล่นไปไม่กี่ด่าน จากนั้นก็ให้ลูกชายที่ตอนนั้นอายุ 14 ปีเล่นต่อช่วงปิดเทอมฤดูร้อน และคอยช่วยบ้างเป็นบางครั้ง ในด่านสุดท้าย ลูกชายผมเขียนโปรแกรมด้วยภาษา pseudo-assembly ที่เกมสอน ให้คอมพิวเตอร์ที่เขาสร้างเองตั้งแต่ logic gate เดินผ่านเขาวงกตแบบสุ่มด้วยกฎมือขวา เกมนี้สุดยอดจริง ๆ
ข้อติอย่างเดียวคือสมัยผมอายุเท่านั้น ไม่มีแม้แต่เกมที่คล้ายกันด้วยซ้ำ
ผมมักติดอยู่ที่ด่านที่เริ่มมีการนำหน่วยความจำเข้ามาใช้ ดูเหมือนสมองผมจะรับแนวคิดเรื่อง tick ถัดไป/ก่อนหน้า ได้ไม่ค่อยดีนัก แต่ก็ยังมีคำใบ้และเฉลยเต็ม ๆ ออนไลน์อยู่เยอะ ถ้าจำเป็นก็ใส่เฉลยแล้วข้ามไปด่านถัดไปได้
ตัวเกมเองแทบจะเสร็จสมบูรณ์มาตั้งแต่กว่าปีก่อนแล้ว และผู้พัฒนากำลังเขียนใหม่ทั้งระบบเพื่อปรับปรุงประสิทธิภาพและให้สร้าง CPU ที่ซับซ้อนขึ้นได้ หวังว่าตอนปล่อยอัปเดตจะไม่มีอะไรพัง
แนะนำอย่างยิ่ง
[0] https://en.wikipedia.org/wiki/Rocky%27s_Boots
สิ่งที่ผมทำคือ:
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 เลยอยากให้ซื้อแบบอิสระได้ด้วย
ผมชอบเกมแนวนี้มาก เลยมีคอลเลกชันเกมที่เกี่ยวข้องบน 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 แต่ก็เริ่มกังวลว่าจะต้องรอไปตลอดกาล
digital computing มีข้อได้เปรียบเรื่อง abstraction การคิดถึง logic gate ไม่จำเป็นต้องรู้กฎของโอห์ม
ถ้าไปทาง analog computing ก็ต้องหาวิธีสอนคณิตศาสตร์ให้ได้ การคำนวณไม่ใช่ Boolean อีกต่อไป แต่เป็นการผสมกันของสมการไฟฟ้าหลายชุด แม้จะเป็นคณิตศาสตร์ง่าย ๆ ก็ยังให้ความรู้สึกต่างจากเกมเขียนโปรแกรมทั่วไป
ถึงอย่างนั้นก็อยากรู้ว่าฟังดูน่าสนใจไหม และน่าเล่นหรือเปล่า
https://store.steampowered.com/app/2124440/SIC1/
ผมจำได้ว่าเคยลอง Human Resource Machine แค่ความท้าทายช่วงต้น ๆ ไม่กี่อัน รู้สึกว่าปริศนาง่ายเกินไป และขั้นตอนการแก้ก็ไม่ได้ยากมาก เลยไม่ได้ไปถึงช่วงท้าย
บังเอิญเพิ่งซื้อมาเมื่อกี้ตอน Steam Winter Sale
เป็นแนวคิดที่เท่ แต่ถ้าจะเป็นเกมที่ดีจริง ๆ หรือเป็นเครื่องมือการศึกษาแบบเดี่ยว ๆ ก็ยังต้องขัดเกลาอีกมาก
สำหรับคนที่มีความรู้เกี่ยวข้องอยู่แล้วก็โอเค แต่สำหรับมือใหม่ น่าจะเป็นประสบการณ์ที่ค่อนข้างน่าหงุดหงิด เพราะโยนปัญหาให้โดยแทบไม่มีคำแนะนำ การสอน หรือการเตรียมพื้นฐาน
อยากให้มีฟีเจอร์ช่วย จัดวางวงจร ด้วย พอขยับหรือหมุนชิ้นส่วน มันจะหลุดจากสายไฟ แล้วต้องวาดสายใหม่ทีละเส้นด้วยมือ แม้จะคิด logic ที่ถูกต้องได้แล้ว ก็ยังมี friction ตอนนำไปทำจริงอยู่ไม่น้อย
เกมนี้ผมเล่นแล้วสนุกมาก และตอนนี้ก็ยังสนุกอยู่ เหมาะที่สุดเวลาจับเล่นยาว ๆ ทีเดียว
คล้าย 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/) ก็น่าจะสนใจเช่นกัน สอนแอสเซมบลีได้ดีกว่าคลาสมหาวิทยาลัยเสียอีก