Los costos de productividad ocultos que interrumpen tus cronogramas de lanzamiento

Jan 21, 2022
Un afloramiento rocoso en una isla

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.

¿Cuántas veces en el último mes ha tenido que dejar lo que estaba haciendo y ponerse manos a la obra para resolver un problema urgente que necesita una solución ahora mismo? Uno de los errores más comunes en el desarrollo de juegos es dejar que pequeñas ineficiencias aparentemente intrascendentes se conviertan en problemas mayores.

Cuando tu estado de flujo se interrumpe varias veces al día, ya sea esperando a que se descargue un archivo de proyecto o resolviendo otro conflicto de fusión, es cuando las cosas empiezan a fallar. Los errores empiezan a infiltrarse en tu código. Los ciclos de despliegue se alargan. Pasar la noche en vela se convierte en la norma. La fricción aumenta con cada desliz y pronto se hace sentir en todo el equipo. La frustración crece, la moral empieza a decaer y está claro que la forma de hacer las cosas en el estudio no funciona.

La implantación de soluciones DevOps puede ayudarle a romper este ciclo caótico. Con los procesos adecuados, usted y todos los miembros de su equipo podrán dedicar menos tiempo a cambiar de tarea y recuperar la concentración que necesitan para producir su mejor trabajo. Unos principios operativos bien definidos y el conjunto adecuado de herramientas mejoran la colaboración y aceleran los ciclos de implantación. Lance juegos pulidos y estables a tiempo y con calidad, una y otra vez, todo ello reduciendo al mínimo los crujidos.

Unity ha trabajado con innumerables desarrolladores y estudios de juegos a lo largo de los años, y muchos de los expertos de nuestro equipo son ellos mismos desarrolladores de juegos. Según nuestra experiencia, los sistemas de control de versiones (VCS) son la base para un DevOps eficaz, pero también pueden ser uno de los mayores puntos de dolor para los estudios. No es una coincidencia.

En este libro electrónico, hemos recopilado información de nuestros equipos de producto e ingeniería sobre tres de los escollos más comunes del control de versiones que impiden a los estudios hacer lo que mejor saben hacer: crear. Siga leyendo para echar un vistazo a los escollos de productividad ocultos que alteran sus plazos de publicación y cómo las soluciones de VCS, como el componente Version Control de Unity DevOps, pueden ayudarle a volver al buen camino.

Problema nº 1: Desarrollo paralelo

La situación: Un proyecto, varios flujos de trabajo

A menos que seas un equipo de uno, tendrás a varios miembros trabajando en el mismo proyecto. Disponer de manos adicionales puede, obviamente, ayudarte a escalar a gran velocidad, pero también puede ralentizar las cosas.

El desarrollo paralelo se produce cuando varios miembros del equipo trabajan en varias ramas, con la posibilidad de fusionarlas posteriormente. Los programadores suelen trabajar así, mientras que los artistas tienden a trabajar en una única rama con bloqueos, ya que se ocupan de archivos y activos individuales.

El coste: Tiempo que nunca recuperarás

El impacto sobre la productividad es aquí obvio e inmenso: Toneladas de tiempo perdido.

El coste en productividad de tener que rehacer el trabajo, resolver conflictos de fusión, localizar archivos perdidos o esperar a descargar cambios que ya habías comprometido antes se traduce en ciclos de publicación más lentos, conflictos internos entre los miembros del equipo y la incapacidad de corregir rápidamente los errores que los usuarios encuentran en el juego.

El problema: Trabajo perdido y luchas internas

Aunque el uso de un VCS es ventajoso incluso para un desarrollador de juegos en solitario, resulta esencial cuando se trabaja con varios miembros del equipo.

No utilizar ningún control de versiones puede dar lugar rápidamente a una situación en la que los desarrolladores sobrescriban el código de los demás, con la consiguiente pérdida de trabajo y mucha frustración. Sin embargo, incluso el uso de herramientas VCS comunes hoy en día crea problemas a los equipos de desarrollo de juegos.

