Tomasz Nurkiewicz explique comment il a réécrit un jeu C++ en Go

Par:
francoistonic

lun, 08/06/2026 - 11:53

Tomasz a publié un très intéressant REX sur la réécriture d'un jeu écrit en C++ / OpenGL, il y a 20 ans. CuTe est un Tetris 3D utilisant C++, OpenGL, WinAPI, Boost, le tout compilé avec Visual Studio 2005 sur Windows XP. Bref, la stack technique commune en 2005. Il a repris le source C++ et demandé à Claude Code : "réécris ceci en Go, remplace OpenGL par quelque chose de portable, mais tout cela doit fonctionner."

Le code représente 3 000 lignes, avec un code OpenGL personnalisé et un usage intensif de Boost 1.33. L'architecture était plusieurs fois faite et la réécriture ne doit pas la modifier :

- moteur pour la logique du jeu et la gestion des objets

- engineExt : pour les animations

- GLEngine : pour le rendu OpenGL

- game : composition des scènes, mode caméra

Avec la fin d'OpenGL sur macOS, il fallait une nouvelle couche graphique qui soit portable : le choix s'est arrêté sur raylib-go. Le code n'a rien à voir. 

Comme l'explique le développeur, le 1er test réalisé par Claude Code a réussi à "comprendre" la logique 3D et à générer 750 lignes. "Bien que j'aie demandé à ce que l'intégralité du code soit portée en Go, Claude Code a simplement estimé que certaines fonctionnalités n'en valaient pas la peine. Je me suis senti un peu vexé..." explique Tomasz. 

Il poursuit "Même si je comprends que certains choix de conception étaient discutables (chiffrement XOR, format de ressources personnalisé, analyseur XML personnalisé), je ne pense pas que cela justifie que Claude les abandonne purement et simplement. Fais juste ce pour quoi je te paie !

Ce qui ressort de cette expérience :

- la séparation des couches dans le code initial a permis à Claude de porter chaque couche. Le moteur du jeu a été réécrit en Go avec le même principe

- les difficultés se sont cachées dans l'expérience du jeu, les spécifications dans les scènes et les objets 3D. Ces éléments sont peu ou pas visibles même quand on lit le code

- l'approche itérative s'est révélée être une meilleure approche que de vouloir faire d'un seul bloc

Source : https://nurkiewicz.com/2026/06/rewriting-cpp-opengl-game-in-go.html