૨૦૦૩ની એક ફૂલ-સ્કેલ રિયલ-ટાઇમ સ્ટ્રેટેજી ગેમ આઇફોન (iPhone) પર નેટિવલી ચાલતી જોવી એ શ્રેષ્ઠ રીતે થોડું અજીબ લાગે છે. રણના નકશા પર ટેન્કો આગળ વધે છે. જનરલો આદેશો આપે છે. સપ્લાય લાઇન એવા ટચસ્ક્રીન પર ફેલાયેલી છે જે મૂળ કોડ કમ્પાઈલ થયો ત્યારે અસ્તિત્વમાં નહોતા. છતાં આપણે અહીં છીએ. Google AI Studio માં પ્રોડક્ટ અને ડિઝાઇનનું નેતૃત્વ કરનાર અમ્માર રેશીએ (Ammaar Reshi) તાજેતરમાં Command & Conquer: Generals Zero Hour લીધી અને લગભગ એક ટેલિવિઝન સીઝન જોવામાં જેટલો સમય લાગે તેટલા સમયમાં તેની નેટિવ iOS આવૃત્તિ બનાવી દીધી. આ પ્રોજેક્ટ એમુલેશન ટ્રિક્સ પર આધારિત નથી. તે Apple silicon પર ચાલે છે, Metal નો ઉપયોગ કરે છે, અને આ બાબતે ગંભીર પ્રશ્નો ઉભા કરે છે કે કેટલું લેગસી સોફ્ટવેર આ જ માર્ગ અપનાવી શકે છે.
ખરેખર શું બનાવવામાં આવ્યું
આ કોઈ વ્રેપર (wrapper) નથી. તે વીસ વર્ષ પહેલાના Windows PC હોવાનો ડોળ કરતા એમુલેટરની અંદર નથી ચાલી રહ્યું. ગેમ ARM64 માટે કમ્પાઈલ થાય છે અને સીધી Apple ના Metal ગ્રાફિક્સ API સાથે વાત કરે છે. આ તફાવત મહત્વનો છે. એમુલેશનમાં ફ્રેમ્સ (frames) નો નુકસાન થાય છે. તે બેટરીનો વપરાશ વધારે છે. તે એબસ્ટ્રેક્શન (abstraction) પર એબસ્ટ્રેક્શનના સ્તરો બનાવે છે, જ્યાં સુધી મોબાઈલ ચિપ વિસ્ફોટો દર્શાવવાને બદલે જૂની સૂચનાઓનું ભાષાંતર કરવામાં તેની મોટાભાગની ઉર્જા ખર્ચ ન કરે. રેશીનું પોર્ટ આ બધું ટાળે છે.
મૂળ ગેમ DirectX 8 પર રિલીઝ થઈ હતી, જે Microsoft ગ્રાફિક્સ પાઇપલાઇન છે જે આઇફોન કરતાં ઘણા વર્ષો જૂની છે. તે રેન્ડરિંગ કમાન્ડ્સને Metal પર ચલાવવી એ માત્ર 'સર્ચ-એન્ડ-રિપ્લેસ' (search-and-replace) જેવું કામ નથી. DirectX 8 અને Metal મેમરીને અલગ રીતે ગોઠવે છે. તેઓ શેડર્સ (shaders) ને અલગ રીતે હેન્ડલ કરે છે. તેઓ અલગ હાર્ડવેર આર્કિટેક્ચર ધારીને કામ કરે છે. રેશીએ ગેમના ગ્રાફિક્સને મધ્યવર્તી ભાષાંતરોના સાંકળ દ્વારા પસાર કરવા પડ્યા, જેમાં નીચેના વિઝ્યુઅલ લોજિકને તોડ્યા વિના લેગસી DirectX કોલ્સને એવી રીતે રૂપાંતરિત કરવા પડ્યા જે Metal સમજી શકે. પરિણામ એ છે કે તે ઇન્ટરફેસ સાથે મેપ કરેલા કસ્ટમ ટચ કંટ્રોલ્સ સાથે સંપૂર્ણ Campaign, Skirmish, અને Generals Challenge મોડ્સ ચલાવે છે. તમે તમારા અંગૂઠાથી બેઝ બનાવી શકો છો અને સ્કડ સ્ટોર્મ્સ (scud storms) લોન્ચ કરી શકો છો.
તેની મર્યાદાઓ છે. જ્યારે મેમરી પ્રેશર વધે ત્યારે iPad પર લાંબા સમય સુધી રમવાથી એપ ક્રેશ થઈ શકે છે. શરૂઆતના નેટિવ પોર્ટ્સમાં અવારનવાર આવા ડાઘ જોવા મળે છે, અને તે એક પ્રમાણિક સ્મૃતિ અપાવે છે કે AI-સહાયિત ડીબગિંગના થોડા કલાકો બે દાયકાના એસેટ લોડિંગ પેટર્નને સંપૂર્ણ રીતે ઓપ્ટિમાઇઝ કરી શકતા નથી. તેમ છતાં, મુખ્ય એન્જિન મજબૂત છે.
વર્કફ્લો: Claude Code, Fable 5, અને ચાલીસ મિનિટ
ઝડપ એ મુખ્ય સમાચાર છે, પરંતુ તેની પાછળની પદ્ધતિઓ એવી છે જે દરેક કામ કરતા ડેવલપરનું ધ્યાન ખેંચવી જોઈએ. રેશીએ Anthropic ના Claude Code નો ઉપયોગ Fable 5 નામના ટૂલની સાથે કર્યો હતો. પ્રારંભિક બિલ્ડમાં લગભગ ચાલીસ મિનિટ લાગી હતી. ડીબગિંગ અને સુધારણામાં થોડા વધારાના કલાકો લાગ્યા હતા. આ આખા પ્રોજેક્ટનો સમયગાળો હતો.
વિચારો કે આ શું બદલી નાખે છે. આ સ્તરનું મેન્યુઅલ પોર્ટ સામાન્ય રીતે પ્રોગ્રામર દ્વારા માત્ર મૂળ બિલ્ડ સિસ્ટમને મેપ કરવામાં દિવસો વિતાવવાથી શરૂ થાય છે. પછી રેન્ડરરનું પુનઃલેખન આવે છે. પછી શેડર ટ્રાન્સલેશન. પછી ARM64 માટે આર્કિટેક્ચર એડજસ્ટમેન્ટ્સ. પછી ઇનપુટ હેન્ડલિંગ, ઓડિયો, મેમરી મેનેજમેન્ટ અને એ હજારો નાની મુશ્કેલીઓ જે લેગસી કોડને નવા પ્લેટફોર્મ માટે ખૂબ જ મુશ્કેલ બનાવે છે. આ પ્રક્રિયામાં મહિનાઓ નીકળી જાય છે. રેશીએ એક એજન્ટિક AI ટૂલને બ્રુટ-ફોર્સ ટ્રાન્સલેશનનું કામ કરવા દીધું અને પોતે તેને માર્ગદર્શન આપ્યું, જેનાથી આ કામ માત્ર એક બપોરના સમયમાં પૂરું થઈ ગયું.
તેની તીવ્રતા બિલિંગમાં દેખાઈ. રેશીએ બે દિવસના કામ દરમિયાન તેનો આખો Claude Max ક્વોટા ખર્ચ નાખ્યો. જે કોઈ લાંબા કોડિંગ સેશન દરમિયાન તેમના API ક્રેડિટ્સ અદૃશ્ય થતા જોયા હોય તે આ લાગણી સમજી શકે છે. અહીં તફાવત એ છે કે આ વપરાશથી માત્ર થોડા પ્રાયોગિક સ્ક્રિપ્ટ્સને બદલે શિપિંગ-ક્વોલિટી (shipping-quality) નેટિવ પોર્ટ તૈયાર થયું.
અહીં એક વ્યાવસાયિક પેટાકથા પણ નોંધવા જેવી છે. રેશી Google DeepMind માં કામ કરે છે. તે Google ના પોતાના મોડલ્સનો ઉપયોગ કરી શક્યો હોત. પણ તેણે તેમ કર્યું નહીં. તેણે Anthropic ના Claude ને પસંદ કર્યું કારણ કે તે કામ માટે યોગ્ય હતું. પ્રોજેક્ટ પર તેની પોતાની ટિપ્પણીઓમાં, તેણે સ્પષ્ટ કર્યું કે શ્રેષ્ઠ શક્ય ઉકેલ બનાવવા પર ધ્યાન કેન્દ્રિત કરતી વખતે સ્પર્ધકનું સન્માન કરી શકાય છે. આ વલણ ફેલાઈ રહ્યું છે. ક્ષેત્રના ટોચના એન્જિનિયરો 'મોડલ એગ્નોસ્ટિક' (model agnostic) બની રહ્યા છે. તેઓ AI ટૂલ્સ સાથે તેમ જ વ્યવહાર કરે છે જે રીતે તેઓ પ્રોગ્રામિંગ લેંગ્વેજ અથવા ક્લાઉડ પ્રોવાઇડર્સ સાથે કરે છે: જે કામને અનુરૂપ હોય તેને પસંદ કરો, તમારી કંપનીના બેજ પર જે હોય તેને નહીં.