Unity-Technologies / multiplayer
Il Dicembre 16, 2021 da adminBenvenuto nel repository Unity Real-time Multiplayer Alpha!
Qui puoi trovare tutte le risorse di cui hai bisogno per iniziare a prototipare i tuoi giochi multiplayer in tempo reale.
Manuale NetCode
Manuale Trasporto
Clicca qui per visitare il forum
Contenuto incluso
-
sampleproject/
– Progetto Unity contenente tutti i campioni multiplayer. -
sampleproject/Assets/Samples/Asteroids
– Clone di Asteroids che dimostra i concetti fondamentali del netcode. -
sampleproject/Assets/Samples/LagCompensation
– Esempio di compensazione del lag basato sulla Unity Physics. -
sampleproject/Assets/Samples/NetCube
– Campione che mostra l’uso del netcode di base. -
sampleproject/Assets/Samples/Ping
– Campione che mostra l’uso del trasporto di base. -
sampleproject/Assets/Samples/Soaker
– Un soak tester per il trasporto, per testare il carico tipico di produzione. -
sampleproject/Assets/Samples/CustomNetworkInterface
– Un campione che mostra come usare un’implementazione socket specifica del gioco in Unity Transport.
Unity Transport Package
Il nuovo Unity Transport Package che sostituirà l’API di basso livello UNet. Contiene anche utility per serializzare i flussi di dati da inviare attraverso la rete.Per maggiori informazioni sul pacchetto di trasporto, vedi Unity Transport Documentation
Unity NetCode Package
Il pacchetto netcode fornisce le caratteristiche multiplayer necessarie per implementare la sincronizzazione del mondo in un gioco multiplayer. Alcune cose di livello superiore che fornisce sono
- Modello di sincronizzazione autoritativa del server.
- Supporto RPC, utile per il flusso di controllo o gli eventi di rete.
- Il bootrapping del mondo client/server in modo da avere una chiara separazione della logica e si può eseguire un server con più client in un singolo processo, come l’editor durante i test.
- Sincronizzazione delle entità con interpolazione e previsione lato client funzionante di default.
- Strumenti di debug del traffico di rete
- Supporto al flusso di conversione dei GameObject, così puoi usare un modello ibrido per aggiungere il multiplayer a un progetto basato su GameObject/MonoBehaviour.
Per maggiori informazioni sul pacchetto netcode, consulta la Unity NetCode Documentation
Samples
Ping
Il ping sample è un buon punto di partenza per imparare tutte le parti incluse nel pacchetto di trasporto. Il client ping stabilisce una connessione con il server ping, invia un messaggio ping e riceve una risposta pong. Una volta ricevuto il pong, il client si disconnette. è un semplice esempio che ti mostra come usare il nuovo Unity Transport Package.Ping consiste in più scene, tutte trovate in sampleproject/Assets/Scenes/
.
-
PingMainThread.unity
– Un’implementazione main-thread solo di ping. -
Ping.unity
– Una versione completamente jobificata del client e del server di ping. -
PingClient.unity
– Lo stesso codice client jobificato diPing.unity
, ma senza il server. -
PingServer.unity
– La versione server dedicata del ping jobificato. Una build headless (o Server Build nel 2019.1) Linux 64 bit di questa scena è quella che dovrebbe essere distribuita su Multiplay. -
PingECS.unity
– Una versione ECS del campione di ping jobificato.
Soaker
Uno stress test che creerà un numero impostato di client e un server nello stesso processo. Ogni client invierà messaggi alla velocità specificata con la dimensione specificata e misurerà le statistiche.
Asteroids
Un piccolo gioco con le caratteristiche del pacchetto NetCode di Unity.
LagCompensation
Un esempio che mostra un modo per implementare la compensazione del lag basato su Unity Physics. In un gioco basato su Unity NetCode il client visualizzerà uno stato vecchio del mondo, la compensazione del lag permette al server di tenerne conto quando esegue i raycast in modo che il giocatore possa mirare a ciò che viene effettivamente visualizzato sul client.
NetCube
Un piccolo esempio con le caratteristiche del pacchetto Unity NetCode. Questo è il codice usato nella presentazione Unite su NetCode
Installazione
Per provare i campioni in questo repository tutto quello che devi fare è apriresampleprojects/
in Unity.Se vuoi creare un nuovo progetto Unity usando questi pacchetti questo è anche possibile.
- Assicurati di avere una versione supportata di Unity (2019.3 o più recente)
- Crea un nuovo progetto Unity
- Se vuoi usare NetCode, aggiungi
Unity NetCode
dal gestore dei pacchetti. - Se vuoi usare il trasporto ma non NetCode, aggiungi
Unity Transport
dal gestore dei pacchetti. - Le dipendenze dei pacchetti saranno automaticamente tirate nel progetto
Lascia un commento