२००३ मधील एक पूर्ण-स्तरीय रिअल-टाइम स्ट्रॅटेजी गेम आयफोनवर (iPhone) नेटिव्हली चालताना पाहणे, एका अर्थाने खूपच विलक्षण वाटते. वाळवंटी नकाशांवर रणगाडे धावत आहेत. जनरल आदेश देत आहेत. मूळ कोड तयार झाला तेव्हा अस्तित्वात नसलेल्या टचस्क्रीनवर पुरवठा मार्ग (supply lines) पसरलेले आहेत. तरीही आपण इथे आहोत. Google AI Studio मध्ये प्रॉडक्ट आणि डिझाइनचे नेतृत्व करणारे अम्मार रेशी (Ammaar Reshi) यांनी अलीकडेच Command & Conquer: Generals Zero Hour घेतला आणि एका टीव्ही सीझनचा आनंद घेण्याइतक्या कमी वेळात त्याचा नेटिव्ह iOS व्हर्जन तयार केला. हा प्रकल्प एमुलेशन (emulation) युक्त्यांवर अवलंबून नाही. तो Apple silicon वर चालतो, Metal वापरतो आणि जुने सॉफ्टवेअर (legacy software) याच मार्गाचा अवलंब किती प्रमाणात करू शकते, याबद्दल गंभीर प्रश्न उपस्थित करतो.
प्रत्यक्षात काय तयार करण्यात आले
हे कोणतेही 'wrapper' नाही. हे वीस वर्षांपूर्वीच्या Windows PC सारखे भासवणाऱ्या एमुलेटरमध्ये चालत नाहीये. हा गेम ARM64 साठी कंपाईल होतो आणि थेट Apple च्या Metal graphics API शी संवाद साधतो. हा फरक महत्त्वाचा आहे. एमुलेशनमुळे फ्रेम रेट्स (frames) कमी होतात. बॅटरी जास्त खर्च होते. जोपर्यंत मोबाईल चिप स्फोट दाखवण्याऐवजी जुन्या सूचनांचे भाषांतर करण्यात आपली बहुतेक ऊर्जा खर्च करत नाही, तोपर्यंत त्यावर अमर्याद 'abstraction' चे थर चढवले जातात. रेशीचा हा पोर्ट या सर्वांना बगल देतो.
मूळ गेम DirectX 8 वर आधारित होता, जो Microsoft चा ग्राफिक्स पाइपलाइन आहे आणि तो iPhone च्या कित्येक वर्षे आधीचा आहे. त्या रेंडरिंग कमांड्स Metal वर चालवणे म्हणजे केवळ 'search-and-replace' करण्याचे काम नाही. DirectX 8 आणि Metal मेमरीची रचना वेगळ्या पद्धतीने करतात. ते शेडर्स (shaders) वेगळ्या पद्धतीने हाताळतात. त्यांची हार्डवेअर आर्किटेक्चरची गृहितकेही वेगळी आहेत. रेशीला गेमचे ग्राफिक्स मध्यवर्ती भाषांतरांच्या साखळीतून (chain of intermediate translations) न्यावे लागले, ज्यामुळे मूळ व्हिज्युअल लॉजिक न बिघडवता जुन्या DirectX कॉल्सचे रूपांतर Metal ला समजेल अशा स्वरूपात करता आले. परिणामी, यामध्ये पूर्ण Campaign, Skirmish आणि Generals Challenge मोड चालतात आणि इंटरफेसवर कस्टम टच कंट्रोल्स मॅप केलेले आहेत. तुम्ही तुमच्या अंगठ्याने बेस तयार करू शकता आणि scud storms देखील सुरू करू शकता.
काही मर्यादा आहेत. मेमरीचा ताण वाढल्यास iPad वरील दीर्घ गेमिंग सेशनमुळे ॲप क्रॅश होऊ शकते. सुरुवातीच्या नेटिव्ह पोर्ट्समध्ये अनेकदा अशा त्रुटी आढळतात, आणि हे एक वास्तववादी स्मरण करून देते की काही तासांचे AI-आधारित डीबगिंग (debugging) दोन दशकांच्या asset loading patterns ला पूर्णपणे ऑप्टिमाइझ करू शकत नाही. तरीही, मुख्य इंजिन स्वतःच्या पायावर उभे आहे.
वर्कफ्लो: Claude Code, Fable 5 आणि चाळीस मिनिटे
वेग ही मुख्य बातमी आहे, पण त्यामागील यंत्रणा प्रत्येक कार्यरत डेव्हलपरचे लक्ष वेधून घेणारी आहे. रेशीने Anthropic चे Claude Code आणि Fable 5 नावाचे टूल वापरले. सुरुवातीचा बिल्ड तयार होण्यासाठी सुमारे चाळीस मिनिटे लागली. डीबगिंग आणि सुधारणांसाठी आणखी काही तास लागले. संपूर्ण प्रकल्प इतक्याच वेळेत पूर्ण झाला.
विचार करा की यामुळे कशाची जागा घेतली आहे. या व्याप्तीचा मॅन्युअल पोर्ट करण्यासाठी सामान्यतः प्रोग्रामरला मूळ बिल्ड सिस्टम मॅप करण्यासाठीच अनेक दिवस खर्च करावे लागतील. त्यानंतर रेंडरर पुन्हा लिहिणे (renderer rewrite), शेडर ट्रान्सलेशन, ARM64 साठी आर्किटेक्चर ॲडजस्टमेंट, त्यानंतर इनपुट हँडलिंग, ऑडिओ, मेमरी मॅनेजमेंट आणि अशा अनेक लहान-लहान समस्या ज्या जुन्या कोडला नवीन प्लॅटफॉर्मसाठी कठीण बनवतात. या प्रक्रियेत महिने निघून जातात. रेशीने स्वतः मार्गदर्शक (steer) म्हणून काम करत आणि एका agentic AI टूलला कष्टाचे भाषांतर करण्याचे काम सोपवून, हा सर्व काळ एका दुपारी मर्यादित केला.
या कामाची तीव्रता त्याच्या बिलिंगमध्ये दिसून आली. दोन दिवसांच्या कामात रेशीने त्याचा संपूर्ण Claude Max कोटा संपवला. ज्यांनी लांब कोडिंग सेशन दरम्यान त्यांचे API क्रेडिट्स संपताना पाहिले आहेत, त्यांना ही भावना समजेल. फरक इतकाच आहे की, या वापरामुळे केवळ काही प्रायोगिक स्क्रिप्ट्स न मिळता, प्रत्यक्ष वापरण्यायोग्य (shipping-quality) नेटिव्ह पोर्ट मिळाले.
येथे एक व्यावसायिक उपकथानक (subplot) देखील आहे जे लक्षात घेण्यासारखे आहे. रेशी Google DeepMind मध्ये काम करतो. तो Google चे स्वतःचे मॉडेल्स वापरू शकला असता, पण त्याने तसे केले नाही. त्याने Anthropic चे Claude निवडले कारण ते या कामासाठी योग्य होते. प्रकल्पावरील आपल्या टिप्पण्यांमध्ये त्याने स्पष्ट केले की, सर्वोत्तम संभाव्य उपाय शोधण्यावर लक्ष केंद्रित करताना स्पर्धकांचा आदर केला जाऊ शकतो. ही वृत्ती आता पसरत आहे. क्षेत्रातील आघाडीचे इंजिनिअर्स आता model agnostic होत आहेत. ते AI टूल्सकडे प्रोग्रामिंग भाषा किंवा क्लाउड प्रोव्हायडर्सप्रमाणे पाहतात: कामासाठी जे योग्य आहे ते निवडा, तुमच्या कंपनीच्या बॅजवर काय आहे ते नाही.