Unity-Technologies / multiplayer
On decembrie 16, 2021 by adminBine ați venit în depozitul Unity Real-time Multiplayer Alpha!
Aici puteți găsi toate resursele de care aveți nevoie pentru a începe să vă creați prototipuri pentru propriile jocuri multiplayer în timp real.
NetCode Manual
Transport Manual
Click aici pentru a vizita forumul
Conținut inclus
-
sampleproject/
– Proiect Unity care conține toate mostrele multiplayer. -
sampleproject/Assets/Samples/Asteroids
– Clonă de Asteroids care demonstrează conceptele de bază ale netcode-ului. -
sampleproject/Assets/Samples/LagCompensation
– Mostră care arată compensarea lag-ului pe baza Unity Physics. -
sampleproject/Assets/Samples/NetCube
– Exemplu care arată utilizarea de bază a codului de rețea. -
sampleproject/Assets/Samples/Ping
– Exemplu care arată utilizarea de bază a transportului. -
sampleproject/Assets/Samples/Soaker
– Un tester de absorbție pentru transport, pentru testarea încărcăturii tipice de producție. -
sampleproject/Assets/Samples/CustomNetworkInterface
– Un eșantion care arată cum se utilizează o implementare de socket specifică jocului în Unity Transport.
Unity Transport Package
Noul pachet de transport Unity care va înlocui API-ul de nivel scăzut UNet. previzualizarea pachetului de transport suportă stabilirea de conexiuni și trimiterea de mesaje către o gazdă la distanță. Acesta conține, de asemenea, utilități pentru serializarea fluxurilor de date pentru a le trimiteprin rețea.Pentru mai multe informații despre pachetul de transport, vă rugăm să consultați documentația Unity Transport
Unity NetCode Package
Pachetul de cod de rețea oferă caracteristicile multiplayer necesare pentru a implementa sincronizarea lumii într-un joc multiplayer. Folosește pachetul de transportpentru funcționalitatea la nivel de socket și este realizat pentru sistemul Entity Component System.Unele lucruri de nivel superior pe care le oferă sunt
- Modelul de sincronizare autoritar al serverului.
- Suportul RPC, util pentru fluxul de control sau evenimente de rețea.
- Client / server world bootrapping astfel încât să aveți o separare clară a logicii și să puteți rula un server cu mai mulți clienți într-un singur proces, cum ar fi editorul atunci când testați.
- Sincronizarea entităților cu interpolare și predicție pe partea clientului care funcționează în mod implicit.
- Instrumente de depanare a traficului de rețea
- Suport pentru fluxul de conversie GameObject, astfel încât să puteți utiliza un model hibrid pentru a adăuga multiplayer la un proiect bazat pe GameObject/MonoBehaviour.
Pentru mai multe informații despre pachetul netcode, vă rugăm să consultați Unity NetCode Documentation
Samples
Ping
Eșantionul ping este un bun punct de plecare pentru a învăța despre toate părțile incluseîn pachetul de transport. Clientul ping stabilește o conexiune cu serverul ping,trimite un mesaj ping și primește un răspuns pong. Odată ce pong-ul este primit, clientul se va deconecta.Este un exemplu simplu care vă arată cum să utilizați noul pachet de transport Unity.Ping este format din mai multe scene, toate regăsite în sampleproject/Assets/Scenes/
.
-
PingMainThread.unity
– O implementare a ping-ului doar pentru firul principal. -
Ping.unity
– O versiune complet jobificată a clientului și serverului ping. -
PingClient.unity
– Același cod de client jobificat ca șiPing.unity
, dar fără server. -
PingServer.unity
– Versiunea de server dedicat a ping-ului jobificat. Un build Linux 64 biți fără cap (sau Server Build în 2019.1) al acestei scene este ceea ce ar trebui implementat în Multiplay. -
PingECS.unity
– O versiune ECS a eșantionului de ping jobificat.
Soaker
Un test de stres care va crea un număr stabilit de clienți și un server în același proces. Fiecare client va trimite mesaje la rata specificată cu dimensiunea specificată și va măsura statisticile.
Asteroids
Un mic joc care prezintă caracteristicile pachetului Unity NetCode Package.
LagCompensation
Un eșantion care arată o modalitate de a implementa compensarea lag-ului pe baza Unity Physics. Într-un joc bazat pe Unity NetCode, clientul va afișa o stare de lume veche, compensarea lag-ului permite serverului să ia în considerare acest lucru atunci când efectuează raycasts, astfel încât jucătorul să poată ținti la ceea ce este afișat efectiv pe client.
NetCube
Un mic eșantion care prezintă caracteristicile pachetului Unity NetCode. Acesta este codul folosit în prezentarea Unite despre NetCode
Instalare
Pentru a încerca mostrele din acest depozit tot ce trebuie să faceți este să deschidețisampleprojects/
în Unity.Dacă doriți să creați un nou proiect Unity folosind aceste pachete, acest lucru este de asemenea posibil.
- Asigurați-vă că aveți o versiune suportată de Unity (2019.3 sau o versiune mai nouă)
- Creați un nou proiect Unity
- Dacă doriți să folosiți NetCode, adăugați
Unity NetCode
din managerul de pachete. - Dacă doriți să folosiți transportul, dar nu NetCode, adăugați
Unity Transport
din managerul de pachete. - Dependențele pachetelor vor fi trase automat în proiect
.
Lasă un răspuns