Me gustaría crear un servidor de juego multijugador simple para un juego simple:
Se supone que el juego es similar a Command & Conquer, tienes algunos tanques y algunos soldados. Puede seleccionar un soldado y luego hacer clic en el mapa, a donde debe ir el soldado. Si el soldado llega a un área donde no puede ir, camina. Y los soldados pueden ser derribados por los enemigos.
¿Cómo debo estructurar el servidor del juego y qué debo hacer en el cliente?
Es decir, si un soldado se mueve de X a Y pero alrededor del edificio Z, supongo que el servidor debe poder calcular exactamente dónde se encuentra el soldado (en caso de que un enemigo le dispare), y el cliente también debe conocer la posición para pintando al soldado.
Lo que se debe hacer en el servidor y creo que tengo que diseñar un protocolo para esto. Creo que el servidor tiene que hacer un seguimiento del estado del juego y la hora. ¿Alguien tiene sugerencias sobre cómo hacer esto? o podría recomendar un poco de lectura?
fuente
Básicamente hay dos enfoques:
El cliente de confianza es un poco más complejo, pero tiene la ventaja de que puede descargar gran parte de sus cálculos del servidor. El costo de operación del servidor es uno de los mayores problemas para los juegos multijugador y reducirá seriamente su escalabilidad.
Un buen enfoque (para principiantes) es dejar que cada cliente de los jugadores maneje sus propias unidades. En el siguiente paso, puede usar ciclos de reserva para permitir que los jugadores clientes verifiquen las acciones de otros clientes. El servidor no debería necesitar hacer más que intercambiar mensajes, mantener la sincronización y garantizar la persistencia (por ejemplo, la base de datos).
Si planea tener algún tipo de lobby o chat, entonces maneje cada uno de estos temas en un servidor adicional. Hará las cosas mucho más fáciles en el futuro.
fuente