Por ejemplo, si todo el equipo utiliza Git, una de las situaciones más habituales es que algunos de los miembros del equipo con menos conocimientos técnicos, como los artistas, no conozcan bien la herramienta. Les resulta muy fácil perder los cambios, sobre todo sin la posibilidad de bloquear los archivos. Y como el sistema no es transparente ni fácil de seguir, a menudo se confía demasiado en los desarrolladores para resolver los problemas, lo que se traduce en más trabajo perdido.

Debido a la incapacidad de Git para bloquear archivos, muchos equipos de desarrollo de juegos utilizan Perforce en todo el equipo para ceñirse a un único sistema y fuente de verdad. Sin embargo, los desarrolladores pueden estar insatisfechos con la velocidad y el rendimiento del enfoque de "flujos de tareas" de Perforce para la ramificación y la fusión. Esto puede añadir otra capa de complejidad a un proceso ya de por sí complejo, especialmente al configurar la integración continua. La mayoría de los creadores con los que hablamos dicen que ni siquiera probarían el desarrollo basado en tareas con Perforce. No es el flujo de trabajo ideal.

Un trío animado tocando música en el escenario

Goodbye Volcano High por KO_OP

La solución: Organización coherente del proyecto

Contar con normas claras para cosas como la organización de archivos y asegurarse de que son ampliamente socializadas mantiene a tu equipo trabajando al unísono.

También recomiendo elegir un VCS que funcione para todos los miembros de tu equipo. Por ejemplo, los artistas deben poder contribuir al proyecto de forma independiente, sin depender de los programadores. Al implantar un sistema de control de versiones fácil de usar para todos, realizar cambios en los archivos del proyecto se convierte en un proceso menos intimidatorio.

El estudio KO_OP, con sede en Montreal, tuvo que lidiar con la asimetría y la falta de comunicación entre artistas y programadores durante la creación de su juego Goodbye Volcano High. Descubra cómo resolvieron los problemas de bloqueo del progreso implantando el VCS adecuado.

Problema nº 2: Herramientas redundantes y silos

La situación: Diferentes funciones, diferentes herramientas

Los equipos de usuarios suelen empezar con una única solución de control de versiones y, tras encontrar problemas, pasan a utilizar varios sistemas. En el fondo, los desarrolladores y los artistas necesitan flujos de trabajo diferentes porque trabajan con código y no con binarios. Como resultado, los equipos contarán con artistas que trabajen con una herramienta como Perforce, mientras que los desarrolladores lo harán con GitLab o GitHub.

El coste: El doble de trabajo sin la recompensa

En el desarrollo de juegos, cada segundo es necesario para iterar rápidamente y probar nuevas ideas. Aunque a menudo se adoptan múltiples herramientas de Version Control para resolver problemas que hacen perder el tiempo, como la sincronización o los conflictos de fusión, a menudo pueden agravar estos problemas o crear otros drenajes. Por ejemplo, pueden aumentar el tiempo dedicado a crear nuevos procesos o flujos de trabajo sin integraciones bilaterales, o el coste financiero de mantener dos sistemas.

El problema: Más flujos de trabajo, más problemas, más mantenimiento

Para explicarlo mejor, un equipo suele empezar basándose en Perforce o en Git (por ejemplo, GitLab/GitHub), y lidiar con las dificultades que genera cada flujo de trabajo. En Perforce, pierden la capacidad de trabajar de forma distribuida y con ramas efímeras. Con Git, se encuentran con problemas de almacenamiento de archivos debido al trabajo distribuido. Los equipos pueden utilizar Git Large File Storage (LFS) para asegurarse de que sólo se almacena una versión del binario en la máquina, pero esto se hace a costa de la velocidad y de un flujo de trabajo confuso que pretende estar centralizado pero no lo está.

Hay dos problemas comunes que los estudios encontrarán al utilizar soluciones múltiples. La primera es mantener dos tipos de tecnologías de control de versiones para el proyecto, lo que suele incluir engorrosos flujos de trabajo o procesos para integrar ambas. El segundo se centra en el conocimiento y la formación. Con dos sistemas muy diferentes, se necesitan expertos en ambos para ayudar a desbloquear a un creador o a todo un equipo cuando algo va mal.

Arte del juego Crying Suns

Crying Suns de Alt Shift

La solución: Evalúe y optimice su cadena de herramientas

