Unity-Technologies / multiplayer
On décembre 16, 2021 by adminBienvenue au dépôt Unity Real-time Multiplayer Alpha!
Vous trouverez ici toutes les ressources dont vous avez besoin pour commencer à prototypervos propres jeux multijoueurs en temps réel.
Manuel de NetCode
Manuel de transport
Cliquez ici pour visiter le forum
Contenu inclus
-
sampleproject/
– Projet Unity contenant tous les échantillons multijoueurs. -
sampleproject/Assets/Samples/Asteroids
– Clone d’Astéroïdes démontrant les concepts de base du netcode. -
sampleproject/Assets/Samples/LagCompensation
– Échantillon montrant la compensation du lag basée sur Unity Physics. -
sampleproject/Assets/Samples/NetCube
– Echantillon montrant l’utilisation de base du netcode. -
sampleproject/Assets/Samples/Ping
– Echantillon montrant l’utilisation de base du transport. -
sampleproject/Assets/Samples/Soaker
– Un soak tester pour le transport, pour tester la charge de production typique. -
sampleproject/Assets/Samples/CustomNetworkInterface
– Un échantillon montrant comment utiliser une implémentation de socket spécifique au jeu dans Unity Transport.
Paquet de transport Unity
Le nouveau paquet de transport Unity qui remplacera l’API de bas niveau UNet.L’aperçu du paquet de transport supporte l’établissement de connexions et l’envoi de messages à l’hôte aremote. Il contient également des utilitaires pour sérialiser les flux de données à envoyer sur le réseau.Pour plus d’informations sur le paquet de transport, veuillez consulter la documentation Unity Transport
Unity NetCode Package
Le paquet netcode fournit les fonctionnalités multijoueurs nécessaires pour implémenter la synchronisationworld dans un jeu multijoueur. Il utilise le paquet de transportpour la fonctionnalité de niveau socket et est fait pour le système de composants d’entité.Certaines choses de plus haut niveau qu’il fournit sont
- Modèle de synchronisation autoritaire du serveur.
- Support RPC, utile pour le flux de contrôle ou les événements du réseau.
- Démarrage du monde client / serveur afin que vous ayez une séparation claire de la logique et que vous puissiez exécuter un serveur avec plusieurs clients dans un seul processus, comme l’éditeur lors des tests.
- Synchronisation des entités avec interpolation et prédiction côté client fonctionnant par défaut.
- Outils de débogage du trafic réseau
- Support du flux de conversion des GameObjects, afin que vous puissiez utiliser un modèle hybride pour ajouter le multijoueur à un projet basé sur les GameObjects/MonoBehaviour.
Pour plus d’informations sur le paquet netcode, veuillez consulter la documentation Unity NetCode
Échantillons
Ping
L’échantillon ping est un bon point de départ pour apprendre toutes les parties incluses dans le paquet de transport. Le client ping établit une connexion avec le serveur ping,envoie un message ping et reçoit une réponse pong. Une fois que pong est reçu, le client se déconnecte.C’est un exemple simple qui vous montre comment utiliser le nouveau paquet de transport de Unity.Ping se compose de plusieurs scènes, toutes trouvées dans sampleproject/Assets/Scenes/
.
-
PingMainThread.unity
– Une implémentation de ping uniquement en main-thread. -
Ping.unity
– Une version entièrement jobifiée du client et du serveur de ping. -
PingClient.unity
– Le même code client jobifié quePing.unity
, mais sans le serveur. -
PingServer.unity
– La version serveur dédiée du ping jobifié. Un headless (ou Server Build en 2019.1) Linux 64 bit build de cette scène est ce qui devrait être déployé sur Multiplay. -
PingECS.unity
– Une version ECS de l’échantillon de ping jobifié.
Soaker
Un test de stress qui créera un nombre déterminé de clients et un serveur dans le même processus. Chaque client enverra des messages au taux spécifié avec la taille spécifiée et mesurera les statistiques.
Asteroids
Un petit jeu mettant en vedette les fonctionnalités du paquet Unity NetCode.
LagCompensation
Un échantillon montrant une façon d’implémenter la compensation de lag basée sur Unity Physics. Dans un jeu basé sur le Unity NetCode, le client affichera un état de vieux monde, la compensation de lag permet au serveur de prendre cela en compte lorsqu’il effectue des raycasts afin que le joueur puisse viser ce qui est réellement affiché sur le client.
NetCube
Un petit échantillon présentant les fonctionnalités du paquet Unity NetCode. C’est le code utilisé dans la présentation Unite sur NetCode
Installation
Pour essayer les échantillons dans ce dépôt, tout ce que vous devez faire est d’ouvrirsampleprojects/
dans Unity.Si vous souhaitez créer un nouveau projet Unity en utilisant ces paquets, c’est également possible.
- Vérifiez que vous avez une version supportée de Unity (2019.3 ou plus récente)
- Créer un nouveau projet Unity
- Si vous souhaitez utiliser le NetCode, ajoutez
Unity NetCode
du gestionnaire de paquets. - Si vous souhaitez utiliser le transport mais pas le NetCode, ajoutez
Unity Transport
du gestionnaire de paquets. - Les dépendances du paquet seront automatiquement tirées dans le projet
.
Laisser un commentaire