- โปรเจ็กต์ทดลองที่ผสาน Claude Code เข้ากับเกมโอเพนซอร์ส RollerCoaster Tycoon 2(OpenRCT2) เพื่อให้ AI บริหารสวนสนุกจริง
- AI วิเคราะห์ตัวชี้วัดกว่า 100 รายการ เช่น การเงิน, ข้อร้องเรียนของผู้เล่น, ข้อมูลเครื่องเล่นขัดข้อง แล้วตัดสินใจด้านการบริหารโดยอัตโนมัติ เช่น ติดตั้งซุ้มเครื่องดื่ม จ้างพนักงาน และปรับค่าเข้าชม
- ใช้ เครื่องมือ CLI
rctctl เพื่อดำเนินการทุกอย่างในเกมผ่านบรรทัดคำสั่ง โดยออกแบบโครงสร้างให้คล้ายกับ kubectl ของ Kubernetes
- Claude แสดงจุดแข็งด้าน การวิเคราะห์ข้อมูล, การปรับราคา, การจัดการพนักงาน แต่เผยข้อจำกัดในโจทย์เชิงพื้นที่ เช่น การเชื่อมทางเดิน, การวางรถไฟเหาะ, การรับรู้ภูมิประเทศ
- การทดลองนี้ยืนยันว่า หัวใจสำคัญของการออกแบบเอเจนต์คือความอ่านง่ายของสภาพแวดล้อมและคุณภาพของอินเทอร์เฟซ
ภาพรวมโปรเจ็กต์
- Ramp Labs ทดลองผสาน Claude Code เข้ากับ RollerCoaster Tycoon 2 เพื่อให้ AI ลงมือบริหารสวนสนุกด้วยตัวเอง
- Claude วิเคราะห์ข้อมูลกว่า 100 รายการ เช่น การเงินในเกม ความพึงพอใจของผู้เล่น และสถานะของเครื่องเล่น
- จากนั้นเสนอหรือดำเนินมาตรการอัตโนมัติ เช่น เพิ่มซุ้มเครื่องดื่ม จ้างช่างซ่อม และขึ้นค่าเข้าชม
- เป้าหมายของการทดลองคือการดึง บทเรียนสำหรับการออกแบบ AI เอเจนต์ในสภาพแวดล้อม B2B SaaS
- เลือก RollerCoaster Tycoon เพราะเป็นเกมที่สะท้อน การดำเนินธุรกิจแบบยึดลูกค้าเป็นศูนย์กลางและวงจรฟีดแบ็กดิจิทัล
ทำไมต้อง RollerCoaster Tycoon
- Ramp กำลังพัฒนา เอเจนต์ขนาดเล็กแยกตามงาน โดยใช้แนวทางที่คำนึงถึงข้อจำกัดด้านความปลอดภัยและบริบท
- แต่ก็มีความต้องการทดลองกับ เอเจนต์เดี่ยวที่มีสิทธิ์กว้างขวาง
- RollerCoaster Tycoon เป็นสภาพแวดล้อมที่รวม เศรษฐกิจ ลูกค้า และการจัดการการดำเนินงาน ไว้ด้วยกัน จึงมีโครงสร้างคล้ายการปฏิบัติการของ SaaS
- อินเทอร์เฟซของเกมยังคล้ายกับ แดชบอร์ด B2B SaaS และเข้ากับ เทอร์มินัลอินเทอร์เฟซแบบเรโทร-ฟิวเจอริสติก ของ Claude ได้ดี
ความสามารถและข้อจำกัดของ Claude
- มีการ fork OpenRCT2 แล้วเพิ่ม หน้าต่างเทอร์มินัล เพื่อให้ Claude ควบคุมเกมผ่านบรรทัดคำสั่ง
- CLI
rctctl ครอบคลุมทุกการกระทำที่ผู้ใช้ทำได้ และสื่อสารกับสถานะของเกมผ่าน JSON-RPC
- Claude รับรู้ข้อมูลเชิงพื้นที่ผ่าน เอาต์พุตแผนที่ ASCII แทนการมองเห็นภาพ
จุดแข็งของ Claude
- ความรู้เกี่ยวกับเกม: มีความรู้เกี่ยวกับ RCT มาก และทำงานได้อย่างเป็นธรรมชาติแม้อยู่ในสภาพแวดล้อมเกมยุค 90
- การรวบรวมข้อมูล: วิเคราะห์ตัวชี้วัดหลากหลาย เช่น ฟีดแบ็กจากผู้เล่นและข้อมูลการเงินแบบบูรณาการ
- การควบคุมเชิงดิจิทัล: ทำงานที่ไม่ใช่เชิงพื้นที่ได้ดี เช่น เปิด-ปิดเครื่องเล่น ปรับราคา จ้างพนักงาน และทำการตลาด
- การวางสิ่งอำนวยความสะดวก: สามารถวางโครงสร้างง่าย ๆ เช่น ห้องน้ำและซุ้มเครื่องดื่มได้อย่างเสถียร
จุดอ่อนของ Claude
- การเชื่อมทางเดิน: มีปัญหากับงานเชิงพื้นที่ เช่น การหาเส้นทางและการเชื่อมทางเข้า-ทางออก
- การวางรถไฟเหาะ: เมื่อติดตั้งเครื่องเล่นขนาดใหญ่ มักล้มเหลวในการรับรู้อุปสรรคและสภาพภูมิประเทศ
- การรับรู้พื้นที่สามมิติ: ไม่สามารถจัดการความชัน โครงสร้างใต้ดิน หรือออกแบบรถไฟเหาะแบบกำหนดเองได้
- โดยสรุป Claude แข็งแกร่งกับการบริหารที่อิงข้อมูล แต่ยังอ่อนกับการควบคุมเชิงภาพและเชิงพื้นที่
กระบวนการพัฒนา
- สร้างบนพื้นฐานของ OpenRCT2(C++) โดยเพิ่ม หน้าต่างเทอร์มินัลของ Claude, CLI
rctctl, ชั้น RPC และโค้ดทดสอบ
- เวอร์ชันแรกวางแผนด้วย ChatGPT o3-Pro Deep Research ก่อนจะนำมาสร้างใหม่ด้วย GPT-5.1-codex
- ใช้เวลารวมมากกว่า 40 ชั่วโมง และชี้ว่า การขาดวงจรฟีดแบ็ก เป็นคอขวดที่ใหญ่ที่สุด
- ยังให้ Claude เขียนรายงานบั๊กลงในรีโพซิทอรีโดยตรง เพื่อเพิ่มประสิทธิภาพของ QA
บทเรียนสำคัญ
- ความอ่านง่ายของสภาพแวดล้อม (Environment Legibility): Claude ทำได้ยอดเยี่ยมเมื่อมีอินเทอร์เฟซข้อมูลที่ชัดเจน แต่ยังอ่อนกับการแทนพื้นที่ด้วยข้อความ
- คุณค่าของ coding agent: การอัปเดตโมเดลล่าสุด เช่น Claude Opus 4.5 สะท้อนเข้ามาได้ทันที ช่วยเร่งความเร็วในการพัฒนา
- ความสำคัญของลูปการพัฒนา: หากไม่มีลูป QA อัตโนมัติ ประสิทธิภาพการผลิตจะลดลงอย่างมาก
- ความได้เปรียบของประสบการณ์ตรง: วิธีที่ดีที่สุดในการเข้าใจกลไกการทำงานของ LLM คือการทดลองและเล่นด้วยตัวเอง
การรันและข้อมูลโอเพนซอร์ส
- ต้องใช้ macOS(Sonoma ขึ้นไป), Xcode, CMake, Ninja และ RCT2(ของแท้)
- CLI
rctctl ใช้ โครงสร้างคำสั่งสไตล์ kubectl โดย Claude ควบคุมเกมผ่าน JSON-RPC
- ผลลัพธ์ที่ได้จากการบิลด์:
- OpenRCT2 (เวอร์ชันฝังเทอร์มินัล)
rctctl (เครื่องมือ CLI)
- แอสเซ็ต Sprite
- โค้ดทั้งหมดเปิดเผยบน GitHub(jaysobel/OpenRCT2) และสามารถสาธิตสดได้ผ่าน Twitch
บทสรุป
- Claude Code แสดงให้เห็นทั้ง ศักยภาพและข้อจำกัดของระบบอัตโนมัติด้านปฏิบัติการ
- RollerCoaster Tycoon ทำหน้าที่เป็น สนามทดลองช่วงเปลี่ยนผ่านระหว่างกราฟิกอินเทอร์เฟซกับระบบอัจฉริยะ
- ข้อสรุปสำคัญคือ ความสำเร็จหรือล้มเหลวของ AI เอเจนต์ขึ้นอยู่กับความชัดเจนของสภาพแวดล้อมและคุณภาพการออกแบบอินเทอร์เฟซ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ผมเสียดายอยู่เสมอที่ ระดับเครื่องมือ ที่ LLM ของผมใช้มันต่ำเกินไป
ใน IDE ผมคลิกครั้งเดียวก็รีแฟกเตอร์, ไล่ตาม symbol, ดูตำแหน่งที่ฟังก์ชันถูกใช้งานได้ แต่ LLM กลับใช้แค่คำสั่งพื้นฐานอย่าง grep, diff, cat
เลยสงสัยว่ามีความพยายามจะให้ LLM มี เครื่องมือสำหรับเขียนโค้ด·รีแฟกเตอร์ ที่ดีกว่านี้ไหม
ต่อให้เขียนไว้ใน AGENTS.md ก็มักจะเมินแล้วกลับไปใช้วิธีง่ายๆ ทำให้น่าหงุดหงิด
ถ้า JetBrains เอาความสามารถด้านรีแฟกเตอร์·code inspection ที่มีมาเชื่อมกับ AI ก็น่าจะนำไปไกลกว่านี้มาก
ที่จริง LLM กลับมีจุดแข็งตรงการเอาเครื่องมือระดับล่างมาประกอบกันเพื่อแก้ปัญหา
Python script ยาว 20 บรรทัดที่มนุษย์มองว่าซับซ้อน LLM กลับสร้างได้ใน 0.5 วินาที
เพราะมันเข้าใจและประกอบชิ้นส่วนโค้ดได้เร็ว ฟังก์ชัน refactoring อาจกลับทำให้สับสนได้
ถ้าให้เครื่องมือเยอะเกินไปก็เสี่ยงทำให้การตัดสินใจพร่ามัว
ผู้เขียนเองครับ ขอโพสต์ ลิงก์โบนัส เพิ่ม
สคริปต์เซสชันที่ใช้ claude-code-transcripts ของ Simon Willison
โพสต์ Reddit
Repo ของโปรเจกต์ OpenRCT2
Claude อาจเก่งกับอินพุตที่อิงภาพ แต่ไม่เก่งกับแผนภาพ ASCII
เหมือนกับการออกแบบเอเจนต์ในโลกจริง ข้อจำกัดของเอเจนต์อเนกประสงค์อยู่ที่ การมองเห็นสภาพแวดล้อม และ ความแข็งแรงของอินเทอร์เฟซ
เพราะงั้นเราอาจควรมองเอเจนต์ว่าเป็นสิ่งที่ทำงานอัตโนมัติแทน ‘ความขยัน’ ไม่ใช่ ‘สติปัญญา’
เคยมีเหตุการณ์ที่ใช้คำว่า “revert” ผิด ทำให้ Codex ไปรัน
git revertจริงๆ แล้ว ย้อนงานที่ทำไปgit revertไม่ใช่คำสั่งแบบทำลายล้าง ดังนั้นถ้ามีข้อมูลหายจริง น่าจะเป็นgit reset --hardมากกว่าjj statusไว้ในพรอมป์ต์ก็จะปลอดภัยน่าทึ่งที่เกมนี้ ถูกพัฒนาโดยคนคนเดียวด้วย assembly code
อยากตามหานักพัฒนาคนนั้นแล้วไปขอบคุณด้วยตัวเอง
ความพยายามของ Claude Code ก็น่าประทับใจจนทำให้สนใจขึ้นมา
ส่วนที่บอกว่าทำโปรเจกต์จนเสร็จด้วย vibe-coding ทั้งที่ไม่รู้ C++ เลยก็น่าสนใจมาก
คนรุ่นนี้ดูเหมือนจะไม่ค่อยรู้คุณค่าของสภาพแวดล้อมแบบนี้เท่าไร
บทสัมภาษณ์ท้ายวิดีโอน่าประทับใจมาก
เครื่องมือทำงานร่วมกันระหว่าง AI กับมนุษย์อย่าง CLI สไตล์ kubectl, ฟีดแบ็กของ Claude, ระบบเตือน ฯลฯ กำลังสำคัญขึ้นเรื่อยๆ
ถ้าให้บริบทที่มนุษย์เข้าใจได้ด้วยสายตาแก่ AI ด้วย ก็จะได้ผลลัพธ์ที่ดีขึ้นมาก
แค่ เพิ่ม context อย่างเดียวไม่ทำให้เกิดการเรียนรู้ และสุดท้ายก็ยังต้องใช้การปรับจูนละเอียด (fine-tuning)
บทความน่าสนใจ แต่ยังขาด การวิเคราะห์ผลลัพธ์ ว่า AI เล่นเกมได้ดีแค่ไหนจริงๆ
เพราะเข้าใจแผนที่ 2D ได้ยาก เลยสร้างได้แค่ห้องน้ำกับร้านฮอตด็อกประมาณนั้น
ถ้าเป็นโมเดลแบบมัลติโหมดก็น่าจะดีกว่านี้มาก
สงสัยว่าจะดู ปริมาณ context คงเหลือ ใน Claude Code ได้อย่างไร
/contextมีปลั๊กอินที่แสดงปริมาณคงเหลือเป็นแถบสีให้เห็นด้วย
คิดว่าการทดลองแบบนี้น่าจะเหมาะกับ เกมเทิร์นเบสอย่าง Civilization มากกว่า
เพราะแผนที่เป็นโครงสร้างแบบกริด และดำเนินไปเป็นรอบๆ