Grupo "Common"
El grupo Common tiene eventos que son usados para ambos, el anfitrión y los peers.
Cuando un peer se conecta y se desconecta, agregamos un registro al igual que en tutorial de chat.
Independientemente de si somos el anfitrión o el peer, siempre mostramos nuestra propia paleta por nuestro propio mouse.
Sync object no menciona la capa en que los objetos están, para ahorrar ancho de banda. De todos modos esto nunca cambia en este juego, pero este evento asegura que siempre aparecerán en la capa correcta.
El anfitrión y los peers actualizan su variable GameState de forma diferente, pero podemos manipular el mismo valor: si estamos en estado "get ready" o "go!", mostrando algún texto en la visualización de la puntuación.
Finalmente cuando el juego esta en estado "started", mostramos la puntuación que tuvo lugar en la variable points de cada paleta. Ambos jugadores ven la puntuación del anfitrión a la izquierda y la puntuación del peer a la derecha, correspondiente a la posición de las paletas. La paleta del anfitrión se puede tomar mediante el peer ID para el anfitrión ID y la paleta del peer puede ser recogida por el control del peer ID que no es host ID.
Conclusión
El modelo genera de un juego multiplayer de tiempo real es:
- El anfitrión tiene los comportamientos activados y ejecuta la lógica real del juego
- Los peers tienen sus comportamientos deshabilitados y solo usa "sync object" para saber lo que sucede. Sin embargo puede tener influencia el juego desde los valores de entrada del cliente, que el anfitrión lee y usa para afectar la jugabilidad.
El pong es un ejemplo simple, pero aún así involucra 40 eventos. Este ejemplo también no ha cubierto la predicción de entrada local o compensación de retraso. El diseño de los juegos multijugador puede ser un reto y puede tomar algún tiempo para aprender. Para pasar a los conceptos finales en un juego un poco más complejo, pasar a Multiplayer tutorial 4: real-time game.