← Tous les articles

Game Porting Toolkit 4 : le portage agentique de jeux sur Mac

From the guide: Claude Code Comprehensive Guide

« J’utilise Claude Code pour tout aujourd’hui. » David Srour, ingénieur au sein de la Metal Ecosystem Team d’Apple, a prononcé cette phrase sur une scène de la WWDC 2026, puis a passé le reste de la session 357 à porter le MiniEngine de Microsoft, du D3D12 sous Windows vers Metal 4 sous macOS, en laissant un agent faire le travail de plateforme.1 Le véhicule, c’est Game Porting Toolkit 4, qui livre des compétences agentiques sous forme de plugin que vous installez depuis la marketplace Game Porting Toolkit sur GitHub : des compétences expertes qui portent la connaissance de la plateforme, des compétences de workflow qui imposent un processus jalonné, et un agent assistant de portage qui orchestre les deux.1 Apple a aussi construit la primitive qui a rendu la démo possible tout court. macOS 27 ajoute gpucapture et gpudebug, des outils en ligne de commande qui permettent à un agent de capturer une frame GPU et de l’analyser sans qu’un humain pilote Xcode.1

Apple a publié un pack de compétences maison pour un agent de codage, visant un domaine que les agents ne pouvaient auparavant pas toucher seuls : faire démarrer un moteur de rendu, déboguer des pixels erronés et régler un upscaler. La session 356 est la pièce complémentaire, où Paweł Sasko de CD PROJEKT RED détaille comment le studio a porté Cyberpunk 2077: Ultimate Edition sur le Mac à la main. Le portage de Cyberpunk précède les compétences agentiques ; personne chez CDPR n’a fait tourner d’assistant de portage. Apple associe les deux sessions de façon délibérée, en concluant la présentation de Cyberpunk par un renvoi des développeurs vers celle, agentique.2 Lues ensemble, elles défendent un même argument : le mode opératoire manuel fonctionne à l’échelle AAA, et Game Porting Toolkit 4 confie ce mode opératoire à un agent.

TL;DR

  • Game Porting Toolkit 4 ajoute des compétences agentiques pour le portage de jeux : des compétences expertes (connaissance du domaine), des compétences de workflow (un processus jalonné) et un agent assistant de portage qui les orchestre, distribués sous forme de plugin depuis la marketplace Game Porting Toolkit sur GitHub.1
  • Le workflow déroule les phases discover (analyse du code, captures de référence depuis l’environnement d’évaluation, questions sur les préférences), plan, execute et validate ; chaque jalon charge automatiquement ses compétences expertes « sans dépendre du fait que le modèle décide ou non de les utiliser », et l’agent « conserve ce qu’il apprend d’un jalon à l’autre ».1
  • macOS 27 livre gpucapture et gpudebug, des outils CLI qui « prennent en charge des workflows d’agent entièrement autonomes », ainsi que des extensions du Metal HUD pour MetalFX : un affichage de l’exposition, un nuage de points du jitter qui signale en rouge les valeurs hors plage, et des surcharges en direct.1
  • Apple a fait la démo des compétences en portant le MiniEngine de Microsoft du D3D12 vers Metal 4, puis a pointé l’assistant vers Godot, qui a obtenu un backend Metal 4 « opérationnel en quelques jours ».1
  • Cyberpunk 2077 prouve le pipeline sous-jacent à l’échelle AAA, par la voie manuelle : profilage à partir de l’environnement d’évaluation, le préréglage automatique « For this Mac », un HDR auto-calibré via EDR et un son spatial avec suivi de la tête, et le jeu a remporté le titre de Jeu Mac de l’année aux App Store Awards 2025 d’Apple.2

L’assistant de portage et ses compétences (session 357)

Regarder : Réussissez le speedrun du portage de votre jeu grâce au codage agentique (WWDC26)

David Srour nomme son agent et installe le plugin depuis la marketplace Game Porting Toolkit, à partir de 3:26.

