ทุกวันนี้คอมพิวเตอร์อาจเป็นเครื่องมือที่ใช้งานง่ายและแพร่หลายจนแทบไม่มีใครไม่รู้จัก แต่จะเกิดอะไรขึ้น ถ้าวันหนึ่งมรดกตกทอดถึงมือคือเครื่องคอมพิวเตอร์รุ่นโบราณที่มีอายุอานามกว่าสามทศวรรษ พร้อมด้วยคำสั่งเสียจากเจ้าของเดิมให้ซ่อมแซมมันจนกลับมาทำงานถูกต้อง คุณจะสามารถแก้ปริศนาหาความลับและที่มาที่ไปของคอมพิวเตอร์ลึกลับเครื่องนี้ได้หรือไม่ พบคำตอบได้ในเกม TIS-100
รู้จักกับ TIS-100
TIS-100 นอกจากจะเป็นชื่อของเกมเกมนี้แล้ว มันยังเป็นชื่อคอมพิวเตอร์ลึกลับที่เราได้รับมาซ่อมแซมด้วย โดยชื่อเต็มๆ ของมันได้แก่ Tessellated Intellegent System ซึ่งอาจแปลออกมาสวยๆ ได้ว่า ระบบอัจฉริยะแบบปูระนาบต่อเนื่อง (tessellation คือการปูพื้นระนาบด้วยรูปทรงเดียวกันโดยไม่เว้นให้เกิดช่องว่าง) จากชื่อที่แนะว่ามีการใช้ของประเภทเดียวกันมาเรียงต่อกันจำนวนมาก คงเดาได้ไม่ยากว่าการประมวลผลของคอมพิวเตอร์เครื่องนี้ทำงานแบบขนานนั่นเอง โดยมีจำนวนหน่วยประมวลผลอยู่ที่ 12 หน่วย วางเรียงกันเป็นรูปสี่เหลี่ยมผืนผ้าด้วยอัตราส่วน 3 ต่อ 4 ดังจะเห็นได้จากรูปที่ 1
แต่ละหน่วยประมวลผลสามารถบรรจุคำสั่งภาษา Assembly เข้าไปได้ ซึ่งแม้ว่ารุ่นของภาษา Assembly สำหรับเครื่อง TIS-100 จะรองรับได้เพียงแค่คำสั่งพื้นฐานเท่านั้น (เช่น การคำนวณทางคณิตศาสตร์ที่ทำได้เพียงการบวกและลบ ไม่มีการคูณหรือหาร) แต่ด้วยการทำงานแบบขนานกันระหว่างหน่วยประมวลผลจำนวนมาก ก็ทำให้เชื่อได้ว่าหากออกแบบอัลกอริทึมดีพอ คอมพิวเตอร์เครื่องนี้ก็น่าจะมีความสามารถเพียงพอสำหรับประมวลผลข้อมูลยากๆ จำนวนมากได้อย่างรวดเร็ว
แน่นอนว่าการเขียนโปรแกรมไม่ใช่เรื่องง่าย แม้แต่โปรแกรมเมอร์ชั้นเซียนก็ยังต้องคอยเปิดคู่มืออยู่บ่อยๆ TIS-100 ก็มาพร้อมกับเอกสารอ้างอิงที่บอกคร่าวๆ ว่าคำสั่งไหนใช้งานอย่างไร เอกสารส่วนหนึ่งสามารถดูได้จากรูปที่ 2
แต่เดิมนั้นคาดว่าเครื่อง TIS-100 สามารถทำงานได้อย่างถูกต้องตามปรกติ จนกระทั่งเกิดความเสียหายขึ้นในหน่วยประมวลผลบางส่วน (สังเกตได้จากหน่วยประมวลผลสีแดงในรูปที่ 1) ทำให้เราต้องเข้าไปเขียนโปรแกรมซ่อมแซมมันให้กลับมาใช้งานได้ดังเดิม โดยแต่ละการซ่อมแซมจะมีคำอธิบายการทำงานที่คาดหวังกำกับไว้ พร้อมทั้งข้อมูลทดสอบเพื่อให้แน่ใจว่า อัลกอริทึมใหม่ที่เขียนเข้าไปนั้นจะสามารถทำงานได้อย่างถูกต้อง
ความท้าทายของข้อมูลทดสอบนั้น ไม่ได้มีเพียงแค่การประมวลผลทางตัวเลขอย่างเดียว แต่ยังขยายไปถึงการประมวลผลภาพอีกด้วย
แต่ความท้ายทายที่แท้จริงคงหนีไม่พ้นตารางคะแนนในรูปที่ 3 ซึ่งมันจะแสดงขึ้นหลังจากแก้โปรแกรมพร้อมทำแบบทดสอบสำเร็จ โดยมันจะบอกถึงคุณภาพและประสิทธิภาพของอัลกอริทึมที่เพิ่งเขียนไป เทียบเป็นฮิสโตแกรมกับข้อมูลจากผู้เล่นทั่วทุกมุมโลก หรือจะแข่งกับเพื่อนบน Steam แบบเฉือนชนะกันเพียง 1 รอบการประมวลผลก็ย่อมได้
เล่นต่อหลังเกมจบ
สำหรับผู้เล่นที่หลงใหลในเสน่ห์ของภาษา Assembly และการประมวลผลแบบขนานจนไม่อยากจบเกมแม้จะเล่นเกมจนจบ TIS-100 ก็มีเครื่องมือสำหรับสร้างด่านขึ้นมาเล่นและแจกจ่ายได้ โดยใช้ภาษา Lua สำหรับเขียนสคริปต์ของด่านนั้นๆ ดังตัวอย่างในรูปที่ 4
ชุมชนนักเล่นเกม
เราน่าจะพูดได้ว่า ไม่มีเรื่องใดในโลกนี้ที่ไม่มี subreddit เป็นของตัวเอง สำหรับเกม TIS-100 ก็เช่นกัน โดยชุมชนดังกล่าวอยู่ที่ /r/tis-100 ซึ่งเป็นทั้งสถานที่พูดคุยแลกเปลี่ยนเทคนิคการเขียนโปรแกรม, อวดความสวยงามแปลกใหม่ของอัลกอริทึม, และหอเกียรติยศสำหรับจดบันทึกสถิติที่ดีที่สุดเอาไว้
แต่เพียงการอวดอัลกอริทึมด้วยภาพถ่ายหน้าจอ คงไม่ทำให้เพื่อนร่วมเกมตื่นตาตื่นใจได้มากเท่ากับการได้นำโค้ดโปรแกรมนั้นไปทดลองเล่นด้วยตัวเอง ในส่วนนี้ก็มี tis100pad.com ซึ่งเป็นเว็บที่แฟนๆ สร้างขึ้นมาสำหรับแลกเปลี่ยนโค้ดในเกมโดยเฉพาะเลยทีเดียว
สรุป
TIS-100 น่าจะไม่ใช่เกมที่จะทุกคนจะชื่นชอบ แม้แต่ในหมู่โปรแกรมเมอร์เองก็อาจจะขยาดกับเกมนี้ (ทำงานเขียนโค้ดมาทั้งวัน กลับบ้านคงหมดอารมณ์เขียนโค้ดต่อแล้ว?) แต่ถ้าคุณชอบเกมแก้ปริศนา หรือกำลังศึกษาภาษา Assembly หรือสนใจการประมวลผลแบบคู่ขนาน ผมว่าเกมนี้ออกแบบมาได้ดีมากๆ เลยทีเดียวครับ
ข้อดี
- ได้เขียนภาษา Assembly ทำงานแบบขนาน
- ท้าทายให้ปรับปรุงอัลกอริทึมอยู่เสมอ
ข้อด้อย
- ยากมาก เล่นแล้วเหนื่อย
Comments
หาแก้ปริศนา ?
สร้างหขึ้น ?
โค้ดโดยในเกม ?
เรียบร้อยครับ
ต้องเป็นรูปที่ ๓ หรือเปล่าครับ
โอ๊ จริงด้วยครับ จะว่าไปถ้ามี tool ที่ทำ auto ref เหมือนใน LaTeX ก็น่าจะดี
นึกถึงสมัยเรียนวิชา Computer Organization นั่งเขียน Assembly ส่งอาจารย์กันมือหงิก (ฮา) ถ้า อ. คนไหนจะหยิบไปเป็นเครื่องมือการเรียนการสอนก็น่าจะเข้าท่าดีนะครับ
คะแนน 10/10
ลด 50% เหลือ 85 บาท
http://store.steampowered.com/app/370360/?l=thai
นึกถึงตอนเรียน Z-80
TIS = มอก ?
นึกถึง TIS-620 ขึ้นมาเลยทีเดียว
เทคโนโลยีไม่ผิด คนใช้มันในทางที่ผิดนั่นแหละที่ผิด!?!
มาเพิ่มข้อมูลให้นะครับจากคนที่ซื้อมาเล่นนานแล้วผู้พัฒนาคือ Zachtronics มีชื่อเสียงมากเกม puzzle ที่หา best method เกมดังๆเช่น Infinifactory กับ Spacechem (ลองดู gameplay ก็ได้ครับ)ตอนนี้มีอีกเกม Gunpoint แต่ไม่เหมือนกับที่ว่ามา
สามเกมที่ว่ามา (ไม่รวม Gunpoint) เขียนคำสั่งให้ได้ product ตามที่โจทย์ต้องการ เกม TIS โชว์ความเป็น Text-based ซึ่งโดนใจชาว Programmer ต่างจากเกมอื่นๆที่ออกแนว GUI
จุดเด่นของเกมนี้หลักๆ นอกจากเป็น text-based คือ
1. learning curve ค่อนข้างชัน มีไฟล์ pdf มาอันเดียวให้ลองอ่าน ลองมือดู นี่แหละครับ มันสนุกตรงนี้
2. Process ที่แต่ละช่องทำได้เป็นคำสั่งง่ายๆ เช่น บวกลบ >0,=0 ไม่มี x>y
แต่โจทย์ต้องการเช่น มี input4 อันค่า 0,1 ให้เขียน 0,1,2,3,4 ตามจำนวน 1 ของ input4 อันนั้นๆ
3. โจทย์ยิ่ง complex ก็ยิ่งมีวิธีแก้ปัญหาเยอะ จำนวนคำสั่ง จำนวนครั้งก็ต่างกัน สำหรับค่ายนี้ไม่ผิดหวัง ซับซ้อนสุดๆ55+
จะได้ปาคีย์บอร์ดทิ้งก็คราวนี้
ขอบาย
ยังสยองกับตอนสอบ
อาจารย์แจกบอร์ด แล้วให้เขียน assembly ลงบอร์ด ตามโจทย์ที่กำหนดบนกระดาษ
"คอมพิวเตอร์รุ่นโบราณที่มีอายุอานามกว่าสามศตวรรษ"
ศตวรรษ เลยหรอครับ?
โอ่ย ทศวรรษ ครับ ผิดๆ
นึกถึงสมัยเตรียมสอบ CCNA นั่งเล่น Cisco Mind Shareไม่สนุก แต่ประเทืองปัญญา
แต่ถามว่าให้เล่นอีกเอาไหม.. ไม่เอา ผมเล่นเกมส์เพราะอยากได้ความสนุก ปัญญาไว้ทีหลัง