Vedere un gioco di strategia in tempo reale su larga scala del 2003 girare nativamente su un iPhone sembra quasi sbagliato, nel miglior modo possibile. Carri armati avanzano su mappe desertiche. Generali impartiscono ordini. Linee di rifornimento si estendono su touchscreen che non esistevano quando il codice originale fu compilato. Eppure, eccoci qui. Ammaar Reshi, responsabile del prodotto e del design presso Google AI Studio, ha recentemente preso Command & Conquer: Generals Zero Hour e ha creato una versione nativa per iOS nel tempo approssimativo necessario per guardare un'intera stagione televisiva. Il progetto non si affida a trucchi di emulazione. Gira su Apple silicon, utilizza Metal e solleva seri interrogativi su quanto software legacy possa seguire lo stesso percorso.
Cosa è stato costruito realmente
Non si tratta di un wrapper. Non gira all'interno di un emulatore che finge di essere un PC Windows di vent'anni fa. Il gioco viene compilato per ARM64 e comunica direttamente con l'API grafica Metal di Apple. Questa distinzione è importante. L'emulazione costa frame. Costa batteria. Stratifica astrazione su astrazione finché un chip mobile non spende la maggior parte della sua energia traducendo vecchie istruzioni invece di disegnare esplosioni. Il port di Reshi evita tutto questo.
Il gioco originale è stato rilasciato con DirectX 8, una pipeline grafica di Microsoft che precede l'iPhone di diversi anni. Far funzionare quei comandi di rendering su Metal non è un semplice lavoro di "cerca e sostituisci". DirectX 8 e Metal organizzano la memoria in modo diverso. Gestiscono gli shader in modo diverso. Presuppongono architetture hardware differenti. Reshi ha dovuto far passare la grafica del gioco attraverso una catena di traduzioni intermedie, convertendo le chiamate DirectX legacy in qualcosa che Metal potesse comprendere senza rompere la logica visiva sottostante. Il risultato è un gioco che esegue tutte le modalità Campaign, Skirmish e Generals Challenge con controlli touch personalizzati mappati sull'interfaccia. È possibile costruire basi e lanciare tempeste di scud con i pollici.
Ci sono dei limiti. Sessioni di gioco prolungate su iPad possono causare il crash dell'app quando la pressione sulla memoria aumenta improvvisamente. I primi port nativi portano spesso questo tipo di cicatrici, ed è un onesto promemoria del fatto che poche ore di debugging assistito dall'IA non possono ottimizzare completamente due decenni di pattern di caricamento degli asset. Tuttavia, il motore principale si regge da solo.
Il workflow: Claude Code, Fable 5 e quaranta minuti
La velocità è il titolo principale, ma sono le meccaniche sottostanti che dovrebbero attirare l'attenzione di ogni sviluppatore. Reshi ha utilizzato Claude Code di Anthropic insieme a uno strumento chiamato Fable 5. La build iniziale ha richiesto circa quaranta minuti. Il debugging e il perfezionamento si sono protratti per alcune ore aggiuntive. Questo è l'intero arco temporale del progetto.
Pensate a cosa sostituisce. Un port manuale di questa portata inizierebbe normalmente con un programmatore che passa giorni solo a mappare il sistema di build originale. Poi arriva la riscrittura del renderer. Poi la traduzione degli shader. Poi gli aggiustamenti dell'architettura per ARM64. Poi la gestione degli input, l'audio, la gestione della memoria e i mille piccoli problemi che rendono il codice legacy così ostile alle nuove piattaforme. Mesi spariscono in questo processo. Reshi lo ha condensato in un pomeriggio lasciando che uno strumento di IA agentica si occupasse del lavoro di traduzione di forza bruta mentre lui guidava il processo.
L'intensità si è vista nella fatturazione. Reshi ha esaurito l'intera quota di Claude Max in due giorni di lavoro. Chiunque abbia visto i propri crediti API svanire durante una lunga sessione di coding conosce la sensazione. La differenza qui è che il consumo ha prodotto un port nativo di qualità pronta per il rilascio, invece di una manciata di script sperimentali.
C'è anche una sottotrama professionale degna di nota. Reshi lavora presso Google DeepMind. Avrebbe potuto ricorrere ai modelli di Google. Non l'ha fatto. Ha scelto Claude di Anthropic perché era adatto al compito. Nei suoi commenti sul progetto, ha chiarito che si può rispettare la concorrenza concentrandosi sulla costruzione della migliore soluzione possibile. Questo atteggiamento si sta diffondendo. Gli ingegneri ai vertici del settore stanno diventando model agnostic. Trattano gli strumenti di IA come trattano i linguaggi di programmazione o i fornitori cloud: scelgono quello che si adatta al lavoro, non quello che compare sul badge aziendale.