
Mathieu Duperré, Director General, Edgegap
Independientemente de si eres un desarrollador independiente o un editor AAA, crear juegos nunca es sencillo. Llevar un proyecto de juego desde el concepto inicial hasta el lanzamiento es una empresa enorme, sobre todo cuando se empiezan a incorporar elementos multijugador y sociales. A pesar de presupuestos desorbitados y enormes equipos de desarrolladores, innumerables juegos fracasan en su lanzamiento.
Afortunadamente, muchos de los obstáculos habituales pueden evitarse fácilmente y reducirse al mínimo las interrupciones en el calendario de lanzamiento si se conocen los posibles problemas de infraestructura de red y servidores en las fases clave del desarrollo: el ciclo de desarrollo principal, el prelanzamiento, el periodo de lanzamiento propiamente dicho y una vez lanzado el juego.
Problemas durante el ciclo principal de desarrollo
Algunos de los problemas más comunes que encontrarás en la parte técnica del ciclo de desarrollo principal pueden ser el resultado de:
- Canalizaciones CI/CD imperfectas o apresuradas. Se puede tardar días en enviar una nueva versión de prueba cuando se debería ser capaz de lanzar unas cuantas versiones cada día.
- Los equipos de desarrollo asumen demasiadas tareas internamente en lugar de buscar ayuda externa (código de red, motor de juego, servicios de backend).
- Intentar ahorrar fondos a través de proyectos de código abierto que con el tiempo se quedan obsoletos, no reciben soporte durante el ciclo de desarrollo o acaban en pozos de dinero para la ingeniería.
- Los desarrolladores esperan hasta después del lanzamiento para centrarse en elementos importantes como el crossplay.
- Los equipos de control de calidad no tienen acceso constante a la versión del juego.
¿Le suena familiar alguna de estas situaciones? Si es así, puede que haya llegado el momento de replantearse su estrategia principal y si se está adhiriendo a la metodología DevOps. ¿Tiene un enfoque estructurado o está dando bandazos a la izquierda y desviándose del camino?
Aunque desarrollar tu propio código de red y motor de juego puede parecer atractivo, es importante tener en cuenta los riesgos potenciales que pueden surgir más adelante. Si surgen problemas con el código de red o con un motor de juego propietario en una fase de desarrollo especialmente ajetreada, desearás haberlos subcontratado.
Considerar la posibilidad de delegar ciertos aspectos del desarrollo en socios externos puede ayudar a reducir la carga de trabajo de tu equipo y mejorar su eficiencia para que puedan centrarse en asuntos más urgentes.
Errores que hay que evitar justo antes del lanzamiento
¿Uno de los mayores errores que puedes cometer justo antes del lanzamiento? Subestimar su CCU (usuarios concurrentes en todo el mundo) y emplear un porcentaje de buffer bajo, en torno al 10%. Si calculas mal tu CCU, someterás a demasiada presión a tus servidores y servicios de backend en general, y es una de las razones más comunes por las que los jugadores sufren caídas en torno al lanzamiento. Del mismo modo, no subestimes el número de regiones en las que necesitarás servidores. El lanzamiento de un juego global requiere una distribución equitativa de servidores en todo el mundo para evitar problemas de latencia.
Cuando se trata de servidores, siempre es mejor planificar con antelación y reducirlos, y no al revés. Da prioridad a los socios de red que ofrezcan opciones de pago por uso para el acceso a servidores, de modo que si necesitas reducir (o aumentar) el tamaño, puedas hacerlo fácilmente. Esta debería ser siempre la opción preferida y evitará que te cobren por servidores que no estás utilizando. Es importante ser consciente de los riesgos asociados a la sobreestimación, ya que esto puede llevar a los estudios a firmar contratos a largo plazo y, en última instancia, a contar con demasiados recursos.
Por último, una cuestión que puede causar muchos problemas a desarrolladores y estudios son las leyes de regulación de la protección de datos. He oído muchas historias de terror sobre estudios que hacen la vista gorda a leyes de privacidad como el Reglamento General de Protección de Datos (GDPR) y la Ley de Privacidad del Consumidor de California (CCPA). Asegúrate de haber comprobado las normas específicas relativas a la recopilación de datos en tu región lo antes posible para evitar una frenética carrera de papeleo hacia el final del desarrollo o, peor aún, incurrir en costosas multas.
Obstáculos el día del lanzamiento
Puede ser fácil pensar que has superado lo peor una vez que llegas al día del lanzamiento, pero esta suele ser la fase en la que pueden aparecer de repente problemas importantes. Es posible que notes un bombardeo de respuestas negativas en Twitter, Steam y otras plataformas sobre problemas críticos con el juego: asegúrate de abordarlas en lugar de ignorarlas. Estas respuestas pueden ser indicadores importantes de cómo están respondiendo los jugadores a tu juego y de si has tenido en cuenta sus comentarios en la fase de desarrollo.
Una vez lanzado el juego, tendrás el indicador más claro de cuántos servidores necesitarás para dar soporte a los jugadores. Aquí es donde tu planificación demostrará ser correcta o errónea si habías reservado, por ejemplo, 1000, pero sólo necesitas 200.
Un plan de apoyo 24/7 es una consideración importante cuando el juego está en vivo, esto permitirá correcciones rápidas para negar tantas interrupciones como sea posible. Una solución DDoS de bajo coste también es una faceta crucial a tener en cuenta. Un orquestador de servidores ayudará a los desarrolladores a gestionar la afluencia de tráfico, además de capturar datos cruciales que pueden incorporarse al juego como parte de la fase de observabilidad.
Problemas posteriores al lanzamiento
Ahora que tu juego está en el mundo, puede existir una fuerte tentación de introducir una plétora de nuevos elementos en el juego para mejorar la experiencia del jugador. Aunque a primera vista son buenas ideas, los nuevos mods o actualizaciones menores pueden resultar problemáticos y contener errores importantes. Responder a estos nuevos problemas puede distraer y llevar semanas o incluso meses resolverlos.
Además, si no se ha planificado adecuadamente en una fase anterior del proceso, las actualizaciones importantes de los servidores del juego pueden provocar problemas de mantenimiento y un tiempo de inactividad significativo para la base de jugadores. Si los jugadores tienen una mala experiencia en el lanzamiento, lo más probable es que se pasen a lo siguiente. Cuando EA lanzó Battlefield 2042Los problemas con el servidor, los tiempos de carga y los errores que rompían el juego plagaron el juego. En cuestión de meses, el número de jugadores descendió a menos de 1.000 simultáneos en Steam.
Por supuesto, hay varias formas de evitar estos problemas. Es fundamental elegir un backend que admita pruebas A/B multiversión y facilite actualizaciones continuas sin interrupciones. Es difícil encontrar un jugador que disfrute con un juego injugable. La automatización también puede ayudar en la cadena de producción, lo que incluye el despliegue de actualizaciones y mejoras rápidas que reducirán el factor de error humano.
Otra consideración que a menudo se pasa por alto es la subcontratación de proveedores de redes y plataformas para eliminar un gran equipo interno dedicado a DevOps o Ingeniería. Este es un trabajo intensivo que ocupará el tiempo del personal, y la externalización es una opción viable y tiene mucho sentido para los estudios más pequeños, especialmente para perseguir esta opción puramente desde una perspectiva de ahorro de costes.
Hacer que los bordes cuenten
Los desarrolladores de juegos suelen pasar por alto la computación en los bordes, pero puede aliviar muchos de los problemas descritos aquí, sobre todo los relacionados con el aprovisionamiento de servidores y la latencia. La tecnología Edge acerca la computación y el almacenamiento de datos al origen de los mismos, situándolos en el extremo de la red donde el rendimiento es más óptimo. Esto reduce los desplazamientos innecesarios y acelera drásticamente el proceso, lo que se traduce en una experiencia casi sin retrasos.
Si estás pensando en el juego cruzado para tu juego, los requisitos de infraestructura se vuelven más complejos. El Edge Computing ayuda a evitar algunos de los problemas de retardo más molestos que surgen al jugar en distintas plataformas. A medida que el juego cruzado se convierte en una opción más a tener en cuenta por los desarrolladores, la computación de borde, junto con la automatización, puede convertirse en una de las soluciones a algunos de los problemas asociados. Los desarrolladores deben tener en cuenta la parte de automatización de la ecuación a la hora de planificar su proyecto de juego. Esto es aún más importante cuando se añaden al juego más elementos que dependen de la latencia.
No planificar, planificar para fracasar
No existe un enfoque único para el desarrollo de juegos o los retos que conlleva. Pero tomar algunas de las medidas descritas anteriormente puede ayudar a anular posibles problemas y reducir su impacto, evitando el descarrilamiento total de un juego antes incluso de su lanzamiento.
Pequeños pasos como depositar tu confianza en socios externos o buscar tecnologías como Edge computing para exprimir el máximo rendimiento posible de tu juego pueden parecer pequeños, pero su impacto en el desarrollo no puede subestimarse.
Planificar diferentes eventualidades en las fases clave del desarrollo contribuirá en gran medida a garantizar que tu juego sea lo mejor posible en el momento de su lanzamiento. De este modo, tu juego tendrá más posibilidades de convertirse en un éxito duradero, y no en un relámpago empañado por problemas con el servidor o errores.
El aspecto logístico de la creación de un juego no siempre es glamuroso o emocionante, pero es inevitable. Si tu proceso de desarrollo se ve afectado por problemas con el servidor, te alegrarás de haberlo planeado con antelación.