หน้าแรก / บทความ / AI & LLM
AI & LLM สรุปและวิเคราะห์จากข่าวต้นทาง

วิเคราะห์และรีวิว: Dev ใช้ AI agents และโทเคนกว่า 500 พันล้านรายการสร้างซอร์สโค้ด Call of Duty: Modern Warfare 2 ใหม่

วิเคราะห์โครงการของ Maurice Heumann ที่ใช้ AI agents กว่า 500 พันล้านโทเคน สร้างซอร์สโค้ด Call of Duty: Modern Warfare 2 ใหม่ โดย 83% ตรงต้นฉบับแบบไบต์ต่อไบต์

วิเคราะห์และรีวิว: Dev ใช้ AI agents และโทเคนกว่า 500 พันล้านรายการสร้างซอร์สโค้ด Call of Duty: Modern Warfare 2 ใหม่

Maurice Heumann ใช้ AI agents จาก Claude และ Codex ทำโปรเจกต์นี้นานสามเดือน โดยป้อนงานรวมกว่า 500 พันล้านโทเค็น เพื่อสร้างโค้ด C++ ของ Call of Duty: Modern Warfare 2 (2009) ขึ้นใหม่

ตอนนี้ฟังก์ชันในเกมมีอยู่ประมาณ 99% แล้ว และ 83% ตรงกับไฟล์ต้นฉบับแบบ byte-for-byte จุดยากจึงไม่ใช่แค่ให้ AI เขียนโค้ดได้ แต่ต้องตรวจให้แน่ใจว่าโค้ดทำงานถูกต้องจริงด้วย

โปรเจกต์นี้ทำอะไรสำเร็จแล้วบ้าง

โปรเจกต์นี้สร้างโค้ด C++ จากเกม PC ต้นฉบับปี 2009 โดยตั้งเป้าให้ได้เกมเวอร์ชันที่แม่นยำ เสถียร และมีฟีเจอร์ครบถ้วน ไม่ใช่แค่โค้ดที่คอมไพล์ผ่าน แต่ต้องตรวจสอบได้ว่าทำงานตรงกับต้นฉบับจริง

หลังทำงานต่อเนื่องสามเดือนและใช้โทเค็นมากกว่า 500 พันล้าน เกมก็เล่นได้เต็มรูปแบบแล้ว บั๊กที่มองเห็นส่วนใหญ่หายไป เหลือเพียงเล็กน้อย เรียกได้ว่า AI agents ทำงานระดับสร้างเกมกลับมาให้เล่นได้จริง ไม่ใช่แค่ช่วยเขียนโค้ดบางส่วน.

เบื้องหลังการทำงานของ agents ระหว่างสร้างเกมใหม่

เกมต้นฉบับบน PC ปี 2009 ถูกป้อนเข้าสู่ IDA ผ่าน Hex-Rays’ ida-mcp server ให้ agents อ่านโค้ดเดิมได้ ก่อนแปลงออกมาเป็นโค้ด C++ ที่เขียนขึ้นใหม่

ทีม agents ที่ขยายจนทำงานพร้อมกัน 17 ตัว ประสานงานกันผ่าน GitHub issues, Discord และ CI โดยมี automated check เปรียบเทียบฟังก์ชันกับ executable ในระดับ byte เพื่อยืนยันว่าโค้ดไม่ได้แค่คอมไพล์ผ่าน แต่ตรงกับต้นฉบับจริง

ปัญหาจริงไม่ได้อยู่ที่การเขียนโค้ด

Heumann พบว่า AI agents เขียนโค้ดได้เร็ว แต่ปัญหาหนักกว่าคือการพิสูจน์ว่าโค้ดนั้นถูกต้องจริง โค้ดเดือนแรก “อ่านง่ายแต่ผิดความหมาย” เพราะมีทั้ง function signature, type และ struct layout ที่ผิด รวมถึง logic ที่ถูกแต่งขึ้นหรือถูกตัดออก

ตอนนั้น reviewer agent ก็หยุดปัญหาไม่ได้ เพราะยังไม่มีเกณฑ์ตรวจรับที่ชัดเจน แถมคอมเมนต์ที่ agents เขียนอธิบายการแก้โค้ด ยังกลายเป็นเหมือน prompt injection โดยไม่ตั้งใจ ทำให้ทีมต้องตัดคอมเมนต์ออกเพื่อให้การตรวจสอบแม่นขึ้น.

Claude และ Codex ถูกวางไว้ตรงไหนในเวิร์กโฟลว์

[เกม PC ต้นฉบับ] → [IDA + Hex-Rays’ ida-mcp] → [Claude / Codex agents] → [C++ ที่เขียนใหม่] → [ตรวจเทียบกับ executable]

