Zurück zu den Neuigkeiten für Entwickler

Erstellen deines Multiplayer-Erlebnisses in VR

24. Mai 2022VonNavyata Bawa

Multiplayer-Erlebnisse werden zu einem immer wichtigeren Bestandteil des VR-Ökosystems. Multiplayer-Funktionen machen es einfach, Personen zu finden, einzuladen und gemeinsam in verschiedenen Spielen und Apps zu spielen. In dieser vierteiligen Blog- und Videoreihe „Erstellen deines Multiplayer-Erlebnisses in VR“ gehen wir auf die Multiplayer-Funktionen in Quest der Platform SDK ein. Dazu sehen wir uns unser als Open Source freigegebenes SharedSpaces-Beispiel an, das in Unity erstellt wurde, und zeigen dir, wie du anhand des Beispiels deine eigene Multiplayer-App erstellen kannst. Wenn du gerne durch Zusehen und Zuhören lernst, sieh dir dieses Video auf dem Open Source YouTube-Kanal von Meta an.

Im heutigen Blog gehen wir auf die Multiplayer-Funktionen im Platform SDK ein und zeigen, was man damit anfangen kann. Außerdem werden wir das Unity SharedSpaces-Beispiel aus App Lab durchgehen und diese Multiplayer-Funktionen in Aktion sehen.

Multiplayer-Funktionen

Anhand von Quest-Multiplayer-Funktionen wie Destinations, Group Presence, Invites, Invite Link, Rosters und mehr können Nutzer*innen andere finden, einladen und gemeinsam in VR-Apps spielen. Diese Funktionen fördern die soziale Interaktion innerhalb deiner App und ermöglichen es deinen größten Fans, andere einzuladen und so ein einzigartiges Multiplayer-Erlebnis zu schaffen, bei dem die Spieler*innen das Gefühl haben, mit ihren Freund*innen in der App tatsächlich zusammen zu sein.

Destinations

Destinations sind Orte, zu denen Personen innerhalb deiner App reisen, und sie sind unverzichtbar für die Multiplayer-Funktionen in der Quest-Entwicklung. In der folgenden Abbildung sind drei der Destinations aus der SharedSpaces-Beispiel-App zu sehen. In unserem nächsten Blog werden die Schritte zum Einrichten der Destinations für deine App erklärt.

Group Presence

Group Presence gibt Auskunft darüber, in welcher App sich Personen befinden: ob es eine Übereinstimmung gibt, ob sie sich an einer bestimmten Destination befinden, ob sie teilnehmen können und vieles mehr. Weitere Informationen zu Destinations und Group Presence findest du in unserer Dokumentation zu verschiedenen Anwendungsszenarios und deren optimale Verwendung in deinen Apps.

Deep Links

Anhand von Deep Links können Entwickler*innen Nutzer*innen zu einem bestimmten Erlebnis weiterleiten. Wenn jemand deine App startet, um sich mit einem Freund zu treffen oder zu einer Destination zu navigieren, enthält der Deep Link Informationen zur gewünschten Destination und einer Lobby oder einer Übereinstimmung.

Der erste Schritt zur Realisierung eines Multiplayer-Erlebnisses ist die Integration von Destinations, Group Presence und Deep Links. In unserem nächsten Blog wird erläutert, wie du deine eigene Version des Unity SharedSpaces-Beispiels erstellst und wie du diese für deine App einrichtest.

Invite to App

Über „Invite to App“ können Spieler*innen Quest-Freund*innen und Nutzer*innen, mit denen sie vor Kurzem gespielt haben, nahtlos in bestehende Lobbys einladen. Dazu verwenden sie das Quest-Menü in unterstützten Spielen.

Wenn du eine Einladung versendest, erhält die eingeladene Person in der VR und in der mobilen Oculus-App eine Benachrichtigung, in der sie zur Teilnahme an dem Erlebnis eingeladen wird.

Weitere Informationen zu Invite to App APIs und wie du diese in deinem Erlebnis verwenden kannst, findest du auf der Dokumentationsseite.

Einladungslink

Du kannst einen Einladungslink auch verwenden, um mit einer Gruppe von Freund*innen über die mobile Oculus-App in eine Destination zu starten.

