Ce projet comprend un serveur de jeu monothread écrit en C++. Le jeu est divisé en 3 composants principaux, le réseau, le monde du jeu et un middleware de communication.
Il utilise un protocole réseau UDP personnalisé dans lequel vous pouvez ajouter des indicateurs pour gérer les paquets importants, compenser les latences, récupérer ou mettre à jour les données manquées, renvoyer, etc...
Les joueurs pourront se connecter avec leur compte, créer et sélectionner des jeux dans le lobby, combattre des créatures, interagir avec des objets, recevoir des scores, expérimenter, améliorer leur statut, pour n'en citer que quelques-uns.
Un client Unity personnalisé écrit en C# a été utilisé pour interagir avec le serveur. La communication réseau est suivie de paquets réseau sérialisés. Le paquet est constitué d'un en-tête comprenant l'identifiant de l'utilisateur de l'ordinateur, un identifiant unique et un nombre, suivi d'un ou plusieurs en-têtes de message et de leurs données sérialisées respectives.
En dehors de la bibliothèque standard C++, de certaines bibliothèques boost et du connecteur mysql, l'ensemble du serveur est écrit à partir de zéro. Il gère sa propre mémoire pour des raisons de performances.
Il nécessite le connecteur boots::asio et mysql.
Un client Unity personnalisé écrit en C# a été utilisé pour interagir avec le serveur.
Bruno Miguel Boost Libraries Standard Library MySQL Multiplater Game Programming par Joshua Glazer et Sanjar Madhav Game Programming Patterns par Robert Nystrom
MIT
Photo prise lors du Heartland Game Contest où il a remporté la 2ème place par le jury et la 2ème place par le choix du public.
Création d'un compte.
Hall d'entrée.
En jeu.