Heumann ใช้ Anthropic’s Claude และ OpenAI’s Codex ทำงานพร้อมกัน โดยควบคุมผ่าน Claude Code CLI และ Codex CLI ส่วน IDA ทำหน้าที่เปิดทางให้ agents อ่านโค้ดเดิมผ่าน Hex-Rays’ ida-mcp พูดง่ายๆ คือ Claude กับ Codex เป็นตัวลงมือแปลและเขียนโค้ด ขณะที่ IDA เป็นแหล่งข้อมูลจากเกมต้นฉบับครับ

จากสี่ agents สู่การทำงานพร้อมกันสิบเจ็ด agents

ช่วงการทำงานโครงสร้าง
เริ่มต้นworkers สามคน และ reviewer หนึ่งคน
30 กันยายนagents สิบเจ็ดตัวทำงานแบบขนาน

ช่วงแรกแบ่งหน้าที่ชัดเจน: workers แปลโค้ด ส่วน reviewer ตรวจงาน แต่เมื่อโปรเจกต์ขยาย Heumann เพิ่ม agents จนทำงานพร้อมกันสิบเจ็ดตัว

อย่างไรก็ตาม ข้อมูลต้นฉบับไม่ได้แยกผลลัพธ์ตามจำนวน agents จึงยังสรุปไม่ได้ว่าการเพิ่ม agents ทำให้ความเร็วหรือความถูกต้องดีขึ้นเท่าไร.

เมื่อการตรวจด้วยสายตาไม่พอ

โค้ดช่วงแรกอ่านง่ายก็จริง แต่ตรวจด้วยสายตาแล้วยังพลาดได้ เช่น function signature ผิด ชนิดข้อมูลหรือโครงสร้างข้อมูลไม่ตรง รวมถึงตรรกะที่ถูกสร้างใหม่หรือตัดออกไป

บางครั้ง agents ยังเปลี่ยนสถาปัตยกรรมโดยไม่จำเป็น เช่น เปลี่ยนการค้นหาตัวแปร config ให้มีต้นทุนสูงขึ้นมาก ทำให้โค้ดดูดี แต่ทำงานไม่ตรงกับต้นฉบับ

ปัญหาคือ reviewer ไม่มีเกณฑ์รับงานที่วัดได้ จึงต้องใช้สคริปต์เปรียบเทียบฟังก์ชันกับ executable ของเกมแบบ byte-level เพื่อบอกผ่านหรือไม่ผ่านอย่างชัดเจน

ระบบตรวจแบบ byte-level เปลี่ยนเกมอย่างไร

ระบบตรวจเริ่มจากคอมไพล์โค้ดที่สร้างใหม่ด้วย compiler เดียวกับเกมต้นฉบับ แล้วส่งแต่ละฟังก์ชันเข้า script เพื่อตรวจเทียบกับ executable แบบ byte-level

โค้ด C++ → compiler เดียวกัน → เทียบฟังก์ชัน → ผ่าน/ไม่ผ่าน

ความต่างของ address ใน calls และ data references จะถูกข้ามไป แต่ระบบยังตรวจ target symbols กับ offsets แทน ส่วน data และ types ยังคงตรวจแบบเดียวกัน จึงช่วยแยกได้ชัดว่าโค้ดตรงกับต้นฉบับจริง หรือแค่ดูคล้ายกันเท่านั้น

เครื่องมือและวิธีทำงานที่ทำให้โปรเจกต์เดินต่อ

เครื่องมือวิธีใช้
GitHub issueแยก issue ตามแต่ละ translation unit
Discordให้ agents และคนทำงานคุยกันใน channel เดียว
GitHub webhook CIส่งโพสต์ผลการทำงานเข้า Discord
Auto-compactionปรับจาก 90% เหลือ 42% ของ context window เพื่อเคลียร์ฟังก์ชันที่เสร็จแล้ว
Cron jobสั่งให้ agents อ่านคำสั่งซ้ำทุกชั่วโมง แก้ปัญหา context drift

โครงสร้างนี้ช่วยให้ตามงานง่ายขึ้น แม้มี agents ทำงานพร้อมกันหลายตัว และยังลดโอกาสที่ agent จะหลุดจากเป้าหมายเดิมระหว่างโปรเจกต์เดินหน้าต่อเนื่อง.

ทางเลือกในชุดเครื่องมือเดียวกันให้ผลต่างกันแค่ไหน

เครื่องมือบทบาทค่าใช้จ่ายการใช้งานที่ระบุ
Claude Maxแผนบริการของ AnthropicFlat-rate แผน 20x ไม่คิดแบบ API ราย tokenใช้ร่วมกับ Codex Pro
Codex Proแผนบริการของ OpenAIFlat-rate ไม่คิดแบบ API ราย tokenใช้พร้อม Claude Max
Claude Code CLIHarness สำหรับสั่งงาน agentไม่ได้ระบุราคาแยกใช้เป็นเครื่องมือหลักในการทำงาน
Codex CLIHarness สำหรับสั่งงาน agentไม่ได้ระบุราคาแยกใช้เป็นเครื่องมือหลักร่วมกับ Claude Code
ida-mcpตัวเชื่อมกับ IDA ของ Hex-Raysไม่ได้ระบุราคาให้ agent อ่านโค้ดจากเกมต้นฉบับ