Un portage typique suppose de cadrer le travail, d’obtenir une build fonctionnelle, de convertir les shaders, de faire démarrer le moteur de rendu, de remapper les entrées, de peaufiner pour un rendu natif et d’optimiser les performances.1 Game Porting Toolkit 4 s’attaque à cette liste avec deux types de compétences. Les compétences expertes fournissent une orientation technique : connaissance de la plateforme, bonnes pratiques et alertes sur les anti-patterns de portage courants. Les compétences de workflow fournissent l’approche structurée. L’agent assistant de portage les relie, et Apple est explicite sur l’importance de l’orchestration : « Pendant l’exécution, tous les jalons planifiés chargent automatiquement les compétences expertes nécessaires, sans dépendre du fait que le modèle décide ou non de les utiliser. »1 La sélection des compétences cesse d’être un coup de dés du modèle pour devenir une partie de la définition du processus.

La distribution passe par le propre système de plugins de l’agent. « Les compétences et l’assistant sont fournis sous forme de plugin depuis la marketplace Game Porting Toolkit sur GitHub. Vous ajouterez d’abord la marketplace. Puis vous installerez le plugin. »1 Le dépôt derrière cette marketplace est apple/game-porting-toolkit, décrit comme « Resources for porting games and engines to Apple platforms » ; son README documente la même répartition, des compétences expertes couvrant Metal 4, MetalFX, la compilation de shaders, les frameworks de plateforme et les outils de débogage, et des compétences de workflow qui exécutent un processus de portage jalonné et conservent l’état d’une session à l’autre.3 Dans Claude Code, l’enregistrement de la marketplace tient en une seule commande : /plugin marketplace add apple/game-porting-toolkit.3

Le workflow de l’assistant comporte trois étapes. La phase discover examine votre code, récupère des captures de référence depuis l’environnement d’évaluation (le même environnement de build Windows traduite qu’a utilisé CDPR, plus de détails ci-dessous) et vous pose des questions sur vos préférences. Ensuite, l’assistant et vous planifiez les objectifs des jalons, « car porter un titre entier est généralement trop ambitieux pour une seule session ».1 Pour chaque jalon, l’agent exécute les changements pendant que vous le guidez, puis la phase validate déroule une liste de contrôle multipoint : l’application se lance correctement, la validation Metal passe sur l’usage de l’API et les shaders, des captures d’écran confirment l’exactitude visuelle face aux références de vérité terrain, l’agent revoit le code à l’aune des anti-patterns connus des compétences qu’il a employées, et il vérifie l’absence de problèmes de mémoire.1 L’agent « conserve aussi ce qu’il apprend d’un jalon à l’autre, de sorte que rien ne se perde entre les sessions ».1

La démo du MiniEngine montre ce qu’apportent réellement les compétences expertes. Pour le premier jalon, une fenêtre au frame pacing correct, quatre compétences se chargent ensemble : création et cycle de vie de la fenêtre, mapping conceptuel de la swap-chain, présentation des drawables et durées de vie des objets metal-cpp.1 Pour le rendu de scène, la compétence resources enseigne le modèle de résidence de Metal 4 : enregistrez les ressources dans un residency set très tôt, car sans cette connaissance l’agent produit un code qui compile alors que le GPU ne peut pas lire la texture.1 Les compétences shader pipeline et converter amènent l’agent à interroger les offsets des argument buffers auprès du runtime du Metal shader converter au lieu de copier l’arithmétique index × taille du MiniEngine, qui casse lorsque le converter agence les buffers différemment : « Aucune erreur, juste un rendu incorrect. »1 La compétence synchronization mappe le modèle de barrières du D3D12 sur le modèle producteur-consommateur de Metal 4, plutôt que de laisser l’agent se rabattre sur des barrières systématiques aux frontières des encoders, lesquelles fonctionnent dans les cas simples et se brisent en silence à mesure que le pipeline grossit.1 Un schéma émerge à travers les trois : le mode de défaillance que les compétences préviennent est rarement un crash. Ce sont des pixels erronés sans aucun message d’erreur.

Les compétences vont au-delà du premier état jouable. Une compétence game controller couvre la découverte via GCController et apprend à l’agent à interroger ce qu’un appareil connecté prend réellement en charge plutôt que de supposer la disposition figée de XInput.1 Deux compétences MetalFX gèrent l’upscaling et l’interpolation de frames : la compétence upscaling configure le jitter en espace pixel (des valeurs normalisées désactiveraient de fait l’accumulation temporelle), met en place les motion vectors avec la bonne échelle et les bonnes conventions, et fournit la configuration du MIP bias et de la reprojection de l’historique ; la compétence frame interpolation établit un thread de présentation dédié pour que les frames interpolées et rendues restent régulièrement espacées.1

