Vanis2.io
Jeu multijoueur en ligne
Quand Vanis.io a fermé, j'ai reconstruit le jeu de zéro. Les mécaniques sont identiques à l'original, mais le moteur est désormais écrit en C++ et chaque tick est jusqu'à quatorze fois plus rapide.
- Rôle
- Créateur
- Période
- Depuis octobre 2026
- Technologies
- C++20, uWebSockets, Vue, PixiJS, PostgreSQL, TypeScript
- Liens
- vanis2.io


Le projet
Je joue à ce type de jeu depuis huit ans, d'Agar.io à Vanis.io en passant par Alis.io et Gaver.io. C'est aussi là que j'ai rencontré une bonne partie de mes amis en ligne. Quand Vanis.io a fermé à son tour, j'ai décidé de le reconstruire entièrement.
Les mécaniques de jeu sont strictement identiques à celles de l'original et seule l'interface a été redessinée. Tout le reste a été réécrit pour être plus rapide et plus stable, et la communauté d'origine revient peu à peu.
- plus rapide par tick
- ×14
- moins de mémoire
- ×10
- ticks par seconde
- 25
- tests automatisés
- 12 000+


Le moteur
Le serveur de jeu est écrit en C++20 avec uWebSockets. Il calcule 25 ticks par seconde, découpe la carte avec un quadtree et répartit le calcul de la vue de chaque joueur sur plusieurs threads.
Le protocole réseau est binaire et compte 55 types de messages. Pour reproduire exactement le comportement du jeu d'origine, les fonctions mathématiques et le générateur aléatoire de V8 ont été portés en C++. Vingt-trois parties enregistrées sont rejouées au bit près à chaque série de tests.
| Temps moyen par tick | Ancien serveur | Moteur C++ |
|---|---|---|
| Mode Terasplit avec 70 bots | 44,27 ms | 3,14 ms |
| Mode Gigasplit | 20,59 ms | 4,05 ms |
| Mode FFA | 12,56 ms | 3,67 ms |
| Mémoire utilisée | 214 à 267 Mo | 15 à 27 Mo |
Autour du jeu
Le client est développé en Vue 3 avec PixiJS pour le rendu. Une API en Express et PostgreSQL gère les comptes, les skins, les saisons et les classements. Un bot Discord administre la communauté et transforme n'importe quelle partie enregistrée en vidéo.