Lo que podemos aprender de la industria automotriz como desarrolladores
Los autos son el método de transporte personal por elección. En 2010 se estimaba que había cerca de un billón de autos circulando. Eso es prácticamente 1 auto por cada 7 personas en el planeta! Con el volumen de producción necesario para satisfacer la demanda de este mercado, los fabricantes de automóviles han adoptado varias técnicas que aceleran la producción de nuevos autos y reducen el tiempo y dinero que deben invertir para su diseño y manufacturación. La clave está en la fabricación modular. No es ningún secreto que los vehículos que usamos hoy comparten partes entre sí, desde el sistema de frenos hasta la dirección, el tren motriz y el motor de combustión interna. Las armadoras invierten mucho tiempo y dinero en el desarrollo de sistemas de producción que les reducirán tiempo y esfuerzo a la larga. Desde los procesos de producción desarrollados por Toyota hasta la modularidad impulsada por Volkswagen Group a través de su plataforma MQB, los fabricantes de automóviles nos pueden enseñar mucho a los desarrolladores de videojuegos. Cómo es eso? Permítame explicarlo:
Plataforma MQB - Volkswagen Group
Un fabricante de automóviles inventa una parte, plataforma y modelo de producción para que no tenga que reinventarlo en mucho tiempo. Si vemos, por ejemplo, el uso de una plataforma como la MQB en varios modelos de Volkswagen, Seat, Skoda y Audi, nos daremos cuenta el grado de fabricación modular que estos implementan. En una amplia gama de modelos, sedanes, hatchbacks y hasta SUVs, la estructura del auto es la misma. En lugar de desarrollar varias decenas de modelos desde cero, un fabricante como Volkswagen diseña a sus vehículos a partir de bloques que puede compartir y adaptar y ligeramente, en lugar de reinventar la rueda. Esto también permite la reducción del tiempo de producción en aproximadamente 30% Un artista, así como otros perfiles dentro de la industria del desarrollo de juegos, somos imitadores de la realidad. Y, como buenos imitadores de la realidad, debemos aprender cómo es que se resuelven problemas en ella para poderlo aplicar en el desarrollo de juegos. Modelar un objeto una vez para no tener que repetirlo Imaginemos, por un momento, que queremos modelar un automóvil (aunque este método aplica para prácticamente cualquier otra cosa). Tenemos varias opciones: Una es tomar la referencia de un auto real y copiar la forma de la carrocería, produciendo un cascarón que podemos usar una vez, solamente con ese vehículo. Si, por ejemplo, modelamos un auto deportivo y después queremos modelar un sedán, la gran mayoría de la inversión en tiempo, dinero y esfuerzo que le pusimos al primero no aplicará al segundo. Tendremos que empezar desde cero y este proceso se repite. Esto, a la larga, es terriblemente ineficiente. Si tenemos que modelar cientos de automóviles y la mayoría de ellos se parecen entre sí, por qué reinventar la rueda con cada uno? La solución es usar una librería de modelos: Todo componente que comparte un auto, como las llantas, rines, chasis, tren motriz, componentes interiores, etc. se puede usar para construir nuevos modelos como si usáramos bloques de LEGO. Así, en lugar de modelar un automóvil como un cascarón vacío, tendríamos toda una librería de partes que podemos mezclar y reutilizar cuantas veces queramos. Y para generar variedad, solamente tendríamos que ir generando variaciones de los modelos en sus respectivas librerías. Podemos tener una librería de rines, llantas, asientos, molduras, puertas, paneles, motores, plataformas base, etc. que referenciamos una y otra vez para construir. El esfuerzo extra invertido en desarrollar un sistema modular rinde frutos al querer generar variaciones y construir un mundo de juego agradable para nuestros jugadores o cualquier otro tipo de cliente que podamos tener. Este modelo no nos sirve únicamente para automóviles, sino que podemos aplicarlo prácticamente para lo que sea (con la excepción notable de personajes, porque estos deben tener un proceso de diseño que les de una personalidad muy específica, algo que los identifique). Una buena pregunta es, si podemos hacer algo que nos ahorrará tiempo, dinero y esfuerzo, por qué no lo estamos haciendo? Qué nos detiene, y, sobre todo, qué podemos hacer para arreglarlo?
La importancia del flujo de trabajo modular
Es muy probable que cada uno de nosotros comience a desarrollarse en un nicho de mercado: Algunos se dedicarán al desarrollo de RPGs, mientras que otros harán juegos de plataformas y otros más se dedicarán a construir simulaciones que salvan vidas. Algo es claro: Si queremos ser capaces de terminar productos en tiempo y forma, sería sabio invertir en un proceso de desarrollo de assets modular, el construir nuestras propias librerías de modelos para que en un futuro podamos construir mundos enteros, referenciando algo tan simple como un árbol, un poste para la calle, un brazo para robot o la llanta de un automóvil y trabajando en variaciones. Digamos, por ejemplo, que queremos desarrollar un videojuego post-apocalíptico para el que necesitamos chatarra. Tenemos toda una librería de partes para autos que podemos copiar y modificar para que se adapte al proyecto (Agregar mugre y óxido, deformar, hacer variaciones de la textura para que parezca quemada, etc.) Así, la producción de un videojuego se aligera considerablemente y nosotros como desarrolladores podemos llegar a nuestros objetivos en tiempo y forma. Claramente esto implica un proceso de organización por nuestra parte y una gran cantidad de trabajo para que podamos gozar de los beneficios que un sistema así puede darnos. La organización de nuestras escenas, así como el uso de software que nos permita referenciar modelos y combinar texturas pequeñas en un atlas de textura es vital. Tenemos que poder descomponer un objeto en sus partes más simples(de forma razonable, por supuesto) para así poder construir algo cada vez más complejo. Pensar en un objeto particular y en las aplicaciones generales que este puede tener es crucial. La gran ventaja que nos da el desarrollo 3D es esa: Podemos reutilizar nuestro trabajo cuantas veces queramos,desarrollando variaciones de forma rápida y sencilla en lugar de tratar cada proyecto como desechable. En consecuencia, mientras más proyectos hagamos con esta técnica, más crecerá nuestra librería de modelos y, por lo tanto, el desarrollo de proyectos subsecuentes será más sencillo. Ese es el gran beneficio de trabajar de forma modular. Vivimos en una era de productos fabricados en masa, y los juegos definitivamente forman parte de ello. Si vemos cómo se han adaptado otras industrias, como la de manufacturación de electrónicos de consumo, alimentos, producción de vehículos y los demás medios (como la industria del cine estadounidense), estas han tenido que optimizar sus procesos de trabajo para cumplir con la demanda. Considero que, como industria de producción de medios interactivos, deberíamos encontrar la mejor forma de producir contenido en la menor cantidad de tiempo posible. La producción modular de assets es solo uno de esos aspectos de la producción que debemos optimizar para cumplir con esta demanda. Otros aspectos de la producción donde podríamos trabajar es la estandarización de los diseños y la búsqueda de identidad por parte del estudio: Un género o estilo a dominar. Otro aspecto de la industria automotriz que podemos considerar es la gama de modelos o de opciones que como negocio ofreceremos. Esto se escala al tamaño de la empresa, a la inversión necesaria y el presupuesto disponible. Si producimos más de lo que podemos vender, la empresa perderá dinero. Si, al contrario, producimos lo que podemos vender como lo hace Toyota con la metodología Kanban, mejoraremos nuestra posibilidad de éxito a largo plazo.
La industria automotriz está construida sobre la producción en serie, desarrollado por Ford para el Modelo T. La industria alimenticia igual. Ambas crecieron desde un punto comparable al que se encuentra la industria de juegos independiente hoy. Así, para poder crecer como desarrollador de juegos, resulta provechoso aprender de una industria que creció al nivel de la automotriz