Tous les projets
Infrastructure & DevOps

SeaTyrants GameServer — Infrastructure MMORPG

Game server UDP haute fréquence sur Kubernetes

Une infra MMORPG qui tient le 128 Hz, map par map, derrière un proxy UDP.

Le besoin client

Contexte

SeaTyrants est un MMORPG temps réel qui doit gérer des milliers de joueurs avec une latence faible et une cadence serveur élevée.

Problème

Pas d'infra capable de découper les maps, maintenir le 128 Hz par tick et router le trafic UDP de manière scalable.

Objectif

Construire une infrastructure Kubernetes capable de scaler par map et de tenir le temps réel sur le réseau UDP.

Les enjeux

  • Tenir une cadence de 128 ticks par seconde côté serveur

  • Scaler horizontalement carte par carte

  • Router le trafic UDP de manière fiable et performante

  • Gérer la concurrence (mutex, multi-threading) sans casser la cadence

La solution proposée

Ce qui a été construit

Une infra Kubernetes où chaque map du jeu correspond à un pod dédié, alimentée par un serveur UDP fork de ENET, un bus NATS event-driven et un proxy UDP Quilkin en frontal.

Pourquoi ce choix

Découper par map permet de scaler indépendamment, Quilkin gère le routage UDP, NATS découple les services et ENET reste l'un des protocoles UDP les plus solides pour le jeu temps réel.

Comment ça répond au besoin

Un pod par map, multi-threading et mutex côté processus de jeu, NATS pour les événements transverses, Quilkin pour le routage UDP, load balancers côté infra pour absorber la charge.

Les fonctionnalités clés

  • Un pod Kubernetes par map de jeu

  • Serveur UDP basé sur un fork de ENET

  • Cadence serveur à 128 Hz par tick

  • Bus d'événements NATS pour la communication inter-services

  • Proxy UDP Quilkin et load balancers côté infrastructure

  • Synchronisation par mutex et multi-threading

Les résultats

  • Infra capable de tenir le temps réel pour un MMORPG

  • Scalabilité par map sans casser la cadence serveur

  • Architecture event-driven prête à évoluer

Stack technique

Choix techniques utilisés sur ce projet.

KubernetesENET (fork)C / C++NATSQuilkinDockerLinux

Vous avez un besoin similaire ?

Parlons de votre projet. Je vous aide à transposer cette approche à votre propre contexte.