Srour a conclu avec une seconde base de code : « J’ai pointé l’assistant de portage vers Godot, un moteur de production doté d’un backend Metal 3 existant, et je lui ai demandé d’ajouter Metal 4 à côté. »1 Même workflow, mêmes compétences, validation face aux vérités terrain. « Cela reste un effort collaboratif, mais les compétences ont nettement accéléré les choses. C’était opérationnel en quelques jours. »1 Sa répartition des tâches sur l’ensemble de la session est le passage à citer à quiconque doute du portage agentique : « J’ai laissé les compétences faire le gros du travail, pendant que je me concentrais sur autre chose : prendre les décisions d’architecture, relire la sortie de l’agent et fournir le contexte important sur le jeu. »1

gpucapture et gpudebug : la primitive du débogage autonome

Le moment décisif de la session 357 survient à mi-chemin du portage du MiniEngine, lorsque le premier rendu apparaît avec un éclairage erroné et des textures de mur visiblement étirées. Srour nomme directement la faille : « Normalement, je capturerais une frame dans Xcode et je diagnostiquerais le problème. Mais jusqu’à présent, un agent ne pouvait pas le faire de lui-même. »1 Le débogage GPU a été le mur infranchissable du travail graphique autonome ; tout passait par une interface graphique.

macOS 27 abat ce mur : « macOS 27 introduit de nouveaux outils en ligne de commande qui prennent en charge des workflows d’agent entièrement autonomes : gpucapture pour capturer une frame GPU, et gpudebug pour l’analyser. »1 Dans la démo, Srour décrit les symptômes visuels, l’agent charge une compétence debugging-rendering-issues dotée d’une méthodologie structurée des symptômes à la cause racine, capture une trace avec gpucapture pendant que l’application tourne, puis utilise gpudebug pour inspecter « tout ce que vous vérifieriez normalement dans Xcode : liaisons de ressources, constantes, contenus de ressources et flux de données à travers le pipeline », en traçant l’endroit où la sortie diverge de l’environnement d’évaluation jusqu’à trouver et corriger le problème.1 Les mêmes outils alimentent ensuite la validation : l’agent compare les appels de dispatch, les pipelines et les dimensions de dispatch à la trace d’origine, une comparaison côte à côte que Srour qualifie de fastidieuse à faire à la main pour chaque jalon.1 La page produit d’Apple explicite le cadre : avec l’accès en ligne de commande aux outils Metal, les agents peuvent désormais capturer, déboguer et profiler des charges de travail Metal directement.3

macOS 27 étend aussi le Metal HUD pour le travail d’intégration MetalFX. Le HUD affiche désormais le paramètre d’exposition de l’upscaler afin que vous confirmiez qu’il atteint bien l’API, montre les informations de séquence de jitter avec les jitters hors plage marqués en rouge sur un nuage de points, et propose des surcharges en direct pour les multiplicateurs de jitter et les échelles de motion vectors, qui prennent effet pendant que l’application tourne.1 Le diagnostic de la démo est un exemple net de la technique : des artefacts d’oscillation lors des mouvements de caméra, le HUD montre l’échelle X du motion vector inversée, le fait de la retourner dans le panneau de surcharges corrige l’oscillation, et « si les surcharges du HUD corrigent la sortie, cela vous dit où se situe le bug ».1 Vous remontez ensuite le correctif jusqu’à la logique source.

Cyberpunk 2077 : le mode opératoire manuel à l’échelle AAA (session 356)

Regarder : Porter Cyberpunk 2077 sur Mac (WWDC26)

Paweł Sasko fait le tour du préréglage « For this Mac » sur un MacBook Pro M5 Max, à partir de 15:26.

