Het zien van een grootschalige real-time strategy game uit 2003 die native op een iPhone draait, voelt op de best mogelijke manier een beetje fout aan. Tanks rollen over woestijnkaarten. Generaals brullen bevelen. Aanvoerlijnen strekken zich uit over touchscreens die nog niet bestonden toen de originele code werd gecompileerd. En toch zijn we hier. Ammaar Reshi, die product en design leidt bij Google AI Studio, nam onlangs Command & Conquer: Generals Zero Hour en bouwde een native iOS-versie in ongeveer de tijd die nodig is om een heel televisieseizoen te bingen. Het project vertrouwt niet op emulatietrucs. Het draait op Apple silicon, spreekt Metal en roept serieuze vragen op over hoeveel legacy-software hetzelfde pad zou kunnen volgen.

Wat er daadwerkelijk is gebouwd

Dit is geen wrapper. Het draait niet in een emulator die doet alsof het een Windows PC van twintig jaar geleden is. De game compileert voor ARM64 en communiceert rechtstreeks met Apple's Metal graphics API. Dat onderscheid is belangrijk. Emulatie kost frames. Het kost batterij. Het stapelt abstractie op abstractie totdat een mobiele chip het grootste deel van zijn energie besteedt aan het vertalen van oude instructies in plaats van het tekenen van explosies. De port van Reshi omzeilt dat allemaal.

De originele game werd uitgebracht op DirectX 8, een Microsoft graphics pipeline die de iPhone al enkele jaren voor was. Het werkend krijgen van die rendering-commando's op Metal is geen simpele zoek-en-vervang-klus. DirectX 8 en Metal organiseren het geheugen anders. Ze gaan anders om met shaders. Ze gaan uit van verschillende hardwarearchitecturen. Reshi moest de graphics van de game door een keten van tussenliggende vertalingen leiden, waarbij hij legacy DirectX-aanroepen omzette naar iets dat Metal kon begrijpen zonder de onderliggende visuele logica te breken. Het resultaat draait de volledige Campaign-, Skirmish- en Generals Challenge-modi met aangepaste touch-besturing die aan de interface is gekoppeld. Je kunt bases bouwen en scud-stormen lanceren met je duimen.

Er zijn grenzen. Langdurige gamesessies op de iPad kunnen de app laten crashen wanneer de geheugendruk piekt. Vroege native ports hebben vaak dit soort littekens, en het is een eerlijke herinnering dat een paar uur AI-ondersteund debuggen niet twee decennia aan asset-loadingpatronen volledig kan optimaliseren. Toch staat de kern van de engine op zichzelf.

De workflow: Claude Code, Fable 5 en veertig minuten

Snelheid is de kop van het nieuws, maar de mechanica erachter is wat de aandacht van elke werkende ontwikkelaar zou moeten trekken. Reshi gebruikte Anthropic's Claude Code naast een tool genaamd Fable 5. De eerste build duurde ongeveer veertig minuten. Debuggen en verfijnen duurde nog een paar extra uren. Dat is de volledige omvang van het project.

Denk eens na over wat dit vervangt. Een handmatige port van deze omvang zou normaal gesproken beginnen met een programmeur die dagenlang alleen al bezig is met het in kaart brengen van het originele build-systeem. Dan volgt het herschrijven van de renderer. Dan de shader-vertaling. Dan architectuur-aanpassingen voor ARM64. Dan input-verwerking, audio, geheugenbeheer en de duizend kleine sneetjes die legacy-code zo vijandig maken voor nieuwe platforms. Maanden verdwijnen in dat proces. Reshi bracht het terug tot een middag door een agentic AI-tool het brute-force vertaalwerk te laten doen terwijl hij de koers bepaalde.

De intensiteit bleek uit de facturering. Reshi verbruikte zijn volledige Claude Max-quota in twee dagen werk. Iedereen die zijn API-credits heeft zien verdwijnen tijdens een lange programmeersessie, kent het gevoel. Het verschil hier is dat het verbruik een native port van commerciële kwaliteit opleverde in plaats van een handvol experimentele scripts.

Er is ook een professioneel zijverhaal dat de moeite waard is om op te merken. Reshi werkt bij Google DeepMind. Hij had kunnen kiezen voor de eigen modellen van Google. Dat deed hij niet. Hij koos voor Anthropic's Claude omdat het bij de taak paste. In zijn eigen opmerkingen over het project maakte hij duidelijk dat men de concurrentie kan respecteren terwijl men zich richt op het bouwen van de best mogelijke oplossing. Die houding verspreidt zich. Engineers aan de top van het vakgebied worden model-agnostisch. Ze behandelen AI-tools zoals ze programmeertalen of cloudproviders behandelen: kies degene die bij de klus past, niet degene op je bedrijfsbadge.

Waarom native vertaling nog steeds