• 2003 का Windows-केवल TPS गेम GunZ: The Duel
    WebAssembly + WebGL आधारित रूप में browser में चलने लायक port किया गया
  • बिना install किए सिर्फ Chrome में URL खोलकर तुरंत खेला जा सकता है https://gunz.sigr.io/
  • Linux, macOS, mobile सहित लगभग हर environment में चलता है
  • मौजूदा C++ code को लगभग बिना किसी बदलाव के बनाए रखा गया
  • नए लिखे गए code का करीब 99% AI ने generate किया

यह क्यों महत्वपूर्ण है

  • पारंपरिक PC गेम:
    • download/install ज़रूरी
    • Windows पर निर्भर
  • इस बार का नतीजा:
    • बिल्कुल वही गेम browser में चलता है
    • “मिलता-जुलता implementation” नहीं, बल्कि मूल गेम का सीधा port
  • पहले यह ऐसा क्षेत्र था जिसे “सैद्धांतिक रूप से संभव, लेकिन व्यावहारिक रूप से असंभव” माना जाता था

पहले के प्रयास और विफलताएँ

  • पुराना approach:
    • JavaScript + Three.js से engine को फिर से implement करना
  • नतीजा:
    • सिर्फ map rendering तक सफलता
    • पूरे engine को दोबारा implement करना बहुत कठिन होने के कारण काम रोकना पड़ा
  • निष्कर्ष:
    • “reimplementation approach” व्यावहारिक रूप से लगभग असंभव है

मुख्य समस्या: Windows dependency

  • GunZ, C++ आधारित है और Direct3D पर निर्भर है
  • समस्या:
    • Direct3D, Windows-केवल API है
    • browser (WebGL) में इसे सीधे इस्तेमाल नहीं किया जा सकता
  • सिर्फ wasm compile करने से समस्या हल नहीं होती
  • यानी:
    • केवल platform-independent code ही wasm में जा सकता है
    • graphics API पर निर्भर हिस्सा सबसे बड़ी बाधा है

मौजूदा approaches की सीमाएँ

  • गेम code को सीधे modify करना
    • दसियों हज़ार लाइनों में बदलाव चाहिए
    • maintenance असंभव
  • automatic conversion (D3D → WebGL)
    • API semantics के अंतर के कारण मशीन से सीधा conversion संभव नहीं
  • निष्कर्ष:
    • सभी पुराने तरीके अव्यावहारिक थे

मुख्य विचार: “translation layer”

  • approach:
    • गेम code को ज्यों का त्यों रखना
    • Direct3D calls को intercept करना
    • और उन्हें real time में WebGL में translate करना
  • implementation:
    • D3D9 API जैसी ही interface वाला WebGL wrapper
    • इसे गेम ↔ graphics API के बीच डाला गया
  • प्रभाव:
    • गेम code में लगभग कोई बदलाव नहीं
    • Windows dependency हट गई
    • porting की लागत को “wrapper implementation” तक सीमित किया गया

AI की भूमिका

  • इस्तेमाल किए गए tools:
    • Google Antigravity
    • Claude Code (Max plan)
  • नतीजा:
    • बड़े पैमाने पर code analysis और modification का automation
    • जो समस्याएँ पहले हफ्तों लेतीं, वे कुछ घंटों में हल हो गईं
    • व्यवहार में ऐसे काम AI ने किए जो इंसानों के लिए करना बहुत मुश्किल था
  • खास तौर पर:
    • D3D → WebGL wrapper implementation का अधिकांश हिस्सा AI ने संभाला

मुख्य सार

  • यह “गेम को फिर से बनाना” नहीं था
    बल्कि मौजूदा code को ज्यों का त्यों बचाकर समाधान निकालना था
  • मुख्य तकनीकें:
    • WebAssembly
    • Direct3D → WebGL translation layer
  • सबसे बड़ा बदलाव:
    • AI की वजह से बड़े पैमाने पर legacy porting अब व्यावहारिक काम बन गया है
  • संकेत:
    • आगे चलकर पुराने गेम/सॉफ्टवेयर को web पर port करना बहुत आसान हो सकता है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.