La session 356 réunit Garrett Austin, ingénieur de l’équipe Game Performance d’Apple, et Paweł Sasko, Associate Game Director chez CD PROJEKT RED.2 Pour être précis sur la chronologie : Cyberpunk 2077: Ultimate Edition est sorti sur Mac et a remporté le titre de Jeu Mac de l’année aux App Store Awards 2025 d’Apple, avant que les compétences agentiques de Game Porting Toolkit 4 n’existent.2 CDPR a fait chaque étape de la session à la main. La raison pour laquelle cette session a sa place dans un article sur le portage agentique, c’est que le pipeline que CDPR a parcouru manuellement est celui-là même que l’assistant de portage orchestre désormais : environnement d’évaluation, Metal shader converter, MetalFX, validation par vérité terrain. Et Apple relie elle-même les deux, en concluant la session Cyberpunk par un renvoi des spectateurs vers « Réussissez le speedrun du portage de votre jeu grâce au codage agentique ».2

Le premier geste de CDPR a posé le schéma. « Avant de commencer à bâtir le chemin natif de Cyberpunk 2077 sur Mac, nous avons utilisé le Game Porting Toolkit d’Apple pour évaluer la build Windows dans un environnement traduit sur macOS. Cela nous a permis d’acquérir des informations précieuses avant d’écrire la moindre ligne de code. »2 Le studio a exécuté un ensemble prédéterminé de séquences de points chauds dans l’environnement d’évaluation et a lu chaque exécution sous trois angles : les données statistiques de temps par frame du profileur intégré au moteur, la corrélation du Metal HUD entre les événements de scène et la trace, et le profilage interne du moteur ventilé par thread.2 Les signaux étaient clairs tôt. Le temps GPU paraissait sain sur du matériel haut de gamme, tandis que la conduite dense en ville exposait la pression CPU comme le véritable point chaud. L’environnement a même signalé ses propres artefacts : une oscillation du temps par frame due à la traduction de shaders en direct et un middleware audio à l’air lourd, qui se sont tous deux résorbés dans les binaires natifs ; le Game Porting Toolkit les a identifiés, de sorte que CDPR savait qu’il fallait enquêter tôt.2 Reportez cela sur la phase discover de la session 357, où l’assistant récupère des captures de référence depuis le même environnement d’évaluation avant de planifier le moindre jalon, et l’héritage est direct.

C’est dans le peaufinage à la livraison que la version Mac se distingue, à commencer par le premier lancement. « For this Mac » est un système de préréglages graphiques basé sur l’appareil : il détecte le matériel de votre Mac et configure automatiquement les réglages pour cet appareil.2 CDPR a choisi des réglages par appareil qui préservent la fidélité de l’image, fixé des fréquences d’images cibles de 30 ou 60 FPS, fait tourner MetalFX avec un Dynamic Resolution Scaling entre des bornes de résolution minimale et maximale réglées, défini la VSync pour le frame pacing et activé le HDR selon la capacité de l’écran, puis réglé tout réglage restant par appareil dans une boucle mesurer-affiner-revalider.2 Sasko a fait la démo du résultat sur un MacBook Pro doté de la puce M5 Max : préréglage Ultra comme base, un verrouillage à 60 FPS avec VSync, un Dynamic Resolution Scaling rendant entre 50 et 80 pour cent d’une sortie de 2336x1460, tenant 60 FPS à travers le Black Market de Dogtown, l’une des zones les plus lourdes du jeu, avec les réglages d’origine.2 L’idée se répand : « d’autres développeurs commencent eux aussi à adopter les réglages “For this Mac” dans leurs jeux ».2

Le HDR est livré sans écran de calibrage. CDPR a implémenté le HDR via le pipeline Extended Dynamic Range d’Apple, en interrogeant maximumExtendedDynamicRangeColorComponentValue pour la valeur EDR maximale actuelle de l’écran et en la transmettant directement au tone mapper ; la valeur change selon le matériel d’affichage et les conditions, de sorte que le tone mapper suit toujours ce que la dalle peut réellement faire.2 Le HDR s’active par défaut lorsqu’un écran dispose de la marge nécessaire : le jeu vérifie maximumPotentialExtendedDynamicRangeColorComponentValue et active le HDR lorsque la valeur EDR potentielle maximale de l’écran dépasse 2.0.2

L’audio reçoit le même traitement activé par défaut. Le middleware de Cyberpunk implémente les API de son spatial d’Apple via AVAudioEngine, et CDPR a activé le suivi de la tête pour les AirPods en réglant la propriété listenerHeadTrackingEnabled de l’AVAudioEnvironmentNode sur true, activé par défaut sans configuration supplémentaire.2 Game Mode aide le même matériel : il donne aux jeux un accès prioritaire au CPU et au GPU et double la fréquence d’échantillonnage Bluetooth, réduisant la latence des manettes sans fil et de l’audio des AirPods, et macOS l’active automatiquement pour les applications classées comme jeux.2

