¿Qué estás buscando?
E-Book

Cuatro prácticas esenciales de DevOps para que todos sus juegos destaquen

Oct 31, 2023
Ilustración lineal de una trabajadora en un escritorio con un gran número 4 delante.
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

Pasar de las correcciones en caliente a las iteraciones y versiones rápidas.

Introducción

¿Trabajar 60 horas semanales, meses antes de un lanzamiento? ¿Transmitir código toda la noche para corregir errores milagrosos varias veces a la semana? ¿Añadir funciones inspiradas de última hora justo antes del lanzamiento?

Esta industria es famosa por su cadencia crunch-crunch-crunch. Y puede que tú seas alguien que se nutre de esa locura. Pero si la recompensa no llega al final del ejercicio, hay que preguntarse por qué.

Tal vez una crisis de lanzamiento fue demasiado para uno de sus desarrolladores clave, que renunció y retrasó el lanzamiento. Tal vez algún arreglo nocturno desencadenó una reacción en cadena de arreglos nocturnos. Puede que una función de última hora, no probada adecuadamente, amenazara con echar por tierra todo el proyecto. Sea cual sea el escenario concreto, una cosa está clara: Has estado aquí demasiadas veces.

Si estas tácticas no le parecen rentables, es porque, a pesar de sus heroicidades, no está dando a los clientes lo que quieren. La capacidad de programar sombreadores, animar el agua, imaginar niveles o configurar una CDN es sólo una parte de lo que se necesita para crear valor con éxito para la comunidad de jugadores. Para cruzar el abismo hacia una producción rentable, las habilidades más cruciales que necesitarás son aplicar sistemas y procesos que dirijan tus energías en una dirección: ofrecer grandes juegos a tus fans.

Se necesitan prácticas DevOps inteligentes para transformar un estudio del caos basado en crujidos a una tierra de flujos de trabajo productivos y eficaces. El objetivo es devolver a su equipo su recurso más preciado, el tiempo, para que pueda trabajar en las cosas que realmente importan.

Pero, ¿cuánto tiempo se puede recuperar realmente eliminando el crunch? Años, según Josh Nixdorf, director técnico de Electronic Arts: "Desde el punto de vista de mi equipo, uno de los parámetros más importantes que tenemos en cuenta son los años de esfuerzo ahorrados. Eso también ha aumentado exponencialmente a medida que avanzábamos en nuestro viaje DevOps, comenzando con unos 20 años de esfuerzo con nuestro primer intento de DevOps y superando los 1.000 años en la actualidad."

Al pasar a un proceso de desarrollo más racionalizado e intencionado, capacitará a su equipo para ofrecer mejores experiencias a sus jugadores, y ganará en capacidad para ofrecerlas más a menudo. Este libro electrónico presenta algunos principios y procesos DevOps fundamentales que son específicos de los entornos de desarrollo de juegos y destaca algunas herramientas DevOps esenciales para el buen funcionamiento de la pila tecnológica de un estudio.

¿Por qué DevOps?

El desarrollo de juegos se complica con el lanzamiento de cada generación de consolas. Los jugadores esperan cada vez mejores gráficos, actualizaciones frecuentes tras el lanzamiento y un soporte estelar. Si tu juego está lleno de bugs en el lanzamiento, es extremadamente difícil -si no imposible- recuperarlo. Como dijo el presidente de Xsolla, Chris Hewish, en esta entrevista de GamesIndustry.biz: "Siempre se puede construir sobre el éxito, pero no se puede crecer realmente desde las cenizas de un lanzamiento fallido."

Para maximizar el valor del jugador, es esencial que examine sus procesos y herramientas y, a continuación, identifique las oportunidades de optimización. ¿Sus flujos de trabajo actuales le permitirán mantener su juego a lo largo del tiempo? ¿Y los proyectos futuros?

Los equipos de estudio tienden a centrar su atención en cómo los desarrolladores y artistas pueden realizar tareas cada vez más difíciles. Pero este enfoque hace que sea demasiado fácil pasar por alto la comprensión del proceso. Por ejemplo, si un programador se detiene y comprueba su trabajo más a menudo (un proceso DevOps), pasará menos tiempo corrigiendo errores.

Sin esta comprensión del proceso, los estudios están condenados a perdurar:

  • Desarrolladores con exceso de trabajo que trabajan continuamente en modo crunch
  • Versiones plagadas de errores y comentarios negativos
  • Frustración generalizada causada por planes de desarrollo confusos
  • Esfuerzos inútiles en todos los ámbitos

