PortfolioBlogÜber Mich
Kontakt

Verfügbare Multiplayer-Lösungen

Multiplayer verstehen – Teil III

7 Minuten Lesezeit

Aus den vorangegangenen Beiträgen wird klar, Multiplayer ist keine reine Hardware- oder Software-Angelegenheit. Es ist eine enge Verknüpfung von Beidem. Das spiegelt sich auch in den zur Verfügung stehenden Multiplayer-Lösungen wider. Ein Multiplayer-SDK wird immer zusammen mit einem dafür zugeschnittenen Hosting angeboten.

Darum möchte ich in diesem Beitrag zum einen auf die zur Verfügung stehenden Optionen eingehen und darüber hinaus einen Fragenkatalog zur Verfügung stellen, der Entwickler*innen dabei helfen kann, sich über die Anforderungen der eigenen Multiplayer-Anwendung bewusst zu werden.

Disclaimer: Der Artikel wurde 2024 geschrieben. Je nach Zeitpunkt sind die Angaben nicht mehr aktuell.

Bewertungskriterien

Software- und Hosting-Angebote erleichtern Entwickler*innen die Arbeit, indem sie einen modularen Ansatz verfolgen. Auch zu späteren Zeitpunkten können neue Features wie Freundeslisten, Highscore-Datenbanken, Anti-Cheat Maßnahmen, etc., ohne großen Aufwand hinzugefügt und wieder entfernt werden. Diese Möglichkeit unterstützt eine iterative Arbeitsweise, ohne ein zu großes Risiko einzugehen. Das Angebot der Lösungen unterscheidet sich vor allem in folgenden Punkten:

  • Skalierbarkeit. Eine gute Lösung muss in der Lage sein, eine große Anzahl gleichzeitiger Benutzer*innen zu verarbeiten und mit der wachsenden Benutzer*innen-Basis zu skalieren. Außerdem sollte sie Traffic-Spikes ohne Leistungseinbußen verkraften können.

  • Latenz. Multiuser-Anwendungen erfordern eine niedrige Latenz, um einen reibungslosen Ablauf zu gewährleisten. Eine gute Lösung sollte in der Lage sein, die Latenz zu verringern, indem sie eine schnelle Datenübertragung zwischen Benutzern und Spielserver gewährleistet.

  • Zuverlässigkeit. Multiuser erfordert eine zuverlässige Lösung, um sicherzustellen, dass die Anwendung immer verfügbar ist und die Benutzer*innen ohne Probleme eine Verbindung herstellen können. Sie sollte in der Lage sein, Fehler und Ausfälle zu bewältigen, ohne das Spiel zu beeinträchtigen, oder dass manuell eingegriffen werden muss.

  • Sicherheit. Eine gute Lösung sollte robuste Sicherheitsmaßnahmen bieten, um Betrug, Hacking und andere bösartige Aktivitäten zu verhindern, die das Erlebnis für die Benutzer*innen ruinieren können.

  • Flexibilität. Multiuser ist vielfältig und erfordern je nach Genre, Zielgruppe und Plattform unterschiedliche Features. Eine gute Lösung sollte flexibel und modular anpassbar sein, um die einzigartigen Anforderungen jeder Anwendung zu erfüllen.

  • Kosten. Schließlich sind die Kosten der Lösung ein entscheidender Faktor, den es zu berücksichtigen gilt. Sie sollte erschwinglich sein und ein gutes Preis-Leistungs-Verhältnis bieten, ohne Kompromisse bei Leistung, Zuverlässigkeit und Sicherheit einzugehen, welche die eigene Anwendung benötigt. Außerdem ist es wichtig in Erfahrung zu bringen, wie die Kosten mit dem Bedarf skalieren.

Verfügbare Anbieter

Diese folgenden Anbieter bieten eine breite Palette von Funktionen und Tools, die speziell auf die Entwicklung und den Betrieb von Multiplayer-Spielen ausgerichtet sind. Mit unserem Anwendungsfällen (Schulungen und Trainings) verfolgen wir zwar keinen rein spielerischen Ansatz, doch die Anforderungen sind meist dieselben. Die Wahl des richtigen Anbieters hängt stark von den spezifischen Anforderungen und dem Budget des Entwicklungsprojekts ab.

Folgende Anbieter stehen zur Auswahl.

