Estoy trabajando en un juego en línea que tendrá un procesamiento de detección de colisión muy pesado. Los modelos de jugadores colisionarán con otros jugadores, mobs, estructuras, terrenos y objetos sólidos que solo existen en el lado del servidor (no almacenados en los archivos de datos del cliente).
Por razones de seguridad, ¿debo hacer todas las detecciones de colisión del lado del servidor? ¿O debería hacer que el cliente haga la detección y que el servidor realice un seguimiento de alguna manera? Siento que será demasiado para que el servidor lo haga solo (estoy diseñando el motor para cientos de jugadores en un servidor).
¿Alguien sabe cómo lo hacen los MMO convencionales? Sé que casi todos los MMO en este momento son susceptibles a ataques físicos y usualmente los solucionan detectando ataques y prohibiendo personas. Prefiero que los hacks no funcionen en absoluto, al menos para el componente de física.
fuente
Si te preocupan los hacks y eso tiene un gran impacto en el juego, entonces la respuesta es SÍ.
En mi juego basado en navegador que es un tipo de juego de "construcción de ciudades", no me preocupan los hacks porque el motor del cliente no fallará cuando diseñe el estado del juego guardado.
Sin embargo, podría abusar de la jugabilidad ya que el jugador necesita gastar monedas del juego (o efectivo premium) para expandir el área jugable para construir más casas / edificios. Por lo tanto, voy a implementar una verificación simple de la cantidad de mosaicos ocupados por el edificio recién agregado contra cuántos mosaicos disponibles hay disponibles.
fuente