Modernisation éclair : un jeu de 2003 porté sur iOS en quelques heures grâce à Claude Code
Et si vos applications métier vieillissantes n'étaient plus un frein, mais une opportunité ? Un récent exploit technique illustre de façon spectaculaire ce que les agents IA sont désormais capables d'accomplir sur du code legacy complexe.
Le défi : porter un jeu C++ de 2003 sur iPhone natif
Ammaar Reshi, Lead Product & Design chez Google AI Studio, a décidé de relever un défi technique ambitieux : porter Command & Conquer: Generals Zero Hour — un jeu de stratégie en temps réel sorti en 2003 — vers iOS, en exécution native sur architecture ARM64, sans émulateur.
Le projet représente tout ce qu'un développeur redoute dans une migration legacy :
- Une base de code C++ vieille de plus de vingt ans
- Une dépendance forte à DirectX 8, l'API graphique de Microsoft
- Une architecture pensée pour Windows, sans aucune abstraction multi-plateforme
- Des contraintes mémoire critiques sur mobile
Résultat ? Un premier build fonctionnel en 40 minutes, suivi de quelques heures de débogage. En deux jours, la campagne, le mode escarmouche et le "Generals Challenge" tournaient tous avec des contrôles tactiles sur iPad et iPhone.
Comment ça fonctionne : l'outillage derrière l'exploit
Reshi a utilisé deux outils en combinaison : Claude Code d'Anthropic, un agent de développement en ligne de commande, couplé à Fable 5, un framework de portage multiplateforme.
Le pipeline graphique est particulièrement intéressant techniquement : les appels DirectX 8 sont traduits vers Metal, l'API graphique bas niveau d'Apple, via plusieurs couches d'abstraction intermédiaires. C'est précisément le type de transformation que les agents IA gèrent bien : identifier des patterns d'appels API, comprendre leur sémantique, et générer le code équivalent dans un autre paradigme.
Claude Code a pris en charge l'analyse du code source, la proposition de corrections, et l'itération sur les bugs — le tout de manière autonome ou semi-autonome. Reshi documente chaque bug et sa correction dans un journal d'ingénierie publié en open source sur GitHub (les assets du jeu ne sont pas inclus, mais le jeu est disponible sur Steam pour environ 5 $).
À noter : l'utilisation intensive a consommé l'intégralité du quota Claude Max de Reshi sur deux jours, ce qui donne une idée du volume de travail délégué à l'agent.
Source : The Decoder
Ce que ça change pour vos projets de modernisation
Cet exemple dépasse largement le cadre du jeu vidéo. Il démontre une capacité concrète qui intéresse directement les équipes qui maintiennent des applications métier PHP legacy, des modules Symfony anciens, ou des systèmes développés il y a dix ou quinze ans.
Les patterns sont les mêmes :
- Comprendre une architecture non documentée ou sous-documentée
- Identifier les dépendances vers des APIs ou frameworks obsolètes
- Proposer et appliquer des refactorings à grande échelle
- Itérer rapidement sur les erreurs de compilation ou de runtime
Dans un contexte PHP/Symfony, cela peut se traduire par : migrer un projet Symfony 3 vers Symfony 7, remplacer des dépendances abandonnées, moderniser des entités Doctrine, ou encore adapter du code procédural vers une architecture orientée domaine.
La clé réside dans la capacité des agents à maintenir le contexte sur de larges bases de code et à raisonner sur des transformations systématiques — là où un développeur humain devra lire, comprendre, puis réécrire manuellement chaque fichier.
Les limites à garder en tête
L'exploit de Reshi est réel, mais il serait imprudent d'en tirer des conclusions trop rapides.
Premièrement, le projet bénéficiait d'un avantage significatif : le code source était disponible et libre de droits. Dans de nombreux projets legacy en entreprise, la situation est plus complexe — code partiellement perdu, logique métier implicite dans des procédures stockées, ou documentation inexistante.
Deuxièmement, des bugs subsistent : sur iPad, le jeu peut crasher lors de longues sessions à cause d'une utilisation mémoire élevée. La migration a été rapide, pas parfaite. Pour une application de production, ce niveau de stabilité ne suffirait pas.
Troisièmement, l'outillage consomme des ressources significatives. Deux jours de quota Claude Max représentent un coût non négligeable qu'il faut intégrer dans l'estimation d'un projet de modernisation.
Cela dit, même en tenant compte de ces limites, le rapport effort/résultat reste remarquable comparé à une migration entièrement manuelle.
Conclusion : réévaluer le coût de vos dettes techniques
La démonstration de Reshi — un développeur Google qui utilise délibérément un outil Anthropic et le dit sans complexe — envoie un signal fort : l'IA agentique est suffisamment mature pour s'attaquer à des migrations de code complexes, dans des délais qui rendent certains projets autrefois jugés trop coûteux à nouveau viables.
Pour les équipes PHP et Symfony, c'est une invitation à réévaluer leur backlog de dette technique. Des modules en fin de vie, des intégrations API obsolètes, des applications internes jamais migrées : ces sujets méritent d'être revisités à l'aune de ce que les agents de développement permettent aujourd'hui.
Le code source du projet est disponible sur GitHub. L'engineering log associé constitue en lui-même une lecture instructive sur la façon dont un agent IA aborde et résout des problèmes de portage système.