La solución consiste en adoptar prácticas y herramientas DevOps que optimicen y acorten los ciclos de desarrollo para yield consistently performant games. Las ventajas son demasiadas para enumerarlas, pero he aquí algunas:

  • Automatización de procesos que liberan a los desarrolladores de tareas repetitivas
  • Toma de decisiones proactiva en lugar de reactiva
  • Integración y despliegue continuos que ofrecen a sus jugadores contenidos de mayor calidad
  • Mucho menos exceso de trabajo, estrés y agotamiento

¿Y el pago al final del ejercicio? Más de lo que se imagina: personal más contento, clientes más contentos y contables más felices.

Las cuatro prácticas esenciales

No necesita un ingeniero de DevOps para empezar a obtener los beneficios de un enfoque más parecido al de DevOps en su entorno de desarrollo. Incluso un desarrollador en solitario mejorará su productividad simplemente comprendiendo estas cuatro prácticas esenciales de DevOps.

Control de versiones robusto: Para casi cualquier programador, hacer copias de seguridad de los cambios en el código es tan automático como parpadear. Un simple commit garantiza que el trabajo esté seguro y no se sobrescriba ni se pierda. Pero el desarrollo de juegos implica la gestión y el seguimiento de una variedad mucho más amplia de activos, a veces enormes, generados por artistas distribuidos y otras personas. Esto requiere un sistema completo de Version Control con un potente conjunto de funciones.

Build Automation (CI/CD): La integración continua (IC) consiste en fusionar automáticamente el trabajo de una o varias fuentes en un repositorio central. La entrega continua (CD) consiste en crear automáticamente nuevas compilaciones a medida que se desarrolla. La implementación de una canalización automatizada CI/CD es una práctica recomendada establecida en la metodología ágil, que proporciona una forma coherente y automatizada de crear, empaquetar y probar el juego.

Gestión de artefactos: Más allá del código y los activos gestionados por un sistema de Version Control, los artefactos incluyen una amplia variedad de dependencias como imágenes base, paquetes de software, gráficos Helm, metadatos y otros recursos tangenciales pero críticos. Un gestor de artefactos complementa el control de versiones manteniendo un repositorio central para absolutamente todo lo necesario para crear o desplegar aplicaciones o juegos.

Pruebas frecuentes y automatizadas: Un enfoque DevOps rompe los tradicionales silos entre desarrolladores y control de calidad. Por ejemplo, los desarrolladores escriben el código en trozos más pequeños y realizan sus propias pruebas antes de enviarlo a la base de código principal para su compilación. Lo ideal es que estas pruebas sean continuas y automatizadas. Las versiones candidatas son más refinadas y los equipos de control de calidad profundizan mucho más en el rendimiento del juego.

Un hombre con un gran maletín caminando por una gran sala

1: Control de versiones robusto

Minimizar los conflictos de fusión y las pérdidas de trabajo

Cuando los artistas y los programadores se pelean constantemente, o cuando los conflictos de fusión provocan trabajo redundante o perdido, el culpable suele ser el control de versiones. Para aplicar las mejores prácticas de control de versiones en entornos de desarrollo de juegos, necesitarás un sistema con capacidades únicas.

En la práctica, los archivos de código son pequeños, independientemente de su longitud. Sin embargo, los gráficos de los juegos de nueva generación para consola y PC pueden ser comparativamente enormes, lo que convierte el ancho de banda de la red en un factor crítico. Extraer y enviar estos activos desde un repositorio central debe ser tan rápido y sencillo como lo es para cualquier otro activo de desarrollo.

¿El mayor problema de la mayoría de las soluciones de Version Control? Usabilidad: para todos.

Los programadores suelen ser expertos en interfaces de línea de comandos y complejas técnicas de bifurcación del control de versiones, mientras que para los artistas puede ser un reto limitarse a pulsar Guardar con la frecuencia suficiente. Pero sus dibujos y animaciones son tan importantes para el paquete final como el código.

Captura de pantalla de un sistema de control de versiones

Un sistema de control de versiones para el desarrollo de juegos tiene que ofrecer opciones complejas y detalladas a los desarrolladores y, al mismo tiempo, ser muy accesible para los usuarios menos técnicos. De lo contrario, los ingenieros se pasarán el tiempo explicando, una y otra vez, cómo funciona el sistema.

Una interfaz de usuario intuitiva y gráfica puede hacer que las ramificaciones y fusiones complejas sean mucho más fáciles de coordinar con los programadores, artistas y diseñadores que trabajan simultáneamente en distintos niveles y versiones destinadas a diferentes plataformas.

La trazabilidad significa poder ver exactamente cuándo y dónde se modificó un activo y en qué ramas se utiliza, y es una capacidad importante también para los equipos de control de calidad. Además, una seguridad adecuada en todos sus repositorios, ramas, etiquetas y rutas es un requisito mínimo.

Una cámara medieval

2: Build Automation (CI/CD)

