การได้เห็นเกมวางแผนการรบแบบเรียลไทม์ (RTS) เต็มรูปแบบจากปี 2003 รันบน iPhone ได้แบบ native นั้นให้ความรู้สึกที่แปลกประหลาดอย่างบอกไม่ถูก แต่มันเป็นความรู้สึกในแง่ดีที่สุด รถถังเคลื่อนที่ผ่านแผนที่ทะเลทราย เหล่าแม่ทัพตะโกนสั่งการ สายส่งกำลังบำรุงทอดยาวผ่านหน้าจอสัมผัสที่ยังไม่มีตัวตนอยู่ในตอนที่โค้ดต้นฉบับถูกคอมไพล์ขึ้นมา แต่เราก็มาถึงจุดนี้ Ammaar Reshi ผู้นำด้านผลิตภัณฑ์และการออกแบบที่ Google AI Studio เพิ่งจะนำเกม Command & Conquer: Generals Zero Hour มาสร้างเป็นเวอร์ชัน native สำหรับ iOS โดยใช้เวลาเพียงแค่พอๆ กับการดูซีรีส์ให้จบหนึ่งซีซันเท่านั้น โปรเจกต์นี้ไม่ได้พึ่งพาเทคนิคการจำลอง (emulation) แต่มันรันบน Apple silicon, สื่อสารผ่าน Metal และทำให้เกิดคำถามสำคัญว่าซอฟต์แวร์รุ่นเก่า (legacy software) อีกมากน้อยเพียงใดที่จะสามารถเดินตามรอยนี้ได้

สิ่งที่ถูกสร้างขึ้นมาจริงๆ

นี่ไม่ใช่ wrapper มันไม่ได้รันอยู่ภายใน emulator ที่ทำตัวเป็นเครื่อง PC Windows จากเมื่อยี่สิบปีก่อน ตัวเกมคอมไพล์สำหรับ ARM64 และสื่อสารโดยตรงกับ Metal graphics API ของ Apple ซึ่งความแตกต่างนี้มีความสำคัญมาก การ emulation นั้นต้องแลกมาด้วยเฟรมเรต ต้องแลกมาด้วยแบตเตอรี่ มันเป็นการวางชั้นการทำงาน (abstraction) ซ้อนทับกันไปเรื่อยๆ จนกระทั่งชิปมือถือต้องใช้พลังงานส่วนใหญ่ไปกับการแปลคำสั่งเก่าๆ แทนที่จะเอาไปใช้ในการวาดภาพระเบิด แต่การพอร์ตของ Reshi สามารถข้ามผ่านปัญหาเหล่านั้นไปได้ทั้งหมด

เกมต้นฉบับวางจำหน่ายบน DirectX 8 ซึ่งเป็นกราฟิกไพป์ไลน์ของ Microsoft ที่มีมาก่อน iPhone หลายปี การทำให้คำสั่งการเรนเดอร์เหล่านั้นทำงานบน Metal ได้นั้นไม่ใช่แค่การค้นหาแล้วแทนที่ (search-and-replace) เพราะ DirectX 8 และ Metal มีการจัดการหน่วยความจำที่ต่างกัน จัดการ shader ต่างกัน และทำงานบนสถาปัตยกรรมฮาร์ดแวร์ที่ต่างกัน Reshi ต้องนำกราฟิกของเกมผ่านกระบวนการแปลภาษาขั้นกลางเป็นทอดๆ โดยเปลี่ยนการเรียกใช้ DirectX แบบเก่าให้เป็นสิ่งที่ Metal เข้าใจได้ โดยไม่ทำลายตรรกะทางภาพที่อยู่เบื้องล่าง ผลลัพธ์ที่ได้คือสามารถเล่นโหมด Campaign, Skirmish และ Generals Challenge ได้ครบถ้วน พร้อมด้วยการควบคุมผ่านระบบสัมผัสที่ปรับแต่งให้เข้ากับอินเทอร์เฟซ คุณสามารถสร้างฐานทัพและสั่งยิง scud storms ได้ด้วยนิ้วโป้งของคุณเอง

แต่มันก็ยังมีข้อจำกัด การเล่นบน iPad เป็นเวลานานอาจทำให้แอปค้างหรือเด้งออกเมื่อมีการใช้งานหน่วยความจำสูงขึ้นอย่างรวดเร็ว การพอร์ตแบบ native ในช่วงแรกๆ มักจะมีร่องรอยความผิดพลาดแบบนี้ และมันเป็นเครื่องเตือนใจที่ซื่อตรงว่าการดีบั๊ก (debugging) โดยใช้ AI ช่วยเพียงไม่กี่ชั่วโมง ไม่สามารถปรับแต่งรูปแบบการโหลด asset ที่สะสมมานานกว่าสองทศวรรษได้อย่างสมบูรณ์แบบ อย่างไรก็ตาม ตัวเอนจินหลักก็ยังคงทำงานได้ด้วยตัวเองอย่างแข็งแกร่ง

เวิร์กโฟลว์: Claude Code, Fable 5 และเวลาเพียงสี่สิบนาที

ความเร็วคือประเด็นหลัก แต่กลไกที่อยู่เบื้องหลังต่างหากที่ควรดึงดูดความสนใจของนักพัฒนาทุกคน Reshi ใช้ Claude Code ของ Anthropic ควบคู่ไปกับเครื่องมือที่ชื่อว่า Fable 5 การสร้างเวอร์ชันแรกใช้เวลาเพียงประมาณสี่สิบนาที ส่วนการดีบั๊กและการปรับปรุงรายละเอียดใช้เวลาเพิ่มอีกไม่กี่ชั่วโมง นั่นคือระยะเวลาทั้งหมดของโปรเจกต์นี้

ลองคิดดูว่าสิ่งนี้เข้ามาแทนที่อะไร การพอร์ตด้วยมือในสเกลขนาดนี้ ปกติแล้วนักพัฒนาต้องใช้เวลาหลายวันเพียงแค่เพื่อทำความเข้าใจระบบ build เดิม จากนั้นก็ต้องเขียน renderer ใหม่ แปล shader ปรับสถาปัตยกรรมสำหรับ ARM64 จัดการระบบอินพุต เสียง การจัดการหน่วยความจำ และปัญหาจุกจิกอีกนับพันอย่างที่ทำให้โค้ดรุ่นเก่าเข้ากับแพลตฟอร์มใหม่ได้ยาก กระบวนการเหล่านี้อาจกินเวลาเป็นเดือนๆ แต่ Reshi สามารถย่อมันลงเหลือเพียงช่วงบ่ายวันเดียว โดยการปล่อยให้เครื่องมือ AI แบบ agentic จัดการงานแปลที่ต้องใช้แรงมหาศาล ในขณะที่เขาเป็นคนควบคุมทิศทาง

ความเข้มข้นของการทำงานสะท้อนให้เห็นผ่านค่าใช้จ่าย Reshi ใช้โควตา Claude Max ของเขาจนหมดเกลี้ยงภายในเวลาทำงานเพียงสองวัน ใครก็ตามที่เคยเห็นเครดิต API ของตัวเองหายวับไปในระหว่างการเขียนโค้ดนานๆ ย่อมเข้าใจความรู้สึกนี้ดี แต่ความแตกต่างในที่นี้คือ การใช้งานที่หนักหน่วงนั้นให้ผลลัพธ์เป็นพอร์ตแบบ native ที่มีคุณภาพพร้อมวางจำหน่าย ไม่ใช่แค่สคริปต์ทดลองไม่กี่ตัว

นอกจากนี้ยังมีประเด็นทางวิชาชีพที่น่าสนใจ Reshi ทำงานที่ Google DeepMind เขาสามารถเลือกใช้โมเดลของ Google เองก็ได้ แต่เขาไม่ทำ เขาเลือก Claude ของ Anthropic เพราะมันเหมาะกับงานนี้ ในความเห็นส่วนตัวเกี่ยวกับโปรเจกต์นี้ เขาแสดงให้เห็นชัดเจนว่าเราสามารถเคารพคู่แข่งไปพร้อมๆ กับการมุ่งเน้นสร้างโซลูชันที่ดีที่สุดได้ ทัศนคติแบบนี้กำลังแพร่ขยายออกไป วิศวกรระดับแนวหน้าของวงการกำลังกลายเป็นกลุ่มที่ไม่ยึดติดกับโมเดล (model agnostic) พวกเขาปฏิบัติกับเครื่องมือ AI เหมือนกับที่ปฏิบัติกับภาษาโปรแกรมหรือผู้ให้บริการคลาวด์ นั่นคือ เลือกสิ่งที่เหมาะกับงาน ไม่ใช่เลือกสิ่งที่อยู่บนป้ายชื่อบริษัทของคุณ

ทำไมการแปลแบบ native ถึงยังคง