Kuuona mchezo wa mkakati wa wakati halisi (real-time strategy) wa mwaka 2003 ukifanya kazi natively kwenye iPhone kunahisi kuwa ni jambo lisilo la kawaida kwa njia nzuri zaidi. Tanki zinajiviringisha kwenye ramani za jangwa. Majenerali wanatoa amri kwa sauti. Mistari ya usambazaji inajipanua kwenye vioo vya kugusa (touchscreens) ambavyo havikuwepo wakati kodi ya asili ilipoundwa. Hata hivyo, tuko hapa. Ammaar Reshi, anayeongoza bidhaa na usanifu katika Google AI Studio, hivi karibuni alichukua Command & Conquer: Generals Zero Hour na kutengeneza toleo la iOS la asili (native) katika muda unaotumika tu kutazama mfululizo mmoja wa tamthilia. Mradi huu hautegemei mbinu za uigizaji (emulation). Unafanya kazi kwenye Apple silicon, unatumia Metal, na unazua maswali mazito kuhusu jinsi programu za zamani (legacy software) zinavyoweza kufuata njia hiyo hiyo.
Kilichojengwa Haswa
Hii siyo kizuizi (wrapper). Haifanyi kazi ndani ya emulator inayojifanya kuwa PC ya Windows ya miaka ishirini iliyopita. Mchezo huu unajengwa (compiles) kwa ajili ya ARM64 na unazungumza moja kwa moja na Apple’s Metal graphics API. Tofauti hiyo ni muhimu. Emulation inagharimu fremu (frames). Inagharimu betri. Inajenga tabaka za ulinganifu (abstraction) juu ya tabaka nyingine mpaka chip ya simu inatumia nguvu nyingi kutafsiri maelekezo ya zamani badala ya kuchora milipuko. Port ya Reshi inaepuka yote hayo.
Mchezo wa asili ulitolewa kwa kutumia DirectX 8, mfumo wa michoro wa Microsoft (graphics pipeline) ambao ulitangulia iPhone kwa miaka kadhaa. Kufanya amri hizo za uwasilishaji (rendering commands) zifanye kazi kwenye Metal si kazi rahisi ya kutafuta na kubadilisha (search-and-replace). DirectX 8 na Metal zinapanga kumbukumbu (memory) tofauti. Zinashughulikia shaders tofauti. Zinachukulia usanifu wa vifaa (hardware architectures) tofauti. Reshi alilazimika kupitisha michoro ya mchezo kupitia mfululizo wa tafsiri za kati, akibadilisha wito wa DirectX wa zamani kuwa kitu ambacho Metal ingeweza kuelewa bila kuharibu mantiki ya picha iliyopo chini. Matokeo yake ni kwamba mchezo unaendesha hali kamili za Campaign, Skirmish, na Generals Challenge ikiwa na udhibiti wa kugusa uliorekebishwa kulingana na kiolesura (interface). Unaweza kujenga kambi na kuzindua dhoruba za scud kwa kutumia vidole vyako.
Kuna mipaka. Vipindi virefu vya kucheza kwenye iPad vinaweza kusababisha programu kuzima (crash) wakati shinikizo la kumbukumbu (memory pressure) linapoongezeka. Port za asili za awali mara nyingi huwa na aina hii ya kasoro, na ni ukumbusho wa kweli kwamba saa chache za kurekebisha makosa (debugging) kwa msaada wa AI haziwezi kuboresha kikamilifu mifumo ya kupakia rasilimali (asset loading patterns) ya miaka ishirini. Hata hivyo, injini ya msingi inasimama yenyewe.
Mtiririko wa Kazi: Claude Code, Fable 5, na Dakika Arubaini
Kasi ndiyo kichwa cha habari, lakini mbinu zilizoko nyuma yake ndizo zinazopaswa kuvutia umakini wa kila mwanatengenezaji programu anayefanya kazi. Reshi alitumia Anthropic’s Claude Code pamoja na zana inayoitwa Fable 5. Ujenzi wa awali ulichukua takriban dakika arubaini. Kurekebisha makosa (debugging) na uboreshaji vilichukua saa chache za ziada. Hiyo ndiyo muda wote wa mradi huo.
Fikiria kile ambacho mchakato huo unachochukua nafasi yake. Port ya mwongozo (manual port) ya kiwango hiki kwa kawaida ingeanza kwa mwanatengenezaji programu kutumia siku nyingi tu kuchora ramani ya mfumo wa ujenzi wa asili. Kisha inakuja kuandika upya renderer. Kisha tafsiri ya shader. Kisha marekebisho ya usanifu kwa ajili ya ARM64. Kisha usimamizi wa ingizo (input handling), sauti, usimamizi wa kumbukumbu, na changamoto nyingi ndogondogo zinazofanya kodi za zamani kuwa ngumu kutumika kwenye mifumo mipya. Miezi mingi hupotea katika mchakato huo. Reshi aliupunguza mchakato huo hadi kuwa wa mchana mmoja kwa kuacha zana ya AI (agentic AI tool) ishughulikie kazi ngumu ya tafsiri huku yeye akiiongoza.
Ukali wa kazi hiyo ulionekana katika malipo. Reshi alitumia kiasi chake chote cha Claude Max kwa siku mbili za kazi. Yeyote ambaye amewahi kuona salio lake la API likitoweka wakati wa kikao kirefu cha uandishi wa kodi anajua hisia hiyo. Tofauti hapa ni kwamba matumizi hayo yalizalisha port ya asili yenye ubora wa kutoa bidhaa badala ya seti ndogo ya skripti za majaribio.
Pia kuna sehemu nyingine ya kitaalamu inayostahili kuzingatiwa. Reshi anafanya kazi katika Google DeepMind. Angeweza kutumia mifano ya Google yenyewe. Hakufanya hivyo. Alichagua Anthropic’s Claude kwa sababu ilifaa kazi hiyo. Katika maoni yake mwenyewe kuhusu mradi huo, alifanya wazi kuwa mtu anaweza kuheshimu washindani huku akizingatia ujenzi wa suluhisho bora zaidi inayowezekana. Mtazamo huo unazidi kuenea. Wahandisi walio juu kabisa katika nyanja hii wanazidi kutokuwa na upendeleo kwa modeli fulani (model agnostic). Wanachukulia zana za AI kama wanavyochukulia lugha za programu au watoa huduma za wingu (cloud providers): chagua ile inayofaa kazi, si ile iliyo kwenye kitambulisho cha kampuni yako.