Unity-Technologies / multiplayer
On december 16, 2021 by adminWelkom bij de Unity Real-time Multiplayer Alpha repository!
Hier vind je alle bronnen die je nodig hebt om te beginnen met het maken van prototypes voor je eigen real-time multiplayer spellen.
NetCode Handleiding
Transport Handleiding
Klik hier om het forum te bezoeken
Inbegrepen inhoud
-
sampleproject/
– Unity Project dat alle multiplayer voorbeelden bevat. -
sampleproject/Assets/Samples/Asteroids
– Asteroids kloon die de kern netcode concepten demonstreert. -
sampleproject/Assets/Samples/LagCompensation
– Voorbeeld dat lag compensatie toont op basis van Unity Physics. -
sampleproject/Assets/Samples/NetCube
– Voorbeeld dat basis netcode gebruik toont. -
sampleproject/Assets/Samples/Ping
– Voorbeeld dat basis transport gebruik toont. -
sampleproject/Assets/Samples/Soaker
– Een soak tester voor het transport, om typische productie belasting te testen. -
sampleproject/Assets/Samples/CustomNetworkInterface
– Een voorbeeld dat toont hoe een game specifieke socket implementatie in Unity Transport gebruikt kan worden.
Unity Transport Package
Het nieuwe Unity Transport Package dat de UNet low-level API zal vervangen.De preview van het transport package ondersteunt het opzetten van verbindingen en het versturen van berichten naar aremote host. Voor meer informatie over het transport pakket, zie de Unity Transport Documentatie
Unity NetCode Package
Het netcode pakket levert de multiplayer functies die nodig zijn om wereld synchronisatie te implementeren in een multiplayer spel. Het gebruikt het transport pakket voor de socket niveau functionaliteit en is gemaakt voor het Entity Component System. Sommige hogere niveau dingen die het biedt zijn
- Server authoritative synchronization model.
- RPC ondersteuning, handig voor control flow of netwerk events.
- Client / server wereld bootrapping zodat je een duidelijke scheiding van logica hebt en je een server met meerdere clients in een enkel proces kunt draaien, zoals de editor bij het testen.
- Synchroniseer entiteiten met standaard werkende interpolatie en client side prediction.
- Netwerk verkeer debugging tools
- GameObject conversie flow ondersteuning, zodat je een hybride model kunt gebruiken om multiplayer toe te voegen aan een GameObject/MonoBehaviour gebaseerd project.
Voor meer informatie over het netcode pakket, zie de Unity NetCode Documentatie
Samples
Ping
Het ping sample is een goed startpunt om te leren over alle onderdelen die in het transport pakket zitten. De ping client maakt een verbinding met de ping server, stuurt een ping bericht en ontvangt een pong antwoord. Zodra pong is ontvangen zal de client de verbinding verbreken.Het is een eenvoudig voorbeeld dat laat zien hoe je het nieuwe Unity Transport Pakket kunt gebruiken.Ping bestaat uit meerdere scenes, allemaal te vinden in sampleproject/Assets/Scenes/
.
-
PingMainThread.unity
– Een main-thread alleen implementatie van ping. -
Ping.unity
– Een volledig jobified versie van de ping client en server. -
PingClient.unity
– Dezelfde jobified client code alsPing.unity
, maar dan zonder de server. -
PingServer.unity
– De dedicated server versie van de jobified ping. Een headless (of Server Build in 2019.1) Linux 64 bit build van deze scene is wat moet worden ingezet op Multiplay. -
PingECS.unity
– Een ECS-versie van de jobified ping sample.
Soaker
Een stresstest die een vastgesteld aantal clients en een server in hetzelfde proces zal maken. Elke client zal berichten versturen op de opgegeven snelheid met de opgegeven grootte en statistieken meten.
Asteroids
Een klein spel met de mogelijkheden van het Unity NetCode Package.
LagCompensation
Een voorbeeld dat een manier laat zien om lag compensatie te implementeren gebaseerd op Unity Physics. In een spel gebaseerd op de Unity NetCode zal de client een oude wereld toestand weergeven, lag compensatie staat de server toe om hier rekening mee te houden bij het uitvoeren van raycasts zodat de speler kan richten op wat er werkelijk wordt weergegeven op de client.
NetCube
Een klein voorbeeld met de Unity NetCode Package features. Dit is de code die gebruikt wordt in de Unite presentatie over NetCode
Installatie
Om de samples in deze repository uit te proberen hoeft u alleen maarsampleprojects/
te openen in Unity.Als u een nieuw Unity project wilt maken met deze packages is dat ook mogelijk.
- Zorg ervoor dat u een ondersteunde versie van Unity heeft (2019.3 of nieuwer)
- Maak een nieuw Unity project
- Als u de NetCode wilt gebruiken, voeg dan
Unity NetCode
toe vanuit de package manager. - Als u het transport wilt gebruiken maar niet de NetCode, voeg dan
Unity Transport
toe vanuit de package manager. - De afhankelijkheden van het pakket worden automatisch in het project getrokken
Geef een antwoord