<aside>
Objetivo: Este bloque pretende que el alumnado identifique los componentes principales de Photon Fusion 2 que intervienen en un proyecto multijugador, comprenda la responsabilidad específica de cada uno y sea capaz de situarlos correctamente dentro de un shooter online en Unity con modo Shared. No se busca todavía entrar en patrones concretos de disparo, daño o spawn, sino consolidar las piezas base sobre las que se construirá el resto del proyecto.
</aside>
Fusion no funciona como una única “caja negra” de red, sino como un conjunto de componentes que cumplen papeles distintos dentro de la simulación. Algunos pertenecen a la infraestructura general del cliente, otros representan entidades de red dentro de la sesión, y otros se encargan de sincronizar transformaciones o gestionar escenas. Entender bien esta separación evita uno de los errores más frecuentes al empezar: cargar un solo script o un solo objeto con responsabilidades que no le corresponden.
En este proyecto, los componentes más importantes que conviene dominar desde el principio son:
NetworkRunnerNetworkObjectNetworkBehaviourNetworkTransformNetworkSceneManagerDefaultCada uno resuelve un problema diferente, y mezclarlos conceptualmente suele llevar a una arquitectura confusa.
NetworkRunnerEl NetworkRunner es la pieza central del peer (instancia de red) local en Fusion. Es el componente encargado de iniciar la red, crear o unirse a una sesión, mantener la simulación y servir como punto de acceso a muchas operaciones globales del sistema, como carga de escenas, spawn de objetos y consulta de estado general de la sesión. Photon lo define como el componente central del sistema y lo utiliza como entrada para StartGame(...).
Dentro de esta práctica, el Runner no debe verse como un componente visual ni como un script más de una escena. Como se estableció en la arquitectura base del proyecto, el Runner debe pertenecer a la capa persistente de infraestructura y mantenerse activo entre cambios de escena. Photon recomienda que el Runner se instale en un objeto de conexión centralizado, responsable de configurar y arrancar la sesión de forma controlada.
NetworkObjectNetworkObject es el componente que convierte un GameObject en una entidad de red dentro de una sala. Photon lo describe como la representación de una única entidad de red en la room. Un objeto con NetworkObject puede existir de dos formas principales: como objeto cargado desde escena o como objeto generado mediante Runner.Spawn(...). Además, al adjuntarse a la simulación recibe un NetworkId único dentro de la sesión.
En términos prácticos, cualquier entidad del shooter que deba existir de forma coherente para todos los clientes debe apoyarse en un NetworkObject. Ejemplos claros serían: