Unity-Technologies / multiplayer
On diciembre 16, 2021 by adminBienvenido al repositorio Unity Real-time Multiplayer Alpha!
Aquí puedes encontrar todos los recursos que necesitas para empezar a prototipar tus propios juegos multijugador en tiempo real.
Manual de NetCode
Manual de Transporte
Pulsa aquí para visitar el foro
Contenido incluido
-
sampleproject/
– Proyecto de Unity que contiene todas las muestras de multijugador. -
sampleproject/Assets/Samples/Asteroids
– Clon de Asteroids que demuestra los conceptos básicos de netcode. -
sampleproject/Assets/Samples/LagCompensation
– Muestra que muestra la compensación de lag basada en Unity Physics. -
sampleproject/Assets/Samples/NetCube
– Muestra mostrando el uso básico del netcode. -
sampleproject/Assets/Samples/Ping
– Muestra mostrando el uso básico del transporte. -
sampleproject/Assets/Samples/Soaker
– Un soak tester para el transporte, para probar la carga típica de producción. -
sampleproject/Assets/Samples/CustomNetworkInterface
– Una muestra mostrando cómo usar una implementación de socket específica del juego en Unity Transport.
Paquete de transporte de Unity
El nuevo paquete de transporte de Unity que sustituirá a la API de bajo nivel de UNet.La vista previa del paquete de transporte soporta el establecimiento de conexiones y el envío de mensajes a aremote host. También contiene utilidades para serializar flujos de datos para enviarlos a través de la red.Para más información sobre el paquete de transporte, por favor consulte la Documentación de Transporte de Unity
Paquete NetCode de Unity
El paquete netcode proporciona las características multijugador necesarias para implementar la sincronización del mundo en un juego multijugador. Utiliza el paquete de transporte para la funcionalidad a nivel de socket y está hecho para el Entity Component System.Algunas cosas de más alto nivel que proporciona son
- Modelo de sincronización autorizada del servidor.
- Soporte RPC, útil para el flujo de control o los eventos de red.
- Boteo de mundo cliente/servidor para que tengas una clara separación de la lógica y puedas ejecutar un servidor con múltiples clientes en un solo proceso, como el editor al hacer pruebas.
- Sincronización de entidades con interpolación y predicción del lado del cliente funcionando por defecto.
- Herramientas de depuración de tráfico de red
- Soporte de flujo de conversión de GameObject, por lo que puede utilizar un modelo híbrido para añadir multijugador a un proyecto basado en GameObject/MonoBehaviour.
Para más información sobre el paquete netcode, por favor vea la Documentación de Unity NetCode
Muestras
Ping
La muestra ping es un buen punto de partida para aprender sobre todas las partes incluidas en el paquete de transporte. El cliente ping establece una conexión con el servidor ping, envía un mensaje ping y recibe una respuesta pong. Una vez que el pong es recibido el cliente se desconectará.Es un ejemplo simple que muestra cómo usar el nuevo paquete de transporte de Unity.Ping consiste en múltiples escenas, todas encontradas en sampleproject/Assets/Scenes/
.
-
PingMainThread.unity
– Una implementación de ping sólo para el hilo principal. -
Ping.unity
– Una versión completamente jobificada del cliente y el servidor de ping. -
PingClient.unity
– El mismo código de cliente jobificado quePing.unity
, pero sin el servidor. -
PingServer.unity
– La versión del servidor dedicado del ping jobificado. Una build headless (o Server Build en 2019.1) de Linux 64 bits de esta escena es lo que debería desplegarse en Multiplay. -
PingECS.unity
– Una versión ECS del ejemplo de ping jobificado.
Soaker
Una prueba de estrés que creará un número determinado de clientes y un servidor en el mismo proceso. Cada cliente enviará mensajes al ritmo especificado con el tamaño especificado y medirá las estadísticas.
Asteroids
Un pequeño juego que presenta las características del paquete Unity NetCode.
LagCompensation
Un ejemplo que muestra una forma de implementar la compensación de lag basada en Unity Physics. En un juego basado en el NetCode de Unity el cliente mostrará un estado de mundo antiguo, la compensación de lag permite al servidor tener esto en cuenta al realizar raycasts para que el jugador pueda apuntar a lo que realmente se muestra en el cliente.
NetCube
Una pequeña muestra que presenta las características del Paquete NetCode de Unity. Este es el código utilizado en la presentación de Unite sobre NetCode
Instalación
Para probar las muestras en este repositorio todo lo que necesitas hacer es abrirsampleprojects/
en Unity.Si deseas crear un nuevo proyecto de Unity usando estos paquetes eso también es posible.
- Asegúrate de que tienes una versión soportada de Unity (2019.3 o más reciente)
- Crea un nuevo proyecto de Unity
- Si quieres usar el NetCode, añade
Unity NetCode
desde el gestor de paquetes. - Si quieres usar el transporte pero no el NetCode, añade
Unity Transport
desde el gestor de paquetes. - Las dependencias de los paquetes se meterán automáticamente en el proyecto
.
Deja una respuesta