จากข้อมูลนี้ แต่ละตัวไม่ได้ทำหน้าที่แทนกันทั้งหมด เพราะแผนบริการใช้จัดสรรโมเดล ส่วน CLI ใช้ควบคุมงาน และ ida-mcp ใช้เปิดทางให้ agent อ่านโค้ดเดิมครับ

ค่าใช้จ่ายที่ต่างกันสุดขั้วตามวิธีจ่าย

Claude Max และ Codex Pro เป็นแผนแบบเหมาจ่าย ไม่ได้คิดเงินตามจำนวนโทเค็นแบบ API การตั้งค่านี้ทำให้ Heumann ใช้งาน agent จำนวนมากได้ โดยไม่ต้องจ่ายเพิ่มตามทุกคำสั่ง

วิธีจ่ายค่าใช้จ่ายโดยประมาณ
Subscriptionราว 1,200 ยูโร
API tokens200,000–250,000 ดอลลาร์

ตัวเลขนี้เป็นการประเมินของ Heumann เอง จึงควรมองเป็นภาพเปรียบเทียบต้นทุนมากกว่าราคาตายตัว งานเดียวกันอาจมีค่าใช้จ่ายต่างกันสุดขั้ว ขึ้นอยู่กับว่าเลือกเหมาจ่ายหรือจ่ายตามการใช้ API.

จุดแข็งและข้อจำกัดที่โปรเจกต์นี้เปิดเผย

  • จุดแข็งคือ agents หลายตัวทำงานขนานกันได้เร็วขึ้น จากเริ่มต้น 4 ตัวจนเป็น 17 ตัว และทำให้เกมกลับมาเล่นได้ โดยบั๊กที่เห็นได้เกือบทั้งหมดหายไป
  • ข้อจำกัดสำคัญคือโค้ดช่วงแรกอ่านง่าย แต่ผิดความหมาย ทั้ง function signature, type และโครงสร้างข้อมูล
  • agents ยังเกิด drift และถูกชักนำจากคอมเมนต์ที่ทำหน้าที่เหมือน prompt injection ทีมจึงต้องลบคอมเมนต์ออก และหลังพยายามกู้โค้ด 4 สัปดาห์แรก ก็พบว่าเริ่มใหม่ใช้เวลาน้อยกว่า
  • บทเรียนคือการสร้างโค้ดไม่ยากเท่าการตรวจว่าโค้ดถูกจริง

สิ่งที่ยังค้างอยู่หลังเกมเล่นได้

สถานะล่าสุดคือเกมเล่นได้เต็มรูปแบบแล้ว บั๊กที่มองเห็นส่วนใหญ่หายไป เหลือเพียงไม่กี่จุด ขณะที่ฟังก์ชันมีอยู่แล้ว 99% และ 83% ตรงกับต้นฉบับแบบ byte-for-byte

ด้านเอกสารยังมีข้อจำกัด เพราะโพสต์บล็อกเกี่ยวกับโปรเจกต์ถูกลบไป 2 รายการ และวิดีโอในโพสต์วันที่ 30 กันยายนถูกปิดใช้งานหลังเจ้าของลิขสิทธิ์รายงาน โค้ดใกล้จบ แต่เรื่องสิทธิ์ยังไม่จบตามไปด้วย

บทเรียนจากการให้ AI พิสูจน์ตัวเอง

จุดเปลี่ยนไม่ใช่การเพิ่ม agent แต่คือการสร้างเกณฑ์ตรวจสอบที่เป็นวัตถุวิสัย เพราะโค้ดชุดแรกอ่านง่ายแต่ผิดเชิงความหมาย ทั้ง function signature, type และ struct layout ขณะที่ reviewer หยุดปัญหาไม่ได้เมื่อยังไม่มีเกณฑ์ยอมรับที่ชัดเจน

ทีมจึงใช้ compiler เดียวกับเกมต้นฉบับ แล้วเทียบแต่ละฟังก์ชันระดับ byte ให้ผลเป็น pass/fail พร้อมข้าม address ที่ต่างกันและตรวจ symbol กับ offset แทน ความสำเร็จเลยไม่ได้วัดจากโค้ดหรือจำนวนโทเค็นอย่างเดียว แต่มาจากมนุษย์ที่ออกแบบระบบตรวจ คุมกระบวนการ และรู้ว่าเมื่อไร AI กำลังหลุดทางด้วยครับ