Dedique más tiempo a crear y menos a gestionar canalizaciones y herramientas complejas

Un tema constante de todas las prácticas DevOps es dividir el trabajo en partes más pequeñas. Las unidades más pequeñas son más fáciles de manejar, más sencillas de probar y más rápidas de optimizar. También minimiza el esfuerzo perdido si se topa con un muro o decide cambiar de dirección.

En el desarrollo de juegos, eso significa fusionar con frecuencia los cambios en curso con los de otros y crear nuevas versiones. Crear compilaciones manualmente no es tan complicado, pero interrumpe otras tareas y el tiempo que lleva puede acumularse rápidamente. De nuevo, como muchas otras prácticas DevOps, la automatización es clave.

Un proceso de compilación automatizado se vincula a su sistema de control de versiones, supervisa los cambios y crea nuevas compilaciones con cada confirmación o cuando el número de cambios supera un umbral determinado. Esto significa que los desarrolladores pueden detectar y corregir las deficiencias a tiempo y con frecuencia, antes de que las cosas se les vayan de las manos. Mantiene el código y los activos en un estado más fiable y listo para el lanzamiento. Si necesita deshacer cambios por cualquier motivo, la última compilación realizada con éxito está lista. Además, otros equipos pueden acceder fácilmente a las compilaciones para actualizarlas y dar su opinión a tiempo.

Culturalmente, un enfoque DevOps para construir la automatización cambia las prioridades de su equipo para asegurarse de que su trabajo se hace bien antes de saltar a nuevas características. Avanzan poco a poco, basándose en pequeños éxitos, en lugar de hacer largos sprints y caer exhaustos. Genera confianza y reduce significativamente la probabilidad de descarrilar el trabajo de otra persona porque tu código no estaba del todo terminado.

Una gran ciudad futurista desde lejos

3: Gestión de artefactos

Lleve su juego adonde tiene que ir

Después de que el sistema CI/CD crea una nueva compilación, normalmente la envía a un repositorio de artefactos, donde el gestor de artefactos la registra con todas sus dependencias y otros componentes necesarios. Orquestar estos "otros componentes necesarios" es la razón por la que la gestión de artefactos es una práctica tan importante en el desarrollo de juegos DevOps.

Los artefactos pueden proceder de todo tipo de fuentes, como los desarrolladores internos, los artistas contratados y cualquier número de repositorios públicos de código fuente abierto. El gestor de artefactos es lo que garantiza que todo este contenido crítico se cargue y archive al tiempo que se comprueban las versiones y aprobaciones, se buscan problemas de seguridad, etc. Hay muchos puntos de fallo posibles.

Por supuesto, cualquier sistema útil de gestión de artefactos tiene unos requisitos mínimos. Debe ser capaz de gestionar metadatos para soportar el versionado y el filtrado basado en licencias. Debe permitir a los desarrolladores determinar qué contenidos se conservan y durante cuánto tiempo. Y, lo que es más importante, debe construirse como un sistema de alta disponibilidad para evitar tiempos de inactividad.

En comparación con la simple designación de algún cubo de S3 como repositorio del proyecto, la implementación de un gestor de artefactos real presenta ventajas considerables. Significa que mantener una biblioteca común para todos los recursos del proyecto mejora la colaboración, sobre todo entre artistas e ingenieros. Todos los recursos están registrados y son trazables, lo que hace que las construcciones sean predecibles y repetibles. Y libera a todos los miembros del equipo de la gestión de las implantaciones, para que puedan programar, animar, diseñar o hacer lo que mejor saben hacer.

Un hombre atraviesa enormes puertas por las que entra luz a raudales

4: Pruebas frecuentes y automatizadas

Responder a los comentarios y trabajar con agilidad

Dos principios conforman las prácticas eficaces de DevOps para el control de calidad:

Pruebas frecuentes al principio del desarrollo

Flujos de trabajo de control de calidad automatizados

Un carpintero mide dos veces para cortar una. En otras palabras, resuelven para la variable de longitud y luego prueban su trabajo antes de pasar al siguiente paso de producción. Los desarrolladores pueden hacer exactamente lo mismo escribiendo bloques de código más cortos y comprobándolos dos veces antes de escribir más. La línea entre el desarrollador y el control de calidad se difumina.

Las comprobaciones frecuentes del código por parte de los desarrolladores dan sus frutos cuando las compilaciones se someten a pruebas automatizadas. Cada vez que el compilador envía una nueva compilación al repositorio, se prueba. Con las pruebas automatizadas continuas, es mucho menos probable que los errores sobrevivan más allá del desarrollo y causen problemas en el código de producción. Y los que sobrevivan no serán tan virulentos.

