lunes, 16 de junio de 2014

Terminar el desarrollo de un videojuego

Comienzo una serie de entradas sobre el desarrollo de Boo & Marung, con las que sólo pretendo exponer impresiones personales abiertas a la crítica.

Esta primera entrada la dedico al descubrimiento (para mí) de que el desarrollo de un videojuego amateur tiene una fase diferenciada que podría llamarse fase de terminación, especialmente si el concepto jugable es también parte de lo creado.

Empecé mi juego estimando que tardaría un año en hacerlo, con un margen de seis meses más si la cosa se complicaba mucho. Al llegar al año y medio de desarrollo, y después de descartar multitud de características en el camino, aún estaba en una fase muy temprana. Entonces hice una estimación más seria de lo que quedaba, extrapolando lo realizado en ese año y medio, y salió que necesitaría al menos dos años más. Se me vino el mundo encima.




Muchos proyectos de juegos hechos por aficionados acaban abandonándose. Me atrevería a decir que la mayoría. Creo que esa tasa de abandono es superior en el caso de estos videojuegos frente a otro tipo de software. Yo mismo he protagonizado muchos de esos abandonos.

La complicación no viene de que falte una especificación de requerimientos, eso podemos hacerlo. Viene de que no hay una definición del problema, que es con lo que todo proyecto software debería comenzar.
¿Problema? Pero yo no tengo ningún problema. Sólo quiero hacer un juego divertido, bonito, sencillo pero profundo, explorar distintos apartados del desarrollo...
Esa definición difusa no se satisface en el fondo con una traca de requerimientos que no llevan ninguna dirección, porque no atacan ningún problema concreto ni son realistas.

Distinto es un entorno empresarial, donde la productividad y la calidad son imposiciones que ayudan a fijar un camino. Tampoco van descaminados los requerimientos de proyectos más mecánicos que se basan en conceptos propios o ajenos, porque el problema queda definido: repetir algo determinado con ciertas variantes; a partir de ahí los requerimientos surgen con relativa facilidad y con más sentido.



La excesiva libertad con la que se encuentra el desarrollador aficionado se vuelve en su contra. Intenta solucionar un problema que no tiene definido disparando en todas direcciones, abriendo demasiadas posibilidades y complicándose la vida.

En otro tipo de software la terminación es algo que ocurre automáticamente al completar todas las tareas pendientes. En los videojuegos de aficionados es algo que hay que acometer como una fase en sí misma. Hay que forzarla.

La fase de terminación es una revisión de requerimientos que va más allá de un mero enfoque evolutivo. Después de todo, cosas como un prototipo sirven para evaluar si cumplimos los requerimientos que satisfacen un problema, y recordemos que nuestra peculiaridad es que no conocemos el problema.

Aunque estemos de acuerdo en que esta fase existe (muchos no lo estarán), abordarla es complejo. No consiste específicamente en recortar requerimientos, sino en conducirlos para que se integren, de una vez por todas, en la solución que estamos conformando. La fase de terminación convive con todas las demás, idealmente desde el principio, y va tomando más importancia a medida que nos acercamos el final. Lo curioso es que la solución alcanzada nos revela por fin el problema que teníamos.



Tras los primeros dieciocho meses de desarrollo de Boo & Marung, y la estimación terrorífica de que necesitaba al menos dos años más, decidí finalizar el juego en nueve meses. Para ello quité más características, cambié otras, dividí las tareas en apartados, las prioricé de más a menos necesarias y asigné un tiempo a cada apartado; cuando se cumpliera ese tiempo, daría por terminado el apartado en cuestión quedase lo que quedase. Y si sobraba tiempo lo dedicaría a adelantar el siguiente apartado, nunca a rescatar tareas ya desechadas. Lo cumplí a rajatabla y me sorprendió lo bien que esta vez había afinado en la planificación comparándola con la disparatada estimación inicial.

El juego tiene carencias y queda algo lejos de lo que quería hacer al principio, pero para mí era vital terminarlo. Ahora tengo más experiencia y haría ciertas cosas de otra manera, empezando por un concepto más sencillo. Pero soy consciente de que seguiré sin poder definir bien el problema y que por tanto la fase de terminación tendrá que venir de nuevo al rescate.


No hay comentarios:

Publicar un comentario