Der Einladungslink verwendet die Group Presence API, damit alle Teilnehmer*innen auch wirklich in derselben Sitzung landen. Weitere Informationen zum Einladungslink findest du auf der Dokumentationsseite.

Roster

Anhand des Rosters können Nutzer*innen sehen, welche Freund*innen sich mit ihnen im Spiel befinden. Nutzer*innen, die vom Spiel hinzugefügt werden, befinden sich in derselben Lobby-Sitzungs-ID, wenn die Präsenz des*der aktuellen Nutzer*in vom Spiel festgelegt wurde. Im SharedSpaces-Beispiel wird das Roster durch Klicken auf das Roster-Feld angezeigt. Die Abbildung unten zeigt ein Beispiel dafür, wie das Roster zeigt, wer mit dir spielt und wer zur Teilnahme eingeladen wurde.

SharedSpaces-Beispiel aus Unity

Nachdem wir nun einige Multiplayer-Funktionen des Platform SDK vorgestellt haben, werfen wir einen Blick auf ein Beispielprojekt namens SharedSpaces, das diese Multiplayer-Funktionen in Aktion zeigt. Wir sehen uns die Unity-Version dieses Beispiels an. Wenn du dich allerdings für die Unreal-Version interessierst, findest du diese auf App Lab.

Als Erstes möchten wir uns ansehen, wie das Unity SharedSpaces-Beispiel funktioniert. Im Beispiel werden drei Netzwerkschichten verwendet:

  • Unser Platform SDK, mit dem wir die Destinations, Präsenz, Lobby und Übereinstimmung festlegen können.
  • Unsere Transportschicht, Photon SDK, die für die Kommunikation zwischen den Nutzer*innen zuständig sind, die sich einen Bereich teilen.
  • Netzwerkfunktionen, die durch das Netcode for GameObjects SDK von Unity zur Verfügung gestellt werden.

In der folgenden Abbildung sind die drei oben beschriebenen Schichten zusammengefasst.

Installieren des Beispiels

Nachdem du nun weißt, wie die SharedSpaces-App funktioniert, kannst du das Unity SharedSpaces-Beispiel auf App Lab herunterladen und es mit deinem Quest-Headset ausprobieren.

Ausführen des Beispiels

Wenn du die App auf deinem Quest-Headset startest, wirst du feststellen, dass du in einem Raum namens Lobby beginnst. Der*die Spieler*in wird durch eine farbenfrohe Figur dargestellt, die du mit deinen Controllern steuern kannst. Mit dem linken Controller bewegst du den*die Spieler*in und mit dem rechten Controller bewegst du die Kamera, sodass du die Welt um dich herum bequem sehen und auswählen kannst, wohin du gehen möchtest. Durch Drücken des Y-Buttons auf dem Controller kann der*die Spieler*in springen.

Im rechten Debug-Bereich werden der Status der Destinations, die Netzwerkebene und Informationen darüber angezeigt, wer dem Raum beitritt. Auf der linken Seite siehst du drei private Destinations, die du betreten kannst, und auf der rechten Seite siehst du eine öffentliche Destination, die du betreten kannst.

Oben links siehst du die Option, Freund*innen einzuladen, sich dir bei diesem Erlebnis anzuschließen. Das ist die Invite to App-Funktion, die weiter oben beschrieben wurde.

Oben rechts siehst du ein Roster, das Informationen zur Gruppenpräsenz anzeigt. Das ist die Roster-Funktion des Platform SDK in Aktion.

Hinter dir befindet sich ein Farbenladen, in dem du die Farbe deines*deiner Spieler*in ändern kannst. Du kannst auch den X-Button auf deinem Controller drücken, um die Farbe deines*deiner Spieler*in zu ändern.

Unten links und unten rechts siehst du eine Option, mit der du dich und deine Freund*innen abfragen kannst, um weitere Informationen über die Spieler*innen zu erhalten.

Beispiel-Testszenario

Nachdem du nun mit dem Bereich vertraut bist, kannst du versuchen, eine der Destinations zu betreten. Der violette Raum ist eine öffentliche Destination, die jeder betreten kann und die von jeder Lobby aus erreicht werden kann. Gehen wir nun zurück zur Lobby.

Wenn du zurück in der Lobby bist, versuche, einen anderen Raum zu betreten. Die rote, der blaue und der grüne Raum sind privat und können nur mit Einladung betreten werden.

Bevor du einen der privaten Räume betrittst, kannst du jemand einladen, dich zu begleiten. Gehe zum Bereich „Freunde einladen“, um die Liste der verfügbaren Freund*innen zu sehen und eine*n Freund*in direkt aus der Liste einzuladen. Da du das Erlebnis in der Lobby gestartet hast, bist du der*die Master Client*in deiner Lobby und der*die Gastgeber*in.

Es wird eine Benachrichtigung eingeblendet, die dem*der eingeladenen Freund*in mitteilt, dass du ihn*sie zur Teilnahme eingeladen hast. Wenn die Person die Einladung zur Teilnahme annimmt, wird sie dir in deiner Lobby angezeigt. Ab jetzt verwendet ihr beide die gleiche Lobby-ID für diese Sitzung.

Du kannst jetzt im blauen Raum ein privates Spiel beginnen. Wenn du den blauen Raum betrittst, siehst du vielleicht, dass dein*e Freund*in den blauen Raum vor dir betreten hat. Da er*sie den Raum zuerst betreten hat, ist er*sie Gastgeber*in des Raumes und du bist mit ihm*ihr verbunden. Ihr habt auch die gleiche Spiel-Sitzungs-ID, die dem blauen Raum entspricht. Wenn ihr nun den blauen Raum verlasst, kehrt ihr beide in deine Lobby zurück, da ihr die gleiche Lobby-ID habt.

Wenn du deine*n Freund*in eingeladen hättest, während du im blauen Raum warst, und er*sie sich in seiner*ihrer eigenen Lobby befand und deine Einladung angenommen hätte, hätte sich seine*ihre Spiel-ID in die Spielsitzungs-ID des blauen Raums geändert, aber seine*ihre Lobby-ID wäre die gleiche wie zuvor gewesen. In diesem Fall wärt ihr, wenn ihr beide den blauen Raum verlassen hättet, in eure eigenen Lobbys zurückgekehrt. Das wäre etwas anderes.

Dies war ein kurzer Überblick über die Unity SharedSpaces-Beispielanwendung. Wir haben uns einige der Multiplayer-Funktionen angesehen, die das Platform SDK zu bieten hat, und wie diese in der Unity SharedSpaces-App auf Quest funktionieren. In unserem nächsten Blog gehen wir darauf ein, wie du deine eigene Version dieses Beispiels erstellen kannst. Außerdem zeigen wir dir, wie du es von Github herunterlädst und es dann auf deinem Quest-Headset erstellst und ausführst.


Über diese Reihe

In dieser Reihe geht es um die Multiplayer-Features des Platform SDK in Quest. Dazu verwenden wir unser als Open Source freigegebenes SharedSpaces-Beispiel, das in Unity erstellt wurde. Dieser Blog ist der erste Teil einer vierteiligen Reihe von Blogs zur Unterstützung der Videoreihe „Erstellen deines Multiplayer-Erlebnisses in VR“.

In dieser Connect-Sitzung, in der es um die Erstellung und Erweiterung von Multiplayer-Apps für Quest geht, erfährst du mehr über die Multiplayer-Funktionen des Platform SDK und die Verwendung des SharedSpaces-Beispiels. Teste das Unity SharedSpaces-Beispiel, indem du App Lab besuchst und es auf deinem eigenen Headset ausführst. Weitere Informationen darüber, wie du die Multiplayer-Funktionen des Platform SDK in deinen eigenen Apps nutzen kannst, findest du in der Dokumentation für Multiplayer-Funktionen.

Um mehr über Meta Quest zu erfahren, besuche unsere Website, abonniere unseren YouTube-Kanal oder folge uns auf Twitter und Facebook. Fragen, Vorschläge oder Feedback kannst du uns gerne in den Entwickler*innen-Foren mitteilen.

Um mehr über Meta Open Source zu erfahren, besuche unsere Open Source-Website, abonniere unseren YouTube-Kanal oder folge uns auf Twitter und Facebook.