Dicho esto, todos sabemos que los fallos ocurren. Las pruebas de control de calidad automatizadas van acompañadas de informes automatizados, tanto de los protocolos de pruebas como, una vez que el juego sale al mercado, de los dispositivos en los que se ejecuta. En cuanto el control de calidad o la instalación de un usuario detectan anomalías, el sistema comunica datos específicos sobre fallos y excepciones para permitir correcciones más rápidas. A menudo, los problemas aún no son evidentes para el usuario final y se pueden solucionar antes de que aparezcan como fallos perceptibles.

De todas las prácticas DevOps para entornos de desarrollo de juegos, las pruebas frecuentes y automatizadas pueden ser las más cruciales. Los jugadores quieren nuevos contenidos con regularidad, y los estudios están sometidos a una enorme presión para cumplir las fechas de lanzamiento con novedades rompedoras. Pero si un influencer importante tiene una mala experiencia además de un mal día, las ramificaciones pueden ser devastadoras. Es imperativo acertar con el control de calidad.

Los estudios de videojuegos hacen que funcione

DevOps y las prácticas ágiles son, en gran medida, hábitos de trabajo de sentido común. Pero cuando se aplican a juegos con código complejo, miles de activos y limitaciones de rendimiento implacables, los estudios necesitan herramientas DevOps específicas para garantizar un control meticuloso del código fuente, una integración y entrega continuas, una gestión de artefactos segura y protegida, y pruebas frecuentes y automatizadas.

El uso de herramientas DevOps que se integren estrechamente con su plataforma de desarrollo aumenta su eficacia. A continuación se muestran sólo algunos de los miles de creadores de Unity que utilizan nuestra creciente biblioteca de herramientas DevOps para mejorar sus flujos de trabajo y producir juegos impresionantes.

Estudio: Alta

En un Creator Spotlight en el canal de Twitch de Unity, Alta compartió cómo utilizan Unity Version Control (anteriormente Plastic SCM), para acelerar los ciclos de lanzamiento y entregar actualizaciones regulares de contenido a su gran y creciente base de fans. "Utilizamos Plastic SCM para nuestro control de código fuente. Nos permite tener ramas de diferentes versiones del proyecto", dice Boramy Unn, director de juegos de Alta. "Creamos una nueva rama para cada función, y luego para cualquier tipo de esfuerzo arriesgado dentro de cada función creamos sub-ramas".

Un hombre y una mujer de dibujos animados en un pueblo antiguo
Un cuento municipal de Alta

Estudio: KO_OP

KO_OP es un estudio de juegos de propiedad cooperativa con sede en Montreal. Buscaban una solución de Version Control que eliminara los obstáculos entre artistas e ingenieros mientras trabajaban en su último proyecto, Goodbye Volcano High. "Gluon[el flujo de trabajo para artistas de Unity Version Control] fue una grata sorpresa", afirma Jacob Blommestein, desarrollador de KO_OP, en un estudio de caso de Unity. "Los artistas no tenían que saber nada de ramificaciones ni fusiones. Se limitaron a añadir sus archivos .psd y el control de versiones fue transparente".

Una criatura femenina parecida a un pájaro con una guitarra
Goodbye Volcano High por KO_OP

Estudio: Sycoforge

En una entrevista en el blog de Unity, la directora ejecutiva Michela Rimensberger compartió cómo Unity Version Control está ayudando a Sycoforge y a su comunidad a trabajar juntos para dar vida a su ambicioso juego Return to Nangrim. "Desde el punto de vista técnico, Unity Version Control ha sido un salvavidas para la colaboración", afirma. "Probamos muchas herramientas de versionado diferentes y enseguida nos dimos cuenta de que ninguna de ellas se adaptaba realmente a las necesidades de una empresa de videojuegos. Mientras que algunos eran útiles para los programadores, los artistas sufrían brotes de sudor al utilizarlos. Con Version Control, encontramos un verdadero cambio de juego. Es fácil de usar tanto para no programadores como para programadores".

Una gran cámara medieval
Return to Nangrim de Sycoforge

Estudio: Estudios Cryptic

Cryptic Studios, filial de Perfect World, utiliza Backtrace para automatizar el seguimiento de fallos y errores. "Backtrace ha cambiado la forma en que exploramos y utilizamos los datos de accidentes", afirma Brent Lamb, productor jefe de Cryptic Studios, en un libro electrónico sobre Unity publicado este año. "Todo el mundo se siente cómodo haciendo consultas y entendiendo la salud de uno de nuestros partidos".

Una jugadora sujeta armas en tres poses
Quantum League de Nimble Giant Entertainment

Comienza hoy

Acelera tus flujos de trabajo y construye tu cadena de herramientas DevOps con las soluciones DevOps de Unity. Cree de forma más eficiente para llegar al mercado a tiempo y con la calidad que espera. Explore soluciones aquí.