Lass uns wie in guten alten Zeiten um das digitale Lagerfeuer versammeln und Spiel und Spass haben.
31. Oktober 2023
Rico Krebs
Management Summary
Das CampFire Lobby-System soll eine Erweiterung der existierenden Multiplayer-Funktionen in Godot sein. Godot ist eine Open-Source-Gaming-Engine. Godot hat mit der v4.0 ein neues Scene-Replication-System integriert, welches das Synchronisieren von Game State vereinfacht. Und bietet mit dieser Erweiterung ein sehr umfangreiches Toolset, um einfach und schnell ein Multiplayer-Spiel umsetzen zu können. Eine Funktion fehlt allerdings nach. Ein einfacher Weg, dass sich Spieler finden können, um eine Spielsitzung zu starten. Mein Projekt, das CampFire Lobby-System, soll genau das erleichtern. Mit diesem System ist es einem Game-Developer möglich, mit geringem Aufwand ein Multiplayer-Spiel mit User-Accounts und Game-Lobby zu erstellen.
Das System besteht aus einer Server-Applikation, die in einer Docker-Umgebung eingesetzt werden soll. Damit bieten sich viele Möglichkeiten von einer einzelnen Instanz auf einem Server bis zu einem skalierbaren System umgesetzt in Kubernetes.
Auf der Game-Client-Seite besteht das System aus dem CampFireClient, einem Godot-Addon, welches den Login und die Kommunikation mit dem Server implementiert. Das Addon kommt mit einem rudimentären GUI-Beispiel, die Idee ist jedoch, dass der Entwickler das Addon-Interface benutzt, um eine eigene, auf sein Game und Artstil angepasste GUI zu implementieren.
Über das System können User dann einfach Lobbys eröffnen und beitreten. Das System ist primär für Indie-Developers angedacht, und um Kosten in Serverhosting zu sparen, ist die Ingame-Multiplayer-Kommunikation über eine Peer-to-Peer-Verbindung gelöst. Diese wird vom System automatisch aufgebaut, sobald man einer Lobby beitritt.
1/2System übersicht
2/2Beispiel UI Lobby Browser
1/2System übersicht
2/2Beispiel UI Lobby Browser
Ergebnisse:
Das CampFier Lobby-System bietet Benutzer Account.
Eingeloggte Benutzer können in einem öffentlichen Chat miteinander chatten.
Sie können Lobbys erstellen, durch eine Liste aller verfügbaren Lobbys sehen und einer beitreten.
Wenn man einer Lobby beigetreten ist, wird das System eine
WebRTC-Verbindung zu den anderen Spielern aufbauen. An diesem Punkt hat das System eine standardmäßige WebRTCMultiplayerPeer-Verbindung aufgebaut. Das heißt, von hier aus kann man in der Entwicklung des Spiels die Standard-Multiplayer-API-Funktionen verwenden.
Diese Funktionen werden in Form einer Server-App und eines Godot-Add-Ons bereitgestellt.
Das Projekt ist vor allem für Indie-Entwickler gedacht. Daher wurde für die In-Game-Netzwerkkommunikation WebRTC verwendet. WebRTC ist eine Technologie, die unter anderem für Videokonferenzen oder Dateiaustausch verwendet wird. Statt dass die Daten von einem User-Client über einen Server an einen anderen User-Client gesendet werden, wird hier eine direkte Verbindung von Client zu Client aufgebaut. Dadurch werden dem Entwickler Server-Hosting-Kosten gespart.
Dieses gesamte System besteht aus einer Serveranwendung, die als Docker-Image zur Verfügung gestellt wird. Dieses Image kann auf verschiedenen Cloud-Anbietern installiert werden, entweder direkt oder mit Docker-Verwaltungstools wie Kubernetes für mehr Kontrolle und Skalierbarkeit. Auf der Clientseite gibt es ein Godot-Add-On, das die Kommunikation mit dem Server verwaltet. Mit dem Add-On kommt auch ein Beispiel-User-Interface, die Idee ist jedoch, dass man eine eigene, an sein Spiel und seinen Art-Stil angepasste Benutzeroberfläche erstellt.
Rico KrebsIch habe eine Lehre als Automatiker bei der Ferag gemacht. Anschliessend durfte ich weiter bei der Ferag arbeiten, in der Softwareabteilung, wo ich SPS-Steuerung für unsere Maschinen programmierte. Um meine Skills weiterzuentwickeln, habe ich mich entschieden, diese Weiterbildung zu machen. Auch in meiner Freizeit bin ich sehr an Softwareentwicklung, vor allem im Bereich Gameentwicklung, interessiert.