- 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 करना बहुत आसान हो सकता है
अभी कोई टिप्पणी नहीं है.