Unity Gaming Services

  • Multiplayer Networking: Integrierte Tools für netzwerkbasierte Multiplayer-Spiele, einschließlich Transport Layer und Relay Services.

  • Matchmaking: Anpassbare Matchmaking-Dienste zur Erstellung und Verwaltung von Benutzersitzungen.

  • Game Server Hosting (Multiplay): Skalierbare und zuverlässige Serverhosting-Lösung mit Unterstützung für mehrere Regionen und Auto-Scaling.

  • Lobby Management: Verwaltung von Lobbys und Warteschlangen für eine bessere Benutzerfahrung.

  • Player Insights & Analytics: Tools zur Analyse des Benutzerverhaltens und zur Optimierung der Benutzerbindung.

  • Unity Integration: Zugeschnitten auf das Unity Framework und seine Komponenten.

Microsoft Azure Playfab

  • Backend Services: Skalierbare Cloud-Dienste für Speicherung, Authentifizierung, Leaderboards und Echtzeit-Analysen.

  • Multiplayer Features: Unterstützung für Matchmaking, Lobbys, und Party-Management.

  • LiveOps: Tools für LiveOps-Management wie Remote Config, A/B-Testing und In-Game-Messaging.

  • Analytics & Data: Echtzeit-Datenanalyse und Reporting für tiefere Einblicke in das Benutzerengagement.

  • Economy Management: Verwaltung von virtuellen Währungen, In-Game-Käufen und Inventar.

Amazon GameLift

  • Game Server Hosting: Hochverfügbarer und skalierbarer Serverhosting-Service mit Unterstützung für mehrere Regionen und Spot-Instanzen für kosteneffiziente Skalierung.

  • Matchmaking: Flexibles Matchmaking-System, das auf Amazon Web Services (AWS) basiert.

  • Autoscaling: Automatische Skalierung der Serverkapazitäten basierend auf der Nachfrage.

  • FleetIQ: Intelligente Verwaltung von Serverflotten zur Optimierung von Kosten und Leistung.

  • Game Analytics: Integration mit AWS-Diensten für erweiterte Analyse und Überwachung.

Agones

  • Open Source: Open-Source-Projekt für die Verwaltung und Skalierung von dedizierten Spiele-Servern basierend auf Kubernetes.

  • Kubernetes Integration: Nutzt Kubernetes zur Bereitstellung, Verwaltung und Skalierung von Game-Servern.

  • Custom Game Servers: Unterstützung für benutzerdefinierte Game-Server-Implementierungen.

  • Autoscaling: Anpassbare Auto-Scaling-Funktionen basierend auf Benutzeranzahl und Serverauslastung.

  • Extensibility: Hohe Anpassbarkeit und Integration in bestehende DevOps-Workflows.

Pragma

  • Backend Services: Komplettlösung für Multiplayer-Backend-Dienste, einschließlich Kontoverwaltung, Matchmaking und sozialen Features.

  • LiveOps Tools: Unterstützung für In-Game-Events, Content-Updates und Echtzeit-Player-Support.

  • Scalability: Entwickelt für hohe Skalierbarkeit und Leistung, geeignet für eine hohe Anzahl an Benutzer*innen.

  • Analytics: Eingebaute Analyse-Tools zur Überwachung und Optimierung des Benutzerengagements.

  • Customizable: Hohe Anpassungsfähigkeit zur Integration in bestehende Spielinfrastrukturen.

Photon

  • Real-time Multiplayer: Echtzeit-Multiplayer-Lösungen für verschiedene Plattformen, einschließlich Mobile, PC und Konsole.

  • Cloud Services: Photon Cloud bietet globale Serverinfrastruktur für geringe Latenz und hohe Verfügbarkeit.

  • PUN (Photon Unity Networking): Speziell für Unity entwickelte Netzwerk-Engine.

  • Voice and Chat: Integrierte Sprach- und Chat-Funktionen für verbesserte Benutzerkommunikation.

  • Flexible Pricing: Verschiedene Preismodelle, die sowohl kleinen Entwicklern als auch großen Studios gerecht werden.

Fragenkatalog zur Multiplayer-Lösung

Die Entwicklung einer Multiplayer-Anwendung ist eine komplexe Aufgabe, die sorgfältige Planung und strategische Entscheidungen erfordert. Bevor man mit der eigentlichen Implementierung beginnt, sollten Entwickler*innen eine Reihe von Fragen beantworten, die entscheidend für den Erfolg des Projekts sind. Diese Fragen beeinflussen sowohl die Wahl des Hostings als auch die Softwarelösungen für Multiplayer-Features.