Lo ideal sería que todos los activos se gestionaran y versionaran en el mismo sistema de control de versiones, con flujos de trabajo adaptados a las distintas necesidades de su equipo.

Es importante examinar los procesos y las herramientas y decidir si realmente funcionan en el estudio.

Esto permitiría a su estudio evitar muchos de estos dolores de cabeza comunes en torno a tener que crear tuberías dispares para transferir activos de un equipo a otro.

Recomendamos un único VCS que pueda acomodar múltiples flujos de trabajo o tenga sólidas integraciones entre sistemas, para permitir el seguimiento de quién está trabajando en qué y las últimas versiones de cada activo.

Empiece por saber qué debe tener en cuenta al evaluar sistemas de control de versiones.

Problema nº 3: Demasiado grande para comprometerse

La situación: Los archivos del proyecto necesitan actualizaciones frecuentes

Trabajar con archivos y binarios de gran tamaño es uno de los elementos únicos de crear un juego, pero puede causar problemas con el control de versiones. Supongamos que eres un desarrollador que trabaja con Git e intentas registrar tu código. Para ello, primero tienes que actualizar tu espacio de trabajo con los últimos cambios de otros miembros del equipo (esto equivale a tirar y empujar).

El coste: Más tiempo perdido

El tiempo que se pasa esperando a que se descarguen las actualizaciones es tiempo perdido. Ese tiempo suma. Un sistema más rápido permite a sus equipos centrarse en completar sus tareas sin que las herramientas paralicen los proyectos.

El problema: Interrupciones del flujo de trabajo

Algunos sistemas de Version Control son extremadamente lentos cuando se trata de trabajar con binarios de gran tamaño. Imagina lo frustrante que es tener que esperar cinco minutos entre el momento en que haces clic en actualizar y el momento en que te registras y por fin puedes seguir con tu vida.

En el desarrollo de juegos hay que moverse rápido. Si se tarda demasiado en aplicar los cambios en el juego o en responder a los errores debido a ineficiencias al principio del proceso, estos problemas se agravarán más adelante.

Muchos estudios utilizan soluciones como Perforce o Git LFS para resolver los problemas que plantean los activos binarios de gran tamaño, pero cada una de ellas conlleva los mismos compromisos que se esbozan a la izquierda.

Choza abandonada en invierno de Regreso a Nangrim

Return to Nangrim de Sycoforge

La solución: Utilizar el control de versiones basado en archivos

Elegir un VCS basado en archivos puede acelerar mucho el trabajo.

Con un sistema así, los colaboradores pueden descargar sólo los archivos en los que necesitan hacer cambios, en lugar de todo el proyecto. Es mucho más rápido y seguro, pero tienes que asegurarte de que todo el mundo organiza sus archivos de la misma manera para que sea realmente eficaz.

Piense con antelación a la hora de elegir su solución de control de versiones, ya que puede ahorrarle muchos dolores de cabeza más adelante. Los juegos son cada vez más grandes y complicados: cuanto antes implante el sistema de control de versiones adecuado, mejor preparado estará para un éxito duradero.

Conoce el enfoque de Sycoforge hacia el desarrollo iterativo con su juego Return to Nangrim y cómo Unity Version Control les ayudó a ajustarse al creciente alcance de su proyecto.

Unity Version Control para gamedev

El Version Control es fundamental para DevOps, pero también es una fuente central de conflictos para los estudios de juegos, y no hay muchas soluciones que realmente funcionen para todos los colaboradores. Version Control de Unity DevOps está en una posición única para apoyar a los desarrolladores de juegos precisamente porque resuelve estos problemas de pérdida de tiempo. He aquí cómo se compara con la competencia.

Un jugador pelirrojo de pie en la selva

Desarrollo paralelo

Facilitar eficazmente el desarrollo paralelo es imprescindible, y cada miembro del equipo puede tener preferencias diferentes. Las herramientas basadas en Git, como GitHub, GitLab o BitBucket, son algunos de los sistemas de control de versiones más populares, especialmente entre los desarrolladores. Debido a la popularidad de Git, los usuarios tendrán acceso a una gran cantidad de mejoras, integraciones e interoperabilidad. Sin embargo, a medida que aumenta el tamaño del equipo y del proyecto, muchos estudios de juegos grandes y AAA utilizan una solución de flujo de trabajo centralizado como Perforce para acomodar mejor a los artistas y a los usuarios no técnicos mientras manejan grandes activos binarios.

