43 คะแนน โดย gamjaa 2026-03-25 | 10 ความคิดเห็น | แชร์ทาง WhatsApp
  • เกม TPS สำหรับ Windows จากปี 2003 อย่าง GunZ: The Duel ถูก
    พอร์ตให้รันบนเบราว์เซอร์ได้ด้วย WebAssembly + WebGL
  • ไม่ต้องติดตั้ง แค่เปิด URL ใน Chrome ก็เล่นได้ทันที https://gunz.sigr.io/
  • รองรับแทบทุกสภาพแวดล้อม ทั้ง Linux, macOS ไปจนถึงมือถือ
  • รักษาโค้ด C++ เดิมไว้โดย แทบไม่ต้องแก้ไข
  • โค้ดที่เขียนขึ้นมาใหม่ ราว 99% ถูกสร้างโดย AI

ทำไมสิ่งนี้จึงมีความหมาย

  • เกมพีซีแบบเดิม:
    • ต้องดาวน์โหลด/ติดตั้ง
    • ผูกกับ Windows
  • ผลลัพธ์ครั้งนี้:
    • รันเกมเดิมแบบเหมือนทุกอย่างบนเบราว์เซอร์
    • ไม่ใช่ “การทำขึ้นมาใหม่ให้คล้ายกัน” แต่เป็น การพอร์ตต้นฉบับโดยตรง
  • ในอดีตนี่คือสิ่งที่ “เป็นไปได้ในทางทฤษฎี แต่แทบเป็นไปไม่ได้ในทางปฏิบัติ”

ความพยายามในอดีตและความล้มเหลว

  • แนวทางในอดีต:
    • สร้างเอนจินใหม่ ด้วย JavaScript + Three.js
  • ผลลัพธ์:
    • สำเร็จแค่ถึงขั้นเรนเดอร์แผนที่
    • ความยากของการสร้างเอนจินทั้งหมดขึ้นมาใหม่สูงเกินไปจนต้องหยุด
  • ข้อสรุป:
    • แนวทางแบบ “สร้างใหม่ทั้งหมด” แทบเป็นไปไม่ได้ในโลกความจริง

ปัญหาหลัก: การพึ่งพา Windows

  • GunZ พัฒนาด้วย C++ และ พึ่งพา Direct3D
  • ปัญหา:
    • Direct3D เป็น API สำหรับ Windows เท่านั้น
    • ในเบราว์เซอร์ (WebGL) ไม่สามารถใช้งานโดยตรงได้
  • การคอมไพล์เป็น wasm อย่างเดียวจึงไม่พอ
  • กล่าวคือ:
    • เฉพาะโค้ดที่ไม่ขึ้นกับแพลตฟอร์มเท่านั้นที่ไป wasm ได้
    • ส่วนที่ผูกกับกราฟิก API คือกำแพงที่ใหญ่ที่สุด

ข้อจำกัดของแนวทางเดิม

  • แก้โค้ดเกมโดยตรง
    • ต้องแก้หลายหมื่นบรรทัด
    • ดูแลรักษาต่อแทบไม่ได้
  • แปลงอัตโนมัติ (D3D → WebGL)
    • ด้วยความหมายของ API ที่ต่างกันจึง แปลงเชิงกลตรง ๆ ไม่ได้
  • ข้อสรุป:
    • ทุกวิธีแบบเดิมไม่สมจริงในการทำงานจริง

ไอเดียหลัก: “ชั้นแปล”

  • แนวทาง:
    • คงโค้ดเกมเดิมไว้เหมือนเดิม
    • ดักจับการเรียก Direct3D
    • แล้ว แปลงเป็น WebGL แบบเรียลไทม์
  • การทำงานจริง:
    • สร้าง WebGL wrapper ที่มีอินเทอร์เฟซเหมือน D3D9 API
    • แทรกระหว่างตัวเกม ↔ กราฟิก API
  • ผลลัพธ์:
    • แทบไม่ต้องแก้โค้ดเกม
    • ตัดการพึ่งพา Windows ออก
    • จำกัดต้นทุนการพอร์ตให้อยู่ที่ “การทำ wrapper”

บทบาทของ AI

  • เครื่องมือที่ใช้:
    • Google Antigravity
    • Claude Code (แพลน Max)
  • ผลลัพธ์:
    • ทำงานวิเคราะห์และแก้ไขโค้ดขนาดใหญ่แบบอัตโนมัติ
    • ปัญหาที่เคยใช้เวลาหลายสัปดาห์ ถูกแก้ได้ ภายในไม่กี่ชั่วโมง
    • เข้ามาทำงานที่ในทางปฏิบัติมนุษย์แทบทำไม่ไหวแทน
  • โดยเฉพาะ:
    • AI รับหน้าที่หลักในการทำ D3D → WebGL wrapper

