
Introducción al motor multiplayer PHOTON. Visitamos el sitio web de PHOTON, explicamos sus características e ingresamos al mundo multiplayer.
Si no tienes mucha experiencia con UNITY es recomendable iniciar con la sección 4 que se explica más en detalle.
Aquí aprenderemos como configurar PHOTON 2 en el entorno de UNITY.
Configuramos el entorno de UNITY y descargamos los assest gratuitos que necesitaremos del Assest Store para iniciar el desarrollo de un juego 3D Multiplayer en 3ra. persona.
Aprenderemos como registrar un usuario que desea ingresar a una sala de Juego mediante PUN 2
Configurando el panel del Lobby y los avatars desde UI.
Configurando nuestro Avatar Selector (Panel de Usuario). UI.
Desarrollando los script C# del selector de avatars para cambio y selección.
Se describe los métodos necesarios en C# para crear una sala de juego y unirse a ella.
Se adjuntan como recursos las versiones finales los archivos script .cs zipeados de: AvatarBtnsCtrl.cs y AvatarSelectorCtrl.cs
Modificando el script con un nombre de sala fijo, probamos el acceso concurrente de 2 jugadores a una misma sala.
En este punto considera los siguiente:
El proyecto de la sección 2 se basa en INSPECTOR 3D. Sino tienes mucha experiencia con UNITY es mejor que pases primero a la Sección 4 donde se desarrolla un juego de carreras multiplayer explicado más a detalle.
Se desarrollan las interfaces de usuario y los scripts necesarios para crear un sistema de ingreso y salida de salas con lobby.
Realizamos ajustes sobre el script C# para probar el acceso de los jugadores.
En esta clase se adjunta un ZIP con el proyecto completo hasta el manejo de salas y acceso mediante las interfaces de usuario, por si tuviste algún problema al crear las interfaces o definir algún método.
Recuerda que debes ingresar tu propio ID de aplicación de PHOTON antes de abrir o ejecutar el proyecto.
Aprendemos sobre objectos compartidos o red. Cargamos nuestra primera escena multiplayer.
Configurando al jugador en la escena multiplayer. Instanciamos con Photon a cada jugador que se une a una sala determinada abierta.
Colocando los nombres de cada jugador de la sala sobre la cabeza de cada uno para identificarlo en el juego.
Hacemos uso de TextMeshPro.
En esta clase independizamos el control de movimiento (teclas) y la cámara entre los jugadores de sala de tal forma de darles un control separado.
Cambiamos el modelo de jugador 3D default por otro obtenido de Mixamo.com en forma gratuita. Se adjunta como recurso el modelo que se ha utilizado.
Agregamos un rifle a los jugadores en base un assest gratuito de Assest Store. Añadimos sonido de disparo y animación.
Añadimos objetos a la escena de juego y detectamos como RayCast el impacto sobre ellos usando colliders y detectando el objecto que fue alcanzado.
Analizamos como se comportan los objetos compartidos en red destruyendo cajas. Cuando un player destruye una de sus cajas, los otros players ven como desaparece la caja destruída.
En base a un componente gratuito del Assest Store, agregamos un efecto visual de disparos que emite casquillos de bala.
Apuntamos el RayCast hacia otro player o jugador de la sala, detectamos la colisión y restamos la vida del player para que figure sobre la cabeza del mismo.
Añadimos una animación que se ejecuta en el Animator luego de que un jugador es impactado y se activa el trigger "herido".
Se adjunta animación .fbx y archivo de sonido royalty free.
Se ha añade una mejor, retirando el sonido asociado al efecto de disparo para dejar solo el sonido que se llama en el método Fire. Además se coloca temporizador para detener el disparo continuo y dar una pequeña pausa entre disparo y disparo.
Agregamos un sistema de LOGIN: Interfaz de usuario y requisitos (PHP y MYSQL)
Diseño del panel de ingreso.
Explicación de los requisitos y herramientas que deben descargarse.
Se adjunta script para crear la tabla necesaria.
Desarrollo del Script PHP del servicio de validación. Acceso desde un script de UNITY al servicio.
Prueba del servicio con PostMan.
Demostración de funcionamiento.
Obteniendo un ID de aplicación gratuito de Photon 2. Seteo en UNITY 2019
Configurando el controlador de red para unirse a Photon mediante C#. Añadimos un assest gratuito para nuestros botones.
Configurando botones en el panel de usuario inicial (Canvas + Paneles), la conexión a Photon e importamos pantallas de usuario para ir trabajando.
Programando la navegación entre paneles y la unión a una sala de un player a una sala creada con nombre registrado por el usuario.
Configuramos un selector modelos de autos de carrera que el usuario puede elegir para ingresar al juego en base a un arreglo de modelo que descargamos de un assest gratuito del Asset Store.
Completamos los paneles necesarios para unir jugadores a una misma sala, sea al azar o creada por otro usuario.
Nro. 7: Configurando la lista de jugadores dentro de una misma sala. Pruebas de ingreso simultáneo con lista de jugadores.
Se adjunta el proyecto completo en UNITY 2019 como recurso.
Ajustando la lista de jugadores en la interfaz de usuario y su sincronización con el resto de jugadores. Pruebas.
Nro. 10: Salir de una sala y verificación de jugadores de listos.
PhotonNetwork.LeaveRoom();
Sincronizando clicks de estado listo entre los jugadores de una sala
Se adjuntan los métodos en el material adjunto.
Nro. 12: Configurando al jugador Master cuando este sale de la sala.
OnMasterClientSwitched
Desarrollamos el método para llamar a la escena de juego. Preparación de posiciones multiplayer para el inicio de la carrera en base a una package de escena descargable.
Sección inicia en el #16.
Controlador de Juego. Obteniendo el jugador seleccionado por la tabla hash.
Desarrollo del controlador de juego con instanciamiento de jugadores.C#
Nota: el video se llama 19 pero junta el 18 y 19.
Agregando movimiento a los vehículos en el juego. Script CtrlMovAuto C#
Asignación dinámica por scripts de cámaras para cada jugador en multiplayer.
Creación de un contador de cuenta regresiva. Activación de controles.
Colocando el nombre de cada vehículo para ser visto por los demás jugadores. C# + Canvas
Upgrade de versión de UNITY (a marzo 2021) del proyecto. Versión 2020.3.1f1
Configuración y uso de la aplicación demo de Photon Chat.
Se trata de un curso para aprender sobre el desarrollo de video juegos multiplayer con UNITY 2019 y Photon 2. Se tratan temas de la creación de la conexión al servidor de Photon, pasando por la creación de usuarios, lobbys de juego y salas para que los jugadores puedan unirse a una sesión de juego. Se trabajan los aspectos básicos de un juego multiplayer de disparo con impacto en objetos compartidos y otros jugadores.
Por favor, ten en cuenta que no se trata de un curso de UNITY básico. Por ejemplo, no se describe en detalle como hacer el selector de avatars de jugadores o como agregar objetos al juegos. El curso se centra en el tema de Unity con Photon para el manejo Multiplayer.
Si tu nivel de manejo de UNITY y C# es algo menos que intermedio te recomiendo iniciar con la sección 4 donde se explica más en detalle la construcción de las interfaces de usuario y el acceso simultáneo en la misma sala de varios jugadores para un juego de carrera de autos.
Se trata de una guía para todos aquellos entusiastas de desarrolladores que desean ingresar al mundo de los video juegos en línea compartidos.
El juego de carrera de autos multijugador es compatible con la última versión estable de UNITY del 2021 (marzo) que es la versión 2020.3.1f1. Se ha añadido un video con la conversión entre la versión 2019 y 2020.3.