À propos du projet
GoWorld est un moteur de jeu serveur distribué et évolutif écrit en Golang, conçu pour créer des jeux multijoueurs en ligne. Il dispose d'un cadre d'entités où les joueurs, monstres et PNJ sont représentés comme des entités. Les entités dans le même espace peuvent interagir directement via des appels de méthodes ou l'accès aux attributs, tandis que les entités dans des espaces différents communiquent via RPC.
L'architecture du serveur se compose d'un répartiteur, d'un ou plusieurs processus de jeu, et d'un ou plusieurs processus de passerelle. Les passerelles gèrent les connexions clients et la transmission de paquets, les jeux gèrent les entités et exécutent la logique de jeu, et le répartiteur achemine les paquets entre les jeux et les passerelles. Une fonctionnalité clé est le remplacement à chaud : les processus de jeu peuvent être rechargés en envoyant SIGHUP et en redémarrant avec le paramètre -restore, permettant des mises à jour de la logique côté serveur sans perturbation significative pour les joueurs.
GoWorld prend en charge plusieurs protocoles de communication, notamment TCP, KCP et WebSocket, et offre une compression du trafic et un chiffrement entre les clients et les serveurs. Il inclut un outil en ligne de commande 'goworld' pour construire, démarrer, arrêter et recharger les serveurs. Le dépôt fournit des démos telles qu'un salon de discussion et un jeu de tir multijoueur basé sur Unity, avec des clients en JavaScript (Cocos Creator) et C# (Unity).
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.