Dieses Projekt umfasst einen in C++ geschriebenen Single-Threaded-Spieleserver. Das Spiel ist in drei Hauptkomponenten unterteilt: das Netzwerk, die Spielwelt und eine Kommunikations-Middleware.
Es verwendet ein angepasstes UDP-Netzwerkprotokoll, in dem Sie Flags hinzufügen können, um wichtige Pakete zu verarbeiten, Latenzen auszugleichen, verpasste Daten wiederherzustellen oder zu aktualisieren, erneut zu senden usw.
Spieler können sich mit ihrem Konto anmelden, Spiele in der Lobby erstellen und auswählen, gegen Kreaturen kämpfen, mit Gegenständen interagieren, Punkte sammeln, Erfahrungen sammeln, ihren Status verbessern, um nur einige zu nennen.
Für die Interaktion mit dem Server wurde ein benutzerdefinierter, in C# geschriebener Unity-Client verwendet. Auf die Netzwerkkommunikation folgen serialisierte Netzwerkpakete. Das Paket besteht aus einem Header, der die Computerbenutzer-ID, eine eindeutige Kennung und eine Nummernanzahl enthält, gefolgt von einem einzelnen oder mehreren Nachrichtenheadern und ihren jeweiligen serialisierten Daten.
Abgesehen von der C++-Standardbibliothek, einigen Boost-Bibliotheken und dem MySQL-Connector wurde der gesamte Server von Grund auf neu geschrieben. Aus Leistungsgründen verwaltet es seinen eigenen Speicher.
Es erfordert boots::asio und einen MySQL-Connector.
Für die Interaktion mit dem Server wurde ein benutzerdefinierter, in C# geschriebener Unity-Client verwendet.
Bruno Miguel Boost Libraries Standardbibliothek MySQL Multiplater Game Programming von Joshua Glazer und Sanjar Madhav Game Programming Patterns von Robert Nystrom
MIT
Das Bild wurde beim Heartland Game Contest aufgenommen, wo es von der Jury mit dem 2. Platz und durch die Wahl des Publikums mit dem 2. Platz ausgezeichnet wurde.
Erstellen eines Kontos.
Lobby.
Im Spiel.