Introducción
Nuestro objetivo es democratizar el desarrollo de juegos proporcionando la formación y las herramientas necesarias para crear y explotar experiencias multijugador. En esta guía, trataremos los ocho factores del desarrollo de juegos multijugador que debes tener en cuenta.
Los 8 factores clave del desarrollo de juegos multijugador
Toda solución multijugador tiene ventajas y desventajas que deben tenerse en cuenta en el plan de desarrollo. Para crear tu experiencia multijugador, primero debes comprender los objetivos del juego para cada factor.
Las latencias de las redes pueden variar en función de la distancia entre ellas y del rendimiento de las redes a lo largo de las rutas de transmisión. Cuando juegas con otros, tienes que esperar a que sus dispositivos envíen información tanto como ellos esperan a que tú hagas lo mismo.
Dado que los distintos tipos de juego tienen requisitos diferentes en cuanto a la rapidez con la que progresa la partida, cada juego tiene que establecer qué nivel de tolerancia tiene a la latencia de la red. A veces, que los eventos de sincronización lleguen un poco más despacio está bien porque se puede ocultar la latencia con técnicas como la predicción y la reconciliación.
Se necesita mucho para que los juegos de un solo jugador funcionen bien y sean divertidos para una sola persona, pero ¿cómo puedes saber cuántos jugadores puede manejar tu juego a la vez? Técnicamente, las conexiones están limitadas por el modelo de red, donde cliente-servidor es capaz de manejar más conexiones simultáneas con más facilidad que peer-to-peer.
Cuantos más jugadores haya en una partida, más probable será que haya que sincronizar más actividad de red. Del mismo modo que se puede reducir el nivel de detalle de los activos para mantener la tasa de imágenes por segundo, también se puede cambiar el nivel de información transmitida entre pares para dar soporte a más jugadores.
En los juegos, está bien que ciertas partes de la simulación no estén sincronizadas entre todos los jugadores cuando esos elementos no son esenciales para el resultado de la partida. Se trata de una optimización, ya que los dispositivos de los jugadores y las máquinas servidoras dedicadas disponen de recursos finitos.
Otras mitigaciones que ayudan a reducir la escala de simulación sincronizada son: Reducir la frecuencia de actualización de datos del anfitrión, dividir el mundo en zonas actualizables por separado y hacer que los jugadores se suscriban a las actualizaciones sólo de las cosas que les interesan.
Las necesidades de precisión de tu juego afectan a todos los sistemas relacionados con el cálculo del estado del mundo y sus actores. Si quieres resultados más precisos, necesitarás más recursos para gestionar estas operaciones y el mayor consumo de memoria.
En multijugador, la precisión también influye en la sobrecarga de tu red y en la velocidad a la que puede funcionar tu servidor.
No todo necesita precisión, por lo que es importante separar lo que es importante para el reglamento y el resultado del juego. Por lo demás, puede utilizar aproximaciones de grado inferior para ahorrar en rendimiento global.
Hay que tener en cuenta muchas cosas a la hora de elegir el modelo adecuado para tu juego y tu base de jugadores.
Los desarrolladores individuales e independientes suelen inclinarse por soluciones más asequibles sin servidor, pero ten cuidado, ya que el bloqueo (más abajo) y la posibilidad de que aumenten las trampas pueden restringir el potencial de ingresos del juego que has creado.
Cuando se utilizan servicios para mejorar la conectividad, la capacidad del servidor y la latencia, entender que los servicios suelen realizar cargos por consumo basados en picos de usuarios concurrentes ayuda a la hora de intentar comprender qué opciones son las mejores para su título.
El desarrollo multijugador puede ser desalentador debido a la necesidad de resolver grados de complejidad cuando se trata de diferentes modelos de red, total de jugadores, rango de latencia y diseño de una buena escala de simulación sincronizada.
Existen soluciones a estos problemas, pero no todas son fáciles de usar o entender, por lo que es importante que los estudios lo evalúen todo correctamente antes de nada para no tener que recurrir a expertos en redes más adelante.
Las soluciones que incluyen una excelente documentación, ejemplos fáciles de seguir y una comunidad de soporte activa facilitan enormemente el esfuerzo para superar estas complejidades inherentes.
Cuando reúnes a los jugadores para que jueguen juntos, algunos tendrán la tentación de manipular el juego o el tráfico de la red para obtener una ventaja injusta, engañar al sistema o simplemente crear el caos y el desorden.
Los juegos casuales y de tipo cooperativo no tienen tantos incentivos para hacer trampas, pero los juegos competitivos suelen ser el blanco de jugadores perturbadores. Las capacidades de mitigación de trampas son importantes para contrarrestar estas acciones con el fin de proteger la reputación de su juego.
Cualquier información en la máquina local de un cliente será probablemente explotada en algún momento, por lo que los tipos de juegos que son vulnerables a las trampas deberían considerar alojar la lógica del servidor en hardware no cliente.
El último factor a tener en cuenta es el bloqueo, es decir, la limitación de cualquier opción futura una vez tomada la decisión. Si eliges un modelo de red, puede ser muy complicado cambiar a otros si tu juego necesita funciones más avanzadas (como la gestión de trampas).
Elegir una solución que sea más fácil de actualizar es importante para el éxito futuro de muchos juegos. Por ejemplo, los modelos peer-to-peer casi siempre requieren una reescritura completa para pasar a algún tipo de modelo cliente-servidor. Sin embargo, moverse entre variantes cliente-servidor es más factible si se planifica con antelación en el diseño del juego.