Les chiffres de résultat closent le dossier pour la plateforme. Cyberpunk 2077 s’est vendu à 35 millions d’exemplaires toutes plateformes confondues, plus 10 millions d’exemplaires supplémentaires de Phantom Liberty, et Cyberpunk 2077: Ultimate Edition a remporté le titre de Jeu Mac de l’année aux App Store Awards 2025 d’Apple.2 Le résumé de Sasko est celui que les studios retiendront : « ce qui compte, ce n’est pas la quantité de travail que vous mettez dans quelque chose, mais le résultat pour nos joueurs ».2

Comment démarrer

Les deux sessions se composent en une séquence :

  1. Exécutez d’abord votre build Windows dans l’environnement d’évaluation. Aucun code requis, et l’environnement prend désormais en charge Metal 4 pour les tests de compatibilité et de performance.3 Suivez la lecture de CDPR : séquences de points chauds, statistiques de temps par frame, corrélation du Metal HUD et profilage CPU par thread, et traitez les artefacts de la couche de traduction comme des pistes signalées, non comme des verdicts.2
  2. Installez les compétences. Ajoutez la marketplace Game Porting Toolkit et installez le plugin ; dans Claude Code, l’enregistrement de la marketplace est /plugin marketplace add apple/game-porting-toolkit.13 Si vous ne savez pas quoi faire ensuite, demandez à l’assistant de portage ; sa première étape est la découverte.1
  3. Planifiez les jalons avec l’assistant et laissez la validation jalonner chacun d’eux. Lancement de l’application, validation Metal, comparaison des captures face à la vérité terrain, revue des anti-patterns et vérifications mémoire s’exécutent par jalon, et l’agent emporte ce qu’il a appris dans la session suivante.1
  4. Passez à macOS 27 pour la boucle de débogage. gpucapture et gpudebug donnent à l’agent une capture et une analyse de frame autonomes, et les extensions MetalFX du Metal HUD (affichage de l’exposition, nuage de points du jitter, surcharges en direct) localisent les bugs de l’upscaler pendant que le jeu tourne.1
  5. Empruntez la checklist de livraison de Cyberpunk. Un préréglage automatique de style « For this Mac » pour le premier lancement, un HDR auto-calibré piloté par EDR, activé par défaut au-delà de 2.0 de marge potentielle, et un son spatial avec suivi de la tête via listenerHeadTrackingEnabled.2

FAQ

Qu’ajoute exactement Game Porting Toolkit 4 pour les agents ?

Trois choses : des compétences expertes qui donnent à un agent de codage une connaissance de la plateforme, des bonnes pratiques et des alertes sur les anti-patterns à travers Metal 4, MetalFX, la compilation de shaders, les frameworks de plateforme et le débogage ; des compétences de workflow qui imposent un processus jalonné avec état persistant ; et un agent assistant de portage qui orchestre la méthodologie, en chargeant automatiquement les bonnes compétences expertes à chaque jalon au lieu d’en laisser le choix au modèle.13

Sur quel agent de codage tourne l’assistant de portage ?

La démo de la session d’Apple tourne entièrement sur Claude Code ; Srour déclare « utiliser Claude Code pour tout aujourd’hui ».1 Les compétences s’installent sous forme de plugin depuis la marketplace Game Porting Toolkit sur GitHub, et le dépôt organise sa documentation d’installation par agent de codage, avec la commande de marketplace de Claude Code documentée directement.3

Que sont gpucapture et gpudebug ?

De nouveaux outils en ligne de commande dans macOS 27. gpucapture capture une frame GPU depuis une application en cours d’exécution ; gpudebug analyse la capture, exposant les liaisons de ressources, les constantes, les contenus de ressources et le flux de données du pipeline qui exigeaient auparavant l’interface graphique de Xcode. Apple les a conçus pour que les workflows d’agent puissent être « entièrement autonomes » : un agent peut désormais aller d’un symptôme visuel à une cause racine puis à un correctif validé sans qu’un humain capture de frames.1

CD PROJEKT RED a-t-il utilisé les compétences agentiques pour porter Cyberpunk 2077 ?

Non. Le portage Mac de Cyberpunk 2077 a été un effort manuel, sorti et lauréat du titre de Jeu Mac de l’année aux App Store Awards 2025 d’Apple avant que les compétences agentiques de Game Porting Toolkit 4 n’existent.2 La pertinence va dans l’autre sens : le pipeline de CDPR (environnement d’évaluation d’abord, Metal shader converter, MetalFX avec Dynamic Resolution Scaling, validation visuelle par vérité terrain) est le mode opératoire même que l’assistant de portage exécute désormais avec un agent.12

Comment fonctionne le préréglage « For this Mac » ?

Il détecte le matériel du Mac du joueur et configure automatiquement les réglages graphiques et vidéo pour cet appareil : une cible de 30 ou 60 FPS, MetalFX avec Dynamic Resolution Scaling à l’intérieur de bornes de résolution réglées, la VSync, la résolution de sortie et le HDR selon la capacité de l’écran, chaque réglage restant étant ajusté à la main par appareil. Sur un MacBook Pro M5 Max, le préréglage prend Ultra comme base et tient un verrouillage à 60 FPS tout en rendant 50 à 80 pour cent de 2336x1460.2


Exécuter une IA agentique sur le Mac avec MLX couvre le volet inférence locale du travail agentique sur le Mac, et Xcode 27 est devenu agentique couvre le volet IDE ; Game Porting Toolkit 4 est le troisième pied, spécifique au portage de jeux. L’essentiel de Metal 4 décortique l’API que ciblent les compétences. Le hub complet de la série est la Série Apple Ecosystem.

Références


  1. Apple, WWDC 2026 session 357, Speedrun your game port with agentic coding. Source for Game Porting Toolkit 4’s expert skills, workflow skills, and porting assistant agent; plugin distribution from the Game Porting Toolkit marketplace on GitHub; the discover, plan, execute, validate workflow with auto-loaded skills, ground-truth captures, and cross-milestone memory; the gpucapture and gpudebug CLI tools in macOS 27; the Metal HUD MetalFX extensions (exposure display, jitter scatter plot with out-of-range red, live overrides); the MiniEngine D3D12-to-Metal 4 port; the Godot Metal 4 backend running in a few days; and the David Srour quotes, including “I am using Claude Code for everything today.” 

  2. Apple, WWDC 2026 session 356, Bringing Cyberpunk 2077 to Mac. Source for the evaluation-environment-first approach and its three profiling angles; the “For this Mac” device-based preset (30/60 FPS targets, MetalFX with Dynamic Resolution Scaling, VSync, HDR by display capability); the M5 Max demo (Ultra base, 60 FPS lock, 50-80 percent of 2336x1460); auto-calibrated HDR via maximumExtendedDynamicRangeColorComponentValue and the default-on check against maximumPotentialExtendedDynamicRangeColorComponentValue exceeding 2.0; head-tracked spatial audio via AVAudioEnvironmentNode.listenerHeadTrackingEnabled; Game Mode’s doubled Bluetooth sampling rate; the 35 million copies, 10 million Phantom Liberty, and Mac Game of the Year facts; speaker attribution for Garrett Austin (Apple Game Performance) and Paweł Sasko (CD PROJEKT RED); and the closing cross-reference to session 357. 

  3. Apple, game-porting-toolkit repository (“Resources for porting games and engines to Apple platforms”) and the Game Porting Toolkit product page. Source for the repository’s expert-skill coverage (Metal 4, MetalFX, shader compilation, platform frameworks, debugging tools) and workflow-skill state persistence, the Claude Code marketplace command /plugin marketplace add apple/game-porting-toolkit, per-agent install documentation, command-line access for Metal tools letting agents capture, debug, and profile Metal workloads, and the evaluation environment’s Metal 4 support. Verified 2026-06-09. 

Articles connexes

Metal pour le machine learning en 2026

La WWDC26 a fait de Metal une surface de calcul ML à part entière : tensors Metal pour les kernels personnalisés, le neu…

16 min de lecture

Le pattern Protégé

Un modele 7B avec acces expert sparse egale des agents 50x plus grands. Travail routinier aux petits modeles, jugements …

9 min de lecture