Unity-Technologies / multiplayer
On december 16, 2021 by adminVelkommen til Unity Real-time Multiplayer Alpha-repositoriet!
Her kan du finde alle de ressourcer, du har brug for til at begynde at lave prototyper af dine egne real-time multiplayer-spil.
NetCode Manual
Transport Manual
Klik her for at besøge forummet
Inkluderet indhold
-
sampleproject/
– Unity-projekt, der indeholder alle multiplayer-eksemplerne. -
sampleproject/Assets/Samples/Asteroids
– Asteroids-klon, der demonstrerer de centrale netkodekoncepter. -
sampleproject/Assets/Samples/LagCompensation
– Eksempel, der viser forsinkelseskompensation baseret på Unity Physics. -
sampleproject/Assets/Samples/NetCube
– Eksempel, der viser grundlæggende brug af netkode. -
sampleproject/Assets/Samples/Ping
– Eksempel, der viser grundlæggende brug af transport. -
sampleproject/Assets/Samples/Soaker
– En soak tester til transport, til test af typisk produktionsbelastning. -
sampleproject/Assets/Samples/CustomNetworkInterface
– Et eksempel, der viser, hvordan man bruger en spilspecifik socket-implementering i Unity Transport.
Unity Transport Package
Den nye Unity Transport Package, som vil erstatte UNet low-level API’et. preview af transportpakken understøtter etablering af forbindelser og afsendelse af meddelelser til aremote host. Den indeholder også hjælpeprogrammer til serialisering af datastrømme, der skal sendes over netværket. for flere oplysninger om transportpakken, se Unity Transport Documentation
Unity NetCode Package
Netkodepakken indeholder de multiplayerfunktioner, der er nødvendige for at implementere synkronisering af verdener i et multiplayer-spil. Den bruger transportpakken til funktionaliteten på socket-niveau og er lavet til Entity Component System.Nogle ting på højere niveau, som den giver, er
- Server autoritativ synkroniseringsmodel.
- RPC-understøttelse, nyttig til kontrolflow eller netværkshændelser.
- Client / server world bootrapping, så du har en klar adskillelse af logikken, og du kan køre en server med flere klienter i en enkelt proces, som f.eks. editoren, når du tester.
- Synkroniser enheder med interpolation og forudsigelse på klientsiden, der fungerer som standard.
- Netværkstrafikdebugging-værktøjer
- Understøttelse af GameObject-konverteringsflow, så du kan bruge en hybridmodel til at tilføje multiplayer til et GameObject/MonoBehaviour-baseret projekt.
For flere oplysninger om netkodepakken, se Unity NetCode Documentation
Samples
Ping
Ping-eksemplet er et godt udgangspunkt for at lære om alle de dele, der er inkluderet i transportpakken. Ping-klienten etablerer en forbindelse til ping-serveren,sender en ping-meddelelse og modtager et pong-svar. Når pong er modtaget, afbryder klienten forbindelsen. det er et simpelt eksempel, der viser dig, hvordan du bruger den nye Unity-transportpakke. ping består af flere scener, som alle findes i sampleproject/Assets/Scenes/
.
-
PingMainThread.unity
– En implementering af ping kun i hovedtråden. -
Ping.unity
– En fuldt jobificeret version af ping-klienten og -serveren. -
PingClient.unity
– Den samme jobificerede klientkode somPing.unity
, men uden serveren. -
PingServer.unity
– Den dedikerede serverversion af den jobificerede ping. Et headless (eller Server Build i 2019.1) Linux 64 bit build af denne scene er det, der skal udrulles til Multiplay. -
PingECS.unity
– En ECS-version af den jobificerede ping-eksempel. - Sørg for, at du har en understøttet version af Unity (2019.3 eller nyere)
- Opret et nyt Unity-projekt
- Hvis du ønsker at bruge NetCode, skal du tilføje
Unity NetCode
fra pakkehåndteringen. - Hvis du ønsker at bruge transport, men ikke NetCode, skal du tilføje
Unity Transport
fra pakkehåndteringen. - Pakkeafhængigheder vil automatisk blive trukket ind i projektet
Soaker
En stresstest, der opretter et bestemt antal klienter og en server i samme proces. Hver klient sender beskeder med den angivne hastighed med den angivne størrelse og måler statistik.
Asteroids
Et lille spil med Unity NetCode Package-funktionerne.
LagCompensation
Eksempel, der viser en måde at implementere forsinkelseskompensation baseret på Unity Physics. I et spil baseret på Unity NetCode vil klienten vise en gammel verdenstilstand, forsinkelseskompensation gør det muligt for serveren at tage hensyn til dette, når den udfører raycasts, så spilleren kan sigte efter det, der faktisk vises på klienten.
NetCube
En lille prøve med funktionerne i Unity NetCode-pakken. Dette er den kode, der blev brugt i Unite-præsentationen om NetCode
Installation
For at afprøve eksempler i dette arkiv skal du blot åbnesampleprojects/
i Unity.Hvis du ønsker at oprette et nyt Unity-projekt ved hjælp af disse pakker, er det også muligt.
Skriv et svar