Online Multiplayer Anwendungen erstellen

Mehrspieler Anwendungen sind überall zu finden, den die Multiplayer-Funktion ist ein Grundpfeiler von AAA-Spielen und kleinen Indie-Angeboten gleichermaßen. Multiplayer-Anwendungen zapfen unsere grundlegendste Sehnsucht der Menschheit an. Ob du dich mit Fremden im VRChat zusammentust, um über verrückte Geschichten aus dem Leben zu reden, oder ob du in der Mittagspause mit Arbeitskollegen eine Runde Call Of Duty Mobile auf deiner Lieblingskarte im Squad-Modus spielst. An dieses Gefühl mit oder auch gegen einen anderen echten Menschen zu spielen kommt auch keine künstliche Intelligenz.

Durch die weite Verbreitung von schnellem Internet hat sich auch die Unterhaltungsindustrie gewandelt. Videospiele werden immer mehr zu Servicegames und bestehen oftmals nur noch aus einem Mehrspielermodus. Doch was macht über eine Multiplayer Anwendung aus und wie kannst du dir deine eigene Multiplayer Anwendung erstellen?

Multiplayer Modus

Sobald sich mehr als ein Spieler innerhalb einer Scene befindet, kannst du von Multiplayer sprechen. Die jüngere Generation verbindet das Wort Multiplayer aber auch automatisch mit dem Internet. Es gibt  jedoch noch eine andere Möglichkeit des Erlebens von virtuellen Inhalten mit mehreren Personen:

  • Online Multiplayer: Hierfür ist eine Verbindung zum Internet notwendig. Die Spieler verbinden sich dann mit einem Server oder direkt mit den anderen Spielern.
  • Offline Multiplayer: Ohne Internetverbindung findet es lokal auf dem Gerät statt. Abhängig vom Spiel ist es dabei möglich miteinander oder auch gegeneinander zu spielen.
    • Same-Screen: Eine solche Anwendung war beispielsweise Pong, man konnte sich nicht nur mit einem computergesteuerten Gegner messen, sondern auch mit einem zweiten Spieler der neben einem sitzt
    • Split-Screen: Jeder Spieler hat einen Bildausschnitt mit dem Spielgeschehen auf dem Bildschirm. Manche Anwendungen machten es möglich dies mit bis zu vier Spielern zu erleben. Bekannte Beispiele sind Need For Speed oder auch Halo
    • Hotseat: Einige Spiele bieten die Möglichkeit, dass Spieler abwechselnd an der Reihe sind. Dies geht auch mit nur einem Controller wie z. B. beim rundenbasierten Spiel Worms.

Architektur

Der Aufbau einer Online Multiplayer Anwendung ist für das Spielerlebnis essentiell. Die Architektur ist für die Kontrolle der Daten zuständig und die verschiedenen Modelle haben ihre Vor- und Nachteile.

  • Client-Server: zentralisiert, der Server hat die Kontrolle und die einzelnen Clients (Spieler) sind primär für die Eingabe von Befehlen zuständig.
  • Peer to peer (P2P): dezentralisiert, jeder einzelne Client kontrolliert seine individuellen Aktionen und sende diese an die anderen Clients weiter. Ein Server ist hierbei nicht notwendig.
  • Hybrid: kombination, durch den Einsatz eines Master Clients und einen Servers. Der Master Client übernimmt die Rolle des Servers und kümmter sich um die Synchronisierung zwischen den einzelnen Clients die mit dem Server verbunden sind. Der Sever dient hierbei als Vermittler der Datenpakete und kann auch als Kontrollorgan eingesetzt werden.

Transportprotokolle

Um die Daten z. B. Eingabe des Spielers über einen Controller an das Netzwerk weiterzugeben ist ein Transportprotokoll notwendig, solche Protokolle sind TCP und UDP. Die beiden Protokolle unterschieden sich vor allem für Multiplayer Anwendungen auf Basis von Zuverlässigkeit, Verbindung, Retransmission, Sequenzierung, Quittierung und Geschwindigkeit.

Datentransfer verstehen

Nicht alle zu versendenden Datenpakte sind mit gleicher Priorität zu behandeln. Es gibt hierfür unterschiedliche Ansätze, wann du in deiner Anwendung was tun solltest.

  • Sehr genau: Statusänderungen am Spiel, Änderung der Karte oder des Levels
  • Sehr genau mit Interpolation: Position, Rotation und Animation
  • Genau: Synchronisation kaum notwendig z. B. bei einer Rundenzeit die mit dem Spiel startet
  • Genau aber verzögert: Verwendung von Daten aus der Vergangenheit z. B. Ghost Car von einem vorherigem Spieler
  • Locker: Daten die nicht zwigend bei jeden Spieler gleich sein müssen
  • Sehr locker: Ergebnisse die bereits verarbeitet wurden, aber der Client später empfängt

Multiplayer Anwendungen entwickeln

Die Entwicklung deiner eigenen Multiplayer-Anwendung, ganz egal ob diese ein Spiel oder App sein wird muss gut geplant sein. Stelle dir also zu Beginn die folgenden Fragen:

  • Welche Art von Multiplayer Anwendung entwickle ich?
  • Wie viele Nutzer erwartest ich monatlich?
  • Welches Sicherheitslevel ist notwendig?
  • Welche Server Probleme treten auf und kann ich sie selbst beheben?
  • Möchte ich eine Lösung die einfach nur funktioniert?

Wie kompliziert ist es?

