TyphoonMC — Moteur serveur Minecraft from scratch en Go
Projet open source : un moteur de serveur Minecraft réécrit from scratch en Go, léger, utilisé en production sur le réseau Endariel.
- Go
- Protocole Minecraft
- GitHub OSS
› go · tick loop · open source
Contexte
Le serveur Minecraft officiel est en Java, et c’est lourd. Pour un réseau de jeux comme Endariel, qui a tourné jusqu’à 100 000+ joueurs uniques, chaque cycle CPU compte. TyphoonMC est né de l’envie de réimplémenter le strict nécessaire du protocole en Go, en gardant un footprint mémoire minimal et une boucle de tick propre.
Au-delà du gain technique, c’est aussi un terrain de jeu OSS : le protocole Minecraft est documenté de façon partielle, change à chaque version majeure, et expose des cas tordus (compression conditionnelle, encryption optionnelle, paquets variables). Implémenter ça proprement, c’est un exercice d’archi serveur low-level.
Mon rôle
Mainteneur. C’est mon projet personnel, j’ai écrit le moteur, suivi l’évolution du protocole et accepté les contributions externes.
Ce que j’ai construit
- TyphoonCore : le moteur de serveur Minecraft en Go, conçu pour être léger et embarquable
- Implémentation du protocole Minecraft (handshake, login, play state, packets jeu)
- Boucle de tick stable autour des 20 TPS attendus par les clients vanilla
- Utilisation en production sur Endariel, le réseau Minecraft que je co-maintenais à l’époque
- Tenue d’un projet OSS dans la durée : issues, PRs externes, releases versionnées
Le point dur : le protocole Minecraft est une cible mouvante. Chaque version majeure du jeu déplace les paquets, change les enums, casse la rétro-compatibilité. Maintenir un moteur tiers, c’est faire de la veille protocole en continu.
Résultats
90+ stars sur GitHub. Utilisé en production par Endariel, qui a servi 100 000+ joueurs uniques sur la durée du projet. Projet maintenu sur 5 ans avant d’être archivé, ce qui n’est pas évident pour un side project de protocole de jeu.