Welche Art von Multiplayer-Erfahrung soll angeboten werden?

  • Ist es ein Echtzeit-Multiplayer-Spiel (z.B. Shooter, Rennspiel) oder ein asynchrones Multiplayer-Spiel (z.B. rundenbasierte Strategie)?

  • Die Antwort auf diese Frage bestimmt die Anforderungen an die Netzwerklatenz und die Synchronisationsmechanismen.

Wie viele Benutzer sollen gleichzeitig unterstützt werden?

  • Handelt es sich um kleine Matches mit wenigen Benutzer:innen oder um massive Multiplayer-Welten mit Tausenden von Benutzer:innen?

  • Diese Entscheidung beeinflusst die Skalierungsanforderungen und die Wahl der Hosting-Lösung.

Welche Plattformen werden unterstützt?

  • Werden Mobile, PC, Konsolen oder eine Kombination dieser Plattformen unterstützt?

  • Plattformübergreifende Unterstützung kann zusätzliche Anforderungen an das Networking und die Infrastruktur stellen.

Wie wird das Matchmaking organisiert?

  • Soll es ein einfaches Matchmaking basierend auf wenigen Parametern sein (z.B. einem Room-Code) oder ein komplexes System mit ELO-Bewertungen und Regionseinschränkungen?

  • Die Komplexität des Matchmaking-Systems bestimmt die Anforderungen an Backend-Dienste und Datenbanken.

Welche Sicherheitsmaßnahmen sind notwendig?

  • Welche Maßnahmen sind notwendig, um Cheating und Manipulation zu verhindern?

  • Sicherheitsanforderungen können die Wahl der Authentifizierungsdienste und die Implementierung zusätzlicher Sicherheitsprotokolle am Server beeinflussen. Auch entscheiden Sicherheitsanforderungen den grundsätzlichen Umgang mit der Frage, wer Autorität über den Game-State hat.

Welche Art von Kommunikation und sozialen Features sind geplant?

  • Wird es In-Game-Voice-Chat, Text-Chat oder andere soziale Interaktionen geben?

  • Diese Features erfordern spezielle Middleware-Lösungen und beeinflussen die Netzwerkinfrastruktur.

Den ersten Schritt wagen

Die Entwicklung von Multiplayer- oder Multiuser-Anwendungen stellt eine komplexe und faszinierende Herausforderung dar, insbesondere im Kontext von XR-Anwendungen. Die Artikelreihe beleuchtet umfassend die vielfältigen Aspekte, die Entwickler*innen berücksichtigen müssen, um eine erfolgreiche Multiplayer-Erfahrung zu schaffen.

Multiplayer bedeutet im Wesentlichen die Synchronisierung eines gemeinsamen Spielzustands über ein Netzwerk, wobei nur die wesentlichen Objekte, die das Gameplay beeinflussen, kontinuierlich synchronisiert werden müssen. Diese sorgfältige Auswahl hilft, die Datenmenge zu minimieren und die Netzwerkleistung zu optimieren.

Die Implementierung von Multiplayer-Features erfordert eine frühzeitige Festlegung auf bestimmte Rahmenbedingungen, da spätere Änderungen zeitaufwändig und kostspielig sein können. Der Entwicklungsprozess wird durch die Notwendigkeit der Synchronisierung und der Sicherstellung einer niedrigen Latenz verlangsamt und eingeschränkt. Dennoch gibt es zahlreiche Werkzeuge und SDKs, die den Entwicklungsprozess unterstützen und erleichtern können.

Ein weiterer wichtiger Aspekt ist die Autorität über den Spielzustand. Standardmäßig verfolgen viele Multiplayer-SDKs einen serverbasierten Ansatz, um Cheating zu verhindern und eine zuverlässige Synchronisierung zu gewährleisten. Dies führt jedoch zu Latenzproblemen, die durch Techniken wie Client-Side-Prediction gemindert werden können.

Die Wahl der Netzwerk-Topologie und der entsprechenden Softwarelösungen hängt stark von den spezifischen Anforderungen der Anwendung ab. Von Peer-to-Peer-Netzwerken bis hin zu dedizierten Servern bieten verschiedene Ansätze unterschiedliche Vor- und Nachteile bezüglich Kosten, Skalierbarkeit, Sicherheit und Fairness.


Abschließend lässt sich sagen, dass die Integration von Multiplayer-Features eine sorgfältige Planung und strategische Entscheidungen erfordert. Die Verfügbarkeit einer breiten Palette von SDKs und Hosting-Lösungen ermöglicht es Entwickler*innen maßgeschneiderte Lösungen für ihre spezifischen Anforderungen zu finden und somit die bestmögliche Multiplayer-Erfahrung zu schaffen