EVE Online open source son moteur Carbon sous licence MIT
Ah, EVE Online. Ce jeu où les joueurs s’entretuent à coups de missiles Rattlesnake pendant 14 heures d’affilée dans un système à moitié désert. Vous vous souvenez de FWST-8 en 2020 ? Moi oui. Et devinez quoi ? Le moteur qui a survécu à ce massacre de nerds vient de passer en open source. Avec licence MIT en prime. Autant dire que les développeurs du monde entier ont reçu un cadeau de Noël… en plein mois de mai.
Je parle du moteur Carbon, ce monument technique qui tourne en production depuis vingt ans. Fenris Creations (ex-CCP Games) a balancé 33 dépôts GitHub, dont 30 sous licence MIT. Trinity pour le rendu, Destiny pour la physique des vaisseaux, et même une bibliothèque C++ pour calculer des itinéraires sur la carte du jeu. Oui, tout ça, c’est maintenant public. Et non, je ne vous donnerai pas le lien tout de suite… histoire de vous faire lire l’article jusqu’au bout.
Un moteur qui a survécu à un bain de sang virtuel
En 2020, le système FWST-8 a été le théâtre d’une bataille épique. 8 825 joueurs concentrés sur une seule zone, pendant 14 heures. Le genre de situation qui fait trembler un moteur de jeu en temps réel. Carbon a tenu. Pas une fois, pas deux… mais vingt ans. Et ça, c’est du solide. Moi qui ai vu des serveurs de messagerie s’effondrer à cause d’une mise à jour Windows, je vous le dis : ces gars-là savent coder.
Mine de rien, Carbon n’est pas un moteur comme les autres. Il est optimisé pour gérer des milliers d’entités en simultané, avec une physique qui ne lâche jamais. Les vaisseaux d’EVE, vous savez ? Ces monstres qui pèsent des tonnes et qui tournent comme des fous dans l’espace. Destiny, le module de simulation, gère tout ça. Et il le fait depuis deux décennies. Pour être honnête, je n’ai jamais vu un moteur de jeu tenir aussi longtemps sans s’écrouler sous sa propre complexité. Sauf peut-être le code legacy d’une vieille appli bancaire… mais ça, c’est une autre histoire.
Un cadeau empoisonné ?
Attendez, avant de vous précipiter pour cloner les dépôts, sachez une chose : 30 dépôts sur 33 sont sous licence MIT. Mais l’un d’eux… ne compile pas. Oui, vous avez bien lu. Un dépôt qui ne compile pas. Autant dire que les développeurs d’EVE ont dû se dire : « Bon, on balance tout, même le bordel. »
Pour moi, c’est un peu comme offrir une voiture sans roues en disant « Débrouillez-vous ». Mais bon, après tout, c’est open source. Si vous voulez bidouiller, c’est votre problème. Moi, à votre place, je commencerais par vérifier que Trinity compile avant d’essayer de lancer un vaisseau dans l’espace. Parce que si vous vous retrouvez avec un segmentation fault à la troisième ligne de code, vous allez pleurer.
Pourquoi ce geste compte (ou pas)
Alors, est-ce que cette initiative d’EVE Online est une révolution ? Pas vraiment. Les géants du jeu vidéo ouvrent rarement leurs moteurs. Même id Software avec Doom a attendu des années avant de balancer le code source. Mais Carbon, lui, a 20 ans. C’est un dinosaure. Un dinosaure qui survit à des batailles de 14 heures. Et ça, c’est impressionnant.
Pour être honnête, je ne m’attends pas à voir une communauté de développeurs se ruer sur ces dépôts pour en faire des jeux open source. Non, parce que la plupart des jeux modernes ne reposent pas sur des moteurs monolithiques comme Carbon. Ils utilisent Unity, Unreal, ou des solutions cloud. Mais pour les nostalgiques, les étudiants en informatique, ou les masochistes qui aiment se battre avec du C++ legacy… ce code est une mine d’or.
Et puis, avouons-le : voir un studio qui a survécu à deux décennies de guerres spatiales et de bugs monstres balancer son code, c’est un peu rafraîchissant. Ça rappelle que même les projets les plus fous peuvent tenir debout. Même quand 8 000 joueurs hurlent dans le même serveur.
Carbon pour les nuls : ce que vous pouvez en faire
- Trinity : Le moteur de rendu. Si vous voulez comprendre comment on fait tourner des vaisseaux en 3D sans que tout crash, c’est ici que ça se passe. Attention, ça date de l’époque où le shader était un concept abstrait pour beaucoup.
- Destiny : La physique des vaisseaux. Oui, ces vaisseaux qui tournent comme des toupies quand ils sont sous l’effet d’un tackle. Destiny, c’est le cerveau derrière tout ça.
- La bibliothèque d’itinéraires : Parce que même dans EVE Online, il faut bien savoir où aller. Et non, ce n’est pas aussi simple que de cliquer sur la carte.
Pour les autres dépôts, je vous laisse explorer. Mais sachez une chose : la plupart de ce code a été écrit à une époque où le C++ standard était encore en version 0.01. Si vous n’avez jamais vu du code legacy qui pue, préparez-vous à un choc.
Mon avis de technicien indépendant (qui en a vu, des horreurs)
Je vais être franc : je ne suis pas sûr que Carbon soit utilisable tel quel pour un nouveau projet. Non pas parce que c’est mal codé (enfin, peut-être un peu), mais parce que c’est un monstre. Un monstre qui a évolué pendant 20 ans, avec des patches, des hacks, et des solutions de contournement à la noix. Si vous voulez l’intégrer dans un jeu moderne, préparez-vous à dépenser des semaines à tout nettoyer.
Mais bon, d’un autre côté… est-ce que c’est pas ça, le vrai génie du code open source ? Le fait qu’un bout de code vieux de 20 ans puisse encore servir, même à des développeurs qui n’ont pas connu l’époque des disquettes ? Oui. C’est ça, la beauté du MIT. Libre, gratuit, et potentiellement utile à quelqu’un.
Après, si vous voulez mon conseil en tant que technicien qui a réparé plus de PC que de vaisseaux dans EVE Online : testez avant de vous engager. Parce que si vous clonez Carbon et que vous essayez de le compiler sur un PC moderne, vous allez peut-être vous retrouver avec un segfault. Et ça, c’est moins rigolo qu’une bataille de 14 heures.
Le mot de la fin (ou presque)
EVE Online nous offre donc 33 dépôts GitHub, dont 30 sous licence MIT. C’est cool. C’est geek. C’est un peu comme si on nous disait : « Voilà, prenez ce vieux moteur de Formule 1 qui a couru en 2004, et faites-en une voiture de course moderne. » Bon courage.
Moi, ce qui m’intéresse le plus, c’est de voir si quelqu’un va oser s’en servir. Pas pour refaire EVE Online, non. Peut-être pour un petit jeu indie. Ou pour comprendre comment on gère des milliers d’objets en temps réel sans tout faire planter. Parce que après tout, c’est ça, le vrai défi. Pas le code. Le code, on sait le faire. Le défi, c’est de le faire tenir debout.
Alors, prêts à plonger dans ce code legacy ? Moi, je retourne à mon client qui m’appelle parce que sa mise à jour Windows a encore tout cassé. Bon courage à vous.
Pour aller plus loin : le code source d’EVE Online
Si après tout ça vous êtes toujours motivé, voici le lien vers l’article original qui a inspiré ce billet :
EVE Online : le moteur Carbon passe en open source
Source : article original