Fragen bezüglich der Komplexität bei der Erstellung einer Multiplayer Anwendung können nicht immer gleich beantwortet werden. Geht man nur rein von der Multiplayer-Komponente aus, dann sind Multiplayer-Anwendung keine leichte Aufgabe. Dies hängt vor allem damit zusammen, dass es viele Stolperfallen und ungewissen Parameter gibt. Richtig gute Multiplayer Anwendungen sind also äußerst schwer zu entwickeln, möchtest du aber mit einem kleinen Projekt beginnen, dann bekommst du das mit den richtigen Werkzeugen auch alleine hin.

Was benötige ich?

Um deine eigene Online Multiplayer Anwendung zu erstellen, ist es wichtig, dass du die Möglichkeiten und Software Lösungen im Überblick kennst. Starte auf keinen Fall bei Null und programmiere dir alles selbst, denn somit würdest du dir dein Vorhaben nur unnötig erschweren und verkomplizieren. Der Aufbau der Anwendung kann in drei Kernkomponenten und zwei Add-On-Komponenten unterteilt werden:

  1. Engine: Entscheide dich für den Motor der deine Anwendung antreibt. Hier hast du verschiedene Möglichkeiten wie z. B. Unity oder Unreal. Viele der Multiplayer SDKs unterstützen beide Engines, heißt also mit Unity machst du definitiv nichts falsch.
  2. Multiplayer SDK: Ein zusätzliches Software Development Kit hilft dir dabei deine Anwendung innerhalb der Engine mit einer Multiplayer Funktion auszustatten. Beispiele hierfür sind Photon Multiplayer, Mirror Networking oder auch Spatial OS.
  3. Server: Damit die Daten zwischen den einzelnen Anwendern synchronsiert werden können, benötigst du einen Server. Bei einigen Multiplayer SDKs ist dies bereits mit inbegriffen auf Basis einer Cloud Lösungen z. B. bei Photon Unity Networking ist es die Photon Cloud. Andere bieten auch die Möglichkeit eines eigenen Servers per Amazon Web Services, Google Cloud Platform oder ähnlichem.
  4. (Add-On) Kommunikation: Wenn du in deiner Anwendung einen Sprach-, Text-, oder Videochat integrieren möchtest, dann bieten sich hierfür zusätzliche Erweiterungen an. Beispiele sind Photon Voice, Photon Chat oder auch PubNub. Überlege dir also, wie wichtig diese Elemente für deine Anwedung sind.
  5. (Add-On) Datenverwaltung: Möchtest du Daten der einzelnen Spieler speichern, ein Login-System verwenden oder ein Scoreboard integrieren, dann kannst du hierfür Lösungen wie Microsoft Azure PlayFab, GameSparks oder Firebase verweden.

Ein guter Stack für das Entwicklung einer eigenen Online Multiplayer Anwendung kann also für einen Einsteiger wie folgt aussehen.

Engine: Unity
Multiplayer SDK: Photon Unity Networking
Server: Photon Cloud
Kommunikation: Photon Chat
Datenverwaltung: Microsoft Azure PlayFab

Der rießen Vorteil hierbei ist, dass du damit bereits ohne jegliche Zusatzkosten mit der Entwicklung starten kannst.

Was kostet es?

Diese Frage ist wohl eine der wichtigsten, da Online Multiplayer Anwendung unter der Verwendung eines Servers variable Kosten produzieren. Es hängt also davon ab wie viele Daten, wie häufig sie versendet werden und wie groß diese Daten sind. All das kann unter dem Begriff Traffic zusammengefasst werden. Die unterschiedlichen Anbieter haben auch ihr eigenes Preismodell. Ofmals wird der Traffic mit einem Betrag pro GB multipliziert wie z. B. bei SpatialOS, andere Anbieter wiederrum restriktieren auch die Anzahl der gleichzeitigen Spieler wie bei Photon Unity Networking. Damit du dir einen besseren Überblick verschaffen kannst, findest du im folgenden zwei Beispiele.

Beispiel 1: Entwicklung einer Multiplayer Anwendung für maximal 20 gleichzeitige Nutzer mit Hilfe von Photon Unity Networking

Unity Personal Lizenz: 0 €
Photon Unity Networking: 0€ (Free Account / monatlich: 20 Spieler – 60GB Traffic)
Microsoft Azure PlayFab: 0€ (Essentials Account / LiveOps Funktionen)

Deine Kosten: 0€

Beispiel 2: Entwicklung einer Multiplayer Anwendung für maximal 500 gleichzeitige Nutzer mit Hilfe von Photon Unity Networking

Unity Personal Lizenz: 0 €
Photon Unity Networking: 95€ (500CCU Account / monatlich: 500 Spieler – 1.5 TB Traffic)
Microsoft Azure PlayFab: 0€ (Essentials Account / LiveOps Funktionen)

Deine Kosten:  95 € monatlich

Gleichzeitige Nutzer bedeutet, dass mehrere Spieler deine Anwendung installiert haben können, jedoch darf nur die maximale Anzahl an Nutzer gleichzeitig mit dem Master verbunden sein. Alle Nutzer in den verschiedenen Räumen werden als zusammengezählt. Bei einem Battle Royal Spiel mit 100 Spielern pro Match könntest du mit dem 500CCU Account fünf verschiedene Matches gleichzeitig bewältigen.

Jetzt starten

Starte jetzt mit dem Erstellen deiner eigenen Online Multiplayer Anwendung und erhalte exklusiven Zugriff auf professionelle Video-Tutorials zu den Themen Unity, Photon Multiplayer und PlayFab. Klicke hier um das aktuelle Angebot zu erhalten.

Michael

Michael

Mein Name ist Michael. Ich bin IT-Trainer und Gründer der Lernplattform nobreakpoints. In unserem Blog bieten wir Tipps, Anleitungen und Beispiele für alle, die mit Hilfe von Unity Anwendungen erstellen möchten.