สรุปประเด็นสำคัญ

  • ไม่ใช่ “สร้างเกมขึ้นมาใหม่”
    → แต่เป็นการ แก้ปัญหาโดยรักษาโค้ดเดิมให้ใช้ต่อได้
  • เทคโนโลยีหลัก:
    • WebAssembly
    • ชั้นแปล Direct3D → WebGL
  • การเปลี่ยนแปลงสำคัญ:
    • ด้วย AI ทำให้ การพอร์ตระบบ legacy ขนาดใหญ่กลายเป็นงานที่ทำได้จริง
  • นัยสำคัญ:
    • ในอนาคต ความยากในการพอร์ตเกม/ซอฟต์แวร์เก่าขึ้นเว็บอาจลดลงอย่างมาก

10 ความคิดเห็น

 
beoks 2026-03-25

AI ก็ยอดเยี่ยมเหมือนกัน แต่ผมคิดว่าปัจจัยที่ใหญ่กว่าคือ D3D9 ถูกแยกเป็นอินเทอร์เฟซไว้ได้ดี ถ้ามันพันกันด้วยการอ้างอิงโดยตรงก็คงจะยากกว่านี้มากครับ

 
minsuchae 2026-03-25

เหมือนว่าเมื่อวันก่อนผมเห็นบทความใน Inven อยู่ นี่คือการจัดการโดยสร้าง Direct3D translation layer ขึ้นมาสินะ
ตอนลองทดสอบ ตอนที่เล่นไปยังไม่ถึง 1 นาที ผมรู้สึกค่อนข้างแรงเลยว่าคุณภาพภาพไม่ค่อยดีนัก แต่พอมาคิดว่ามันไม่ได้เป็นแนวคิดแบบสร้างใหม่ทั้งหมดตั้งแต่ต้น แต่เป็นการคงของเดิมไว้ผ่าน translation layer ก็พอเข้าใจได้ว่าอาจจะเป็นแบบนั้น...

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

อีกจุดที่ฟังไม่สมเหตุสมผลคือ ถ้าอิงราคาฝั่งเกาหลีของ Hanwha จะไม่มีแพลน Anti Gravity ราคา 3,000 วอนต่อเดือนครับ ในภาพต่าง ๆ ก็แสดงเป็นภาษาญี่ปุ่นทั้งหมด แถมบางภาพยังมีภาษาอังกฤษอยู่ด้วย
ถ้าเป็นอย่างนั้น ผมกลับคิดว่าน่าจะเขียนแปลงเป็นภาษาเกาหลีตั้งแต่แรกไปเลยมากกว่า

 
vndk2234 2026-03-25

ที่บอกว่าจ่ายเงินน่ะเป็น 5x แต่ภาพแคปเป็น 20x ก็จริงอยู่แหละ แต่ก็อาจจะเป็นคนที่อาศัยอยู่ญี่ปุ่นก็ได้มั้ง...

 
kentakang 2026-03-25

พอดูไปดูมาก็มีความรู้สึกเหมือนจะเป็นเจ้าตัวเองอยู่เหมือนกัน

ข้อความที่แสดงตอนเข้าไปที่ sigr.io ก็เป็นเนื้อเพลงของ aespa,
ชื่อโปรเจกต์ Gunz ก็ใช้ชื่อว่า Whiplash Gunz ซึ่งเป็นชื่อเพลงของ aespa,
แถมแฮนด์เดิลบน velog ก็ใช้เป็น aespa อย่างสม่ำเสมอ เลยให้ความรู้สึกว่าเจ้าตัวชอบ aespa แบบจริงจัง จนแอบคิดเหมือนกันว่า หรือว่าเจ้าตัวเป็นคนเอาไปแปลแล้วโพสต์ลง velog เองนะ?

 
324ing 2026-03-27

ไม่ใช่เจ้าตัวที่ทำเองสินะ

 
wedding 2026-03-25

แต่เวอร์ชัน Steam ของ GunZ ก็ออกวางจำหน่ายแล้วนี่.. เลยสงสัยว่าทางกฎหมายจะไม่มีปัญหาเหรอครับ

 
ifmkl 2026-03-25

ว้าว สุดยอดจริง ๆ ครับ

 
simryang 2026-03-25

เป็นเกมที่ชอบมากจริงๆ ขอบคุณที่ช่วยชุบชีวิตมันขึ้นมาอีกครั้ง
แต่เหมือนไม่มีคนเข้าเล่นเลยนะ

 
unknown 2026-03-25

น่าจะเป็นเพราะเซิร์ฟเวอร์ก็รันอยู่ในเบราว์เซอร์ด้วยครับ ถ้าจะเล่นกันหลายคน ดูเหมือนว่าคนที่จะเล่นต้องแลกเปลี่ยนข้อมูลกันเองแล้วเชื่อมต่อกันผ่าน WebSocket ครับ

 
jtpark03 2026-03-25

ยอดเยี่ยมมากครับ ดูเหมือนเป็นการนำ AI มาใช้งานได้อย่างแท้จริง