Gracias a sus sólidas capacidades de ramificación y fusión para desarrolladores y a la posibilidad de trabajar de forma centralizada y bloquear archivos para artistas, un sistema como Unity Version Control puede ser de gran ayuda. Si está trabajando en el Editor de Unity, la perfecta integración de Version Control con la Unity UI fomenta la colaboración.

Herramientas redundantes y silos

Aunque, por lo general, los artistas y los programadores tienen preferencias diferentes en cuanto a la forma de utilizar el control de versiones, es importante conocer los pros y los contras de corregir en exceso en uno u otro sentido. Especialmente cuando se trabaja a distancia, disponer de un único sistema de control de versiones y de una "fuente de la verdad" puede ayudar a eliminar muchas de las frustraciones y pérdidas de tiempo que supone mantener varios canales diferentes.

Incluso con sus diversos puntos fuertes y débiles, muchos sistemas como GitHub, Perforce o incluso Dropbox o Google Drive pueden configurarse para adaptarse a tu flujo de trabajo. Busca integraciones o extensiones que te ayuden a reducir algunos de los problemas de colaboración, u opta por un sistema único diseñado para todas las partes.

Unity Version Control soporta trabajar con un único repositorio en diferentes modos. Esta función le ofrece la potencia de múltiples flujos de trabajo sin la molestia de mantener y conectar dos sistemas diferentes.

En Unity Version Control, un artista puede utilizar Gluon UI para trabajar con el repositorio en modo centralizado, simulando así el mismo estilo de trabajo con una solución como Perforce. Un desarrollador puede utilizar la interfaz de usuario predeterminada para trabajar con el repositorio como en un modo distribuido, simulando así el mismo flujo de trabajo que una solución basada en Git como GitHub o GitLab.

Una pequeña criatura junto a un charco de agua

Demasiado grande para comprometerse

El desarrollo de juegos implica trabajar con grandes proyectos. A medida que su estudio crece, el sistema de gestión del control de código fuente debe ser capaz de crecer también.

Aunque el modelo distribuido de Git no fue diseñado para un caso de uso de desarrollo de juegos, existen varias extensiones diseñadas para permitir a Git manejar archivos binarios con mayor facilidad, siendo Git-LFS la más utilizada. Aun así, Git no se diseñó pensando en la gestión de activos artísticos, razón por la que otras soluciones como Perforce suelen implantarse en los grandes estudios.

Unity Version Control es la solución de mayor rendimiento en el mercado cuando se trata de manejar archivos de gran tamaño, lo que es ideal para el desarrollo de juegos. Reduce significativamente el tiempo de inactividad esperando a que los archivos se carguen - Unity Version Control puede ser hasta 5-8 veces más rápido que otras soluciones. Sigues tratando el mismo contenido, pero ahora no estás esperando una descarga de cinco minutos varias veces al día. En su lugar, obtendrá lo que necesita en cuestión de segundos.

Crea sin concesiones

Unity Version Control está diseñado específicamente para el desarrollo de juegos, apoyando a artistas y desarrolladores en estudios de todos los tamaños. Ofrece a los artistas flujos de trabajo basados en archivos y una interfaz de usuario intuitiva, además de incluir sólidas funciones de bifurcación y fusión para los programadores, con el fin de garantizar que todos los usuarios se beneficien de una mayor colaboración y agilidad de iteración.

Unity Version Control centraliza el trabajo sin repositorios clonados, y admite archivos y repositorios enormes con transferencias de datos rápidas y optimizadas para WAN. Su herramienta de flujo de trabajo Gluon permite a los miembros del equipo con menos conocimientos técnicos aplicar fácilmente cualquier protocolo de control de versiones.

Acelera tus flujos de trabajo y construye tu cadena de herramientas DevOps con Unity DevOps. Creamos sin concesiones y trabajamos con eficacia para llegar al mercado a tiempo y con la calidad que usted espera. Empiece gratis hoy mismo.

Obtener el libro electrónico

Rellene este formulario para acceder a las últimas novedades y soluciones de los expertos del sector.