- 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 करना बहुत आसान हो सकता है
10 टिप्पणियां
AI भी कमाल का है, लेकिन मुझे लगता है कि इससे भी बड़ा कारण यह है कि D3D9 इंटरफ़ेस के रूप में अच्छी तरह से अलग किया गया था; अगर यह direct references के साथ उलझा हुआ होता, तो शायद यह कहीं ज़्यादा मुश्किल होता।
मुझे याद है, शायद कल मैंने Inven का एक लेख देखा था; लगता है कि यह Direct3D translation layer बनाकर प्रोसेस किया गया था.
जब मैंने टेस्ट के लिए इसे एक मिनट से भी कम समय के लिए चलाया, तो मेरी पहली मजबूत धारणा यह थी कि इमेज क्वालिटी कुछ खास नहीं थी. लेकिन यह सोचें कि इसे नया बनाकर शुरू से तैयार करने के बजाय translation layer के ज़रिए लगभग वैसा ही रखा गया था, तो ऐसा होना समझ में आता है...
हालांकि, लगता है कि मूल ब्लॉग को कुछ जोखिम भरे तरीके से चलाया जा रहा है. यह स्पष्ट करना चाहिए कि यह अनुवादित लेख है या मूल लेख, लेकिन... काफी ज़ोर से ऐसा महसूस होता है जैसे लेखक खुद मूल लेखक होने का आभास दे रहा हो... टिप्पणियों में भी इस बात की ओर इशारा किया गया है, लेकिन कोई जवाब नहीं है.
(शुरू से ही मूल ब्लॉग की संदर्भ सामग्री पूरी तरह जापानी पक्ष की है.)
एक और बात जो समझ में नहीं आती: Hanwha ke maanadand par Anti Gravity Money के लिए 3,000 won प्रति माह वाला कोई प्लान है ही नहीं. इमेज वगैरह में सब जापानी दिखाई दे रहा है. यहाँ तक कि कुछ इमेज में अंग्रेज़ी भी है.
ऐसे में लगता है कि फिर शुरू से ही इसे कोरियाई में बदलकर लिखना बेहतर होता.
आपने कहा कि आपने 5x के लिए भुगतान किया, लेकिन स्क्रीनशॉट तो 20x का है — हाँ, हालांकि हो सकता है कि आप जापान में रहते हों, तो खैर...
देखते-देखते ऐसा भी लगता है कि शायद वही खुद हों।
sigr.io पर जाने पर जो वाक्य दिखता है, वह भी aespa के गाने के बोल हैं,
Gunz प्रोजेक्ट का नाम भी Whiplash Gunz है, जो aespa के गाने का नाम है,
और velog हैंडल भी aespa से ही लगातार मेल खाता है, तो ऐसा भी लगता है कि क्या उन्होंने खुद ही अनुवाद चलाकर velog पर पोस्ट किया होगा?
यह इन्होंने खुद नहीं किया।
लेकिन Guns का Steam वर्ज़न रिलीज़ हो चुका है... तो लगता है, कानूनी तौर पर कोई समस्या नहीं होगी क्या?
वाह, सच में कमाल है।
यह मेरा बहुत पसंदीदा गेम था, इसे फिर से ज़िंदा करने के लिए धन्यवाद।
लेकिन कनेक्ट होने वाले लोग नहीं हैं
शायद इसलिए क्योंकि सर्वर भी ब्राउज़र के अंदर ही चल रहा है। अगर कई लोग साथ में करना चाहते हैं, तो लगता है कि गेम खेलने वाले लोगों को आपस में जानकारी साझा करके एक-दूसरे से WebSocket के जरिए कनेक्ट होना पड़ेगा।
कमाल है, यह AI का सचमुच बेहतरीन उपयोग लगता है।