martes, 9 de marzo de 2010

Metodologías de desarrollo de juegos (Segunda Parte)

Son muchos los problemas y riesgos que tiene que enfrentar la industria de juegos en la actualidad. Muchos de ellos tienen que ver las cambios en los cronogramas y fechas de entregas. Muchos de los productos dependen de determinadas temporadas de alto índice de consumo en la que deben ser lanzados. Si no están listos para las fechas indicadas podría traer consigo un fracaso total.


Otros de los factores que influyen en el éxito de un juego es que una vez terminado no llegue a los niveles esperados en comparación con sus semejantes que estén en el mercado.

El avance tecnológico en el desarrollo de los juegos es cada vez más acelerado. En las consolas por ejemplo, los desarrolladores deben tener en cuenta que las consolas tienen un tiempo de vida util desde el año en que son lanzadas al mercado (4- 5 años). Esto significa que a lo sumo da para realizar 2 proyectos que utilicen una tecnología específica, luego hay que desarrollar y/o adaptar los juegos a las nuevas tecnologías que surjan.


Por ser una industria tan dinámica, el nivel de exigencia es muy alto. Los programadores, diseñadores, artistas, ingenieros se especializan en un área específica, por lo que se crea una dependencia de ese especialista y cuando renuncian (sucede con frecuencia debido a la carga de trabajo) hacen que los cronogramas se retrasen.



Debido a estos y otros tantos problemas que están presentes en la industria de juegos, que como podemos percatarnos, muchos de ellos no se dan con la misma intensidad en la industria de software, es que se ha hecho necesario plantearse la aplicación de metodologías de desarrollo que permitan estandarizar muchos procesos, actividades y documentación generada. 

Debido a la semejanza en los procesos de desarrollo de software tradicional y los procesos de desarrollo de los juegos se decidió utilizar las mismas metodologías existentes para el desarrollo de software con adaptaciones que incluyeran las actividades y documentación necesaria para la construcción de un juego.

Game Unified Process

Esta metodología fue se desarrollo producto de un proyecto de un videojuego de casino online. Durante este proceso, el patrocinante del proyecto decidió que deberían hacerse cambios a la forma de desarrollo de manera que pudieran cumplirse con los plazos, y de esta manera se decidió utilizar una combinación de dos metodologías de desarrollo utilizadas comúnmente en el software tradicional. 

La primera es la utilización del Rational Unified Process el cual plantea un diseño estricto y una documentación rigurosa de cada paso y funcionalidad a implementar. Luego de dividir el equipo se decidió que aquellos familiarizados con el proceso (ingenieros en su mayoría) utilizaran este enfoque, dándoles una organización mayor durante el proceso y el trabajo en equipo. 

El otro equipo adoptó la metodología eXtreme Programming con algunas variaciones para que pudiera ser aplicado por personas de otras disciplinas. En este proceso los ciclos cortos ayudaron a mantener la comunicación fluida entre equipos y el componente artístico se sentía menos restringido que con el RUP y con mayor capacidad comunicativa.

Extreme Game Development (XGD)
Es una adaptación de eXtreme Programming (XP), una práctica muy común en el desarrollo de software ágil. Esta metodología está enfocada especificamente para programadores, por lo que se hizo necesario hacer adaptaciones para que pudiera ser utilizada por artistas, diseñadores, gerentes, productores, etc. Esta metodología utiliza un elemento análogo a los casos de uso, que se denomina historia de usuarios.

lunes, 1 de marzo de 2010

Metodología de desarrollo de juegos (Primera Parte)

El desarrollo de juegos está muy relacionado con el desarrollo de software tradicional, por lo que debería implementarse un proceso similar para lograr un trabajo más organizado. La industria de los juegos en general no tiene estandarizado una metodología para el desarrollo de sus productos, es por eso que en muchas ocaciones los costos se van por encima de lo planificado, los tiempos de entrega se alargan y los desarrolladores cargan con excesos de trabajo. Debido a esta situación han sido muchas las empresas que se han dedicado a plantearse una metodología que permita un desarrollo adecuado y estandarizado. Estas metodologías no son más que adaptaciones de las ya existente para el desarrollo de software tradicional solo que ajustadas a las especificidades del proceso de desarrollo de un juego.

Semejanzas y diferencias entre el software tradicional y los juegos
Comenzaré a mencionar una serie de características presentes en ambos y espero que uds. sean capaces de distinguir cuándo es una semejanza y cuando una diferencia.
  • Ambos parten del mismo punto y se desarrollan en ocasiones con tecnologías similares.
  • Los software tradicionales se enfocan en su facilidad de uso en todos los aspectos, mientras que los juegos se enfocan en que la jugabilidad debe ser “fácil de aprender” y “dificil de dominar”.
  • Los software tradicionales se enfocan en la funcionalidad y los juegos se enfocan en la diversión.
  • Los software tradicionales tratan de facilitar labores del mundo real y los segundos permiten una inmersión en un mundo virtual creado por sus desarrolladores.

Ingeniería de software aplicada a los juegos

Muchos han sido los juegos que se han desarrollado aplicando los principios que nos plantea muchas de las metodologías clásicas de desarrollo de software. Muchos de estos proyectos han tenido un tiempo de desarrollo según lo previsto con escasos riesgos que no hayan sido identificados y mitigados en su desarrollo. Muchos de estos proyectos ha sido tan estricto la aplicación de las metodologías clásicas para desarrollo de software que han olvidado que los juegos tienen sus particularidades, reconocidas incluso ya por la industria y la academia, muchas de las cuales he mencionado anteriormente.
Otros proyectos que también han tenido éxito en su desarrollo se han planteado metodologías intermedias en la que se tienene en cuenta las actividades específicas que se realiza en el desarrollo de un juego con la estabilidad que brinda las metodologías tradicionales de desarrollo de software.

A continuación se listan algunas de las metodologías más utilizadas para el desarrollo de juegos.
  • Metodología de cascada
  • Desarrollo ágil de videojuegos
    • Scrum
    • Game Unified Process
    • Extreme Game Development (XDG)

En próximas entradas les comento sobre éstas metodologías.