Unity-Technologies / multiplayer
On Dezember 16, 2021 by adminWillkommen im Unity Real-time Multiplayer Alpha Repository!
Hier findet ihr alle Ressourcen, die ihr braucht, um mit dem Prototyping eurer eigenen Echtzeit-Multiplayer-Spiele zu beginnen.
NetCode Manual
Transport Manual
Klicke hier, um das Forum zu besuchen
Enthaltener Inhalt
-
sampleproject/
– Unity Projekt, das alle Multiplayer-Beispiele enthält. -
sampleproject/Assets/Samples/Asteroids
– Asteroids Klon, der die Kern-Netcode-Konzepte demonstriert. -
sampleproject/Assets/Samples/LagCompensation
– Beispiel, das Lag-Kompensation basierend auf Unity Physics zeigt. -
sampleproject/Assets/Samples/NetCube
– Beispiel, das die grundlegende Verwendung von Netcode zeigt. -
sampleproject/Assets/Samples/Ping
– Beispiel, das die grundlegende Verwendung von Transport zeigt. -
sampleproject/Assets/Samples/Soaker
– Ein Soak-Tester für den Transport, um typische Produktionslast zu testen. -
sampleproject/Assets/Samples/CustomNetworkInterface
– Ein Beispiel, das zeigt, wie man eine spielspezifische Socket-Implementierung in Unity Transport verwendet.
Unity Transport Package
Das neue Unity Transport Package, das die UNet low-level API ersetzen wird.Die Vorschau des Transport Package unterstützt den Aufbau von Verbindungen und das Senden von Nachrichten an einen entfernten Host. Weitere Informationen über das Transportpaket finden Sie in der Unity-Transportdokumentation
Unity-Netcode-Paket
Das Netcode-Paket stellt die Multiplayer-Funktionen bereit, die für die Implementierung der Synchronisierung von Welten in einem Multiplayer-Spiel erforderlich sind. Es verwendet das Transportpaket für die Socket-Level-Funktionalität und ist für das Entity Component System gemacht.
- Einige Dinge auf höherer Ebene, die es bietet, sind
- Server-Autoritäts-Synchronisationsmodell.
- RPC-Unterstützung, nützlich für den Kontrollfluss oder Netzwerk-Ereignisse.
- Client/Server-World-Bootrapping, so dass man eine klare Trennung der Logik hat und man einen Server mit mehreren Clients in einem einzigen Prozess laufen lassen kann, wie den Editor beim Testen.
- Synchronisieren von Entitäten mit Interpolation und clientseitiger Vorhersage, die standardmäßig funktionieren
- Debugging-Tools für den Netzwerkverkehr
- Unterstützung für den Konvertierungsfluss von GameObjects, so dass Sie ein Hybridmodell verwenden können, um einem GameObject/MonoBehaviour-basierten Projekt Multiplayer hinzuzufügen.
Weitere Informationen über das NetCode-Paket finden Sie in der Unity NetCode-Dokumentation
Beispiele
Ping
Das Ping-Beispiel ist ein guter Ausgangspunkt, um alle im Transportpaket enthaltenen Teile kennenzulernen. Der ping-Client baut eine Verbindung zum ping-Server auf, sendet eine ping-Nachricht und empfängt eine pong-Antwort. Ping besteht aus mehreren Szenen, die alle in
sampleproject/Assets/Scenes/
zu finden sind.-
PingMainThread.unity
– Eine Main-Thread-Implementierung von ping. -
Ping.unity
– Eine vollständig jobifizierte Version des ping-Clients und -Servers. -
PingClient.unity
– Der gleiche jobifizierte Client-Code wiePing.unity
, aber ohne den Server. -
PingServer.unity
– Die dedizierte Server-Version des jobifizierten ping. Ein Headless (oder Server Build in 2019.1) Linux 64 Bit Build dieser Szene sollte für Multiplay bereitgestellt werden. -
PingECS.unity
– Eine ECS-Version des jobifizierten Ping-Beispiels.
Soaker
Ein Stresstest, der eine bestimmte Anzahl von Clients und einen Server im selben Prozess erstellt. Jeder Client sendet Nachrichten mit der angegebenen Rate und der angegebenen Größe und misst Statistiken.
Asteroids
Ein kleines Spiel, das die Funktionen des Unity NetCode Pakets nutzt.
LagCompensation
Ein Beispiel, das zeigt, wie man Lag-Kompensation basierend auf Unity Physics implementiert. In einem Spiel, das auf dem Unity NetCode basiert, zeigt der Client einen alten Weltzustand an. Die Lag-Kompensation erlaubt es dem Server, dies zu berücksichtigen, wenn er Raycasts durchführt, so dass der Spieler auf das zielen kann, was tatsächlich auf dem Client angezeigt wird.
NetCube
Ein kleines Beispiel, das die Funktionen des Unity NetCode Pakets zeigt. Dies ist der Code, der in der Unite-Präsentation über NetCode verwendet wird.
Installation
Um die Beispiele in diesem Repository auszuprobieren, müsst ihr nur
sampleprojects/
in Unity öffnen.- Wenn ihr ein neues Unity-Projekt mit diesen Paketen erstellen wollt, ist das ebenfalls möglich.
- Stellt sicher, dass ihr eine unterstützte Version von Unity habt (2019.3 oder neuer)
- Erstelle ein neues Unity Projekt
- Wenn du NetCode verwenden möchtest, füge
Unity NetCode
aus dem Paketmanager hinzu. - Wenn du den Transport aber nicht NetCode verwenden möchtest, füge
Unity Transport
aus dem Paketmanager hinzu. - Paketabhängigkeiten werden automatisch in das Projekt gezogen
Schreibe einen Kommentar