Metodologias de desarrollo, Agile para videojuegos [2da parte]
La ingeniería de software es una ciencia de diseño provista de diferentes métodos para el desarrollo de productos de software
Existe un considerable traslapamiento entre las fases de diseño utilizadas en desarrollo de software y desarrollo de videojuegos:
Para demostrar este punto con mas detalle podemos comparar un método bastante aceptado en el proceso de desarrollo de videojuegos:
El proceso de desarrollo de un videojuego, tiene un gran impacto poderoso en la capacidad de producto de poder ser utilizado de manera correcta, representa la oportunidad de terminar con un producto final utilizable de grandes características y que la audiencia ame o que termine siendo odiado desde el principio y con una gran cantidad de mala publicidad.
Hagamos un comparativo de los elementos característicos encontrados en un desarrollo hecho con waterfall y uno con agile:
En waterfall todo el juego es hecho desde el principio hasta el final, sin prestar atención en los detalles, terminando con un pedazo de software que posiblemente contenga muchos detalles que al final deben rehacerse, es decir implica re trabajar cosas que podrían haberse.
Quien solicita el software normalmente quedara insatisfecho
- ya que al contener innumerables features que no se han logrado, que se han logrado de forma incorrecta o que están verdaderamente afectando el performance, sera la primera incomodidad.
- El tiempo invertido tiende a sobrepasar las capacidades del presupuesto establecido
- El desgaste del equipo será inminente
- Garantizado que las relaciones laborales se verán afectadas.
Mientras que en Agile, se van construyendo elementos mínimos, un MVP(producto mínimo viable), una forma básica y primitiva de lo que podría ser el juego, para posteriormente ir agregando pequeñas piezas de forma iterada, ademas de garantizar que estas se encuentran probadas.
Esto significa que los problemas como bugs y errores inesperados pueden atacarse desde el principio
Ademas el equipo se ve envuelto de forma mas profunda en el proceso de desarrollo.
Agile no es una bala de plata para todos los problemas, pero si se desea sobrevivir a los cambios tecnológicos, es necesario hacer un cambio de mindset y filosofía, partiendo desde el aprendizaje, lo que significa que es algo que debe ocurrir de forma gradual y orgánica
Mientras que los principios de AGILE en game development pueden fungir como una plataforma para el desarrollo existen otros elementos flotando al rededor del desarrollo de videojuegos que no pueden dejarse de lado con la finalidad de mitigar los problemas que surgirán continuamente
Desarrollar una inteligencia del “Awareness of state of development” (conciencia del estado de desarrollo) al rededor de un producto de software multimedia implica no dejar de lado lo siguiente:
Del producto:
- La prioridad es la diversión
- El jugador debe incentivarse en todo momento (recompensa el tiempo invertido)
- El contenido es el rey (básicamente dulces para los sentidos)
- Cada desarrollador es responsable por cada, variable, palabra reservada, línea de código, algoritmo implementado(es decir te pagaran por algo funcional, no por salir del paso con soluciones baratas, si no se sabe como hacerlo lo mejor posible, lo mas transparente es buscar ayuda y subir de nivel).
- Siempre debe haber cabida para la creatividad
- Testing testing testing con transparencia
Comparativo entre procesos de diseño y desarrollo de videojuegos y las fases del desarrollo de software:
Scope: el proyecto es inicializado, el scope y los casos de negocio son determinados así como los requerimientos y restricciones son listadas, definiendo un plan de alto nivel y toda es documentado, mientras que en desarrollo de juegos pudiese coincidir con las fases 1 y 2 con la excepción de que se enfocara en definir las características técnicas
Design: la segunda fase comprende el diseño del sistema y un detallado diseño conceptual el cual es escrito en un documento de diseño de software, en esta fase, una descripción funcional se crea a base de sketches, es una fase que básicamente es similar al diseño del juego en su fase 3, de acuerdo al diagrama anterior.
Build: la fase de construcción de software es básicamente la codificación de los módulos, es aquí donde se prescribe la arquitectura, las técnicas, lenguajes y plataformas, esta fase es similar a la fase 4 donde se desarrolla el videojuego.
Test: en esta fase se determinan las fallas y funciones que deben corregirse, enteramente dedicada al testeo del software en su totalidad, verificar, validar, usabilidad; mientras que en el desarrollo de un videojuego esta fase se lleva a cabo a lo largo del desarrollo, procurando que los módulos funcionen correctamente y se vayan integrando.
Deploy: finalmente la quinta y ultima fase en desarrollo de software, esta marcada por la implementación en la organización , la integración con otros sistemas y el desarrollo de manuales, así como el entrenamiento del personal, esta fase recuerda la 5 fase relacionada con desarrollo de videojuegos que seria el deploy en el servidor, y aunque aquí no hay nadie a quien capacitar, es una fase importante que también comprende elementos de testeo y corrección de errores que no se hayan detectado en un ambiente de sandbox
A lo largo del tiempo los siguientes métodos de desarrollo se puede decir que han evolucionado hasta convertirse en lo que podría decir métodos ágiles de desarrollo de software:
Por las razones anteriores, creo que la ingeniería de software, puede enseñar algunas lecciones importantes y viceversa a los desarrolladores de videojuegos:
por ejemplo :
- Adaptando estos modelos agiles pueden mejorar el proceso de diseño y programación, aunque no garantizar el éxito, estos modelos agiles están orientados al cliente y al desarrollo de las soluciones a ofrecer.
- Emplear menos tiempo en planes de cambios
Gracias por leer hasta aquí, sigue aprendiendo, y deja tus comentarios en nuestras redes sociales: