VoiD.net: the Developer's Log

VoiD.net dev worklog

Monday, October 3, 2005

Un poco de historia

Aquí va un resumen sobre el desarrollo del juego hasta ahora, para ponernos en situación (¡Aviso! ¡Es un rollo!).

El concepto de VoiD.net nace por primera vez (¿Se puede nacer más de una vez?) en los comienzos de la primavera de 2004. Y no se parece en mucho al VoiD.net que es hoy.

En principio la idea era la de un wargame a la Final Fantasy Tactics®, Tactics Ogre® y similares (y fabulosos) juegos. Habría varios personajes, que irían subiendo nivel, podrían cambiar de clase, tendrían sus técnicas especiales, atributos, etcétera. Desde el primer momento, tuve claro que quería hacerlo con personajes basados en mis amigos del IRC, y un poco del argumento empezó a asomar. Comencé muy tímidamente a estructurar en papel un primer diseño (pensé en adquirir Blitz-3D y usarlo), y empecé a recopilar información. Esta etapa del desarrollo (que duró hasta el verano de 2004) fue un constante dejar/continuar. Era consciente de la envergadura del proyecto y (desgraciadamente) más consciente aún de mis limitaciones y mis experiencias anteriores con proyectos grandes en solitario.

Llegó el verano y me di un par de bofetadas (y otra de regalo). No tenía sentido estar con esa inseguridad que me hacía avanzar a trompicones. Así que me enfrenté por primera vez a mi “pesadilla” (dicho así suena como si realmente no me gustara hacer el juego, ¿Eh?). Evalué todas las partes del juego, lo que me costaría hacerlo, el tiempo de desarrollo. Los calculos salieron poco positivos y decidí cancelar el juego. Fin de la historia.

(Espera, si es el fin de la historia, ¿Por qué estoy ahora haciéndolo? Algo no cuadra)

Realmente no le di carpetazo al juego. Lo que tiró por tierra mis esperanzas de acabarlo fue (aparte de una dosis de realidad) la IA. Implementar una IA decente para un juego wargame con las posibilidades que le quería meter era algo descabellado… para una sola persona, con mi limitación de tiempo libre.

Pero claro, yo quería hacer el juego. Había empezado a diseñar el argumento, el mundillo que luego llegaría a convertirse en Void (oh, pero a estas alturas ¡Creo que aún no tenía nombre!), y me había empezado a encariñar. La verdad, es que es de los proyectos que más me han enganchado, sino el que más. Así que me volví a dar un par de bofetadas (esta vez más suave) y me espabilé. ‘¿Qué puedo hacer?’ … y también… ‘¿Qué me gusta hacer?’. La respuesta: un plataformas. Me encantan, y tengo algunas ideas antiguas bastante originales (o eso creo) reservadas para un plataformas. ¡Pues no se diga mas!

Sin embargo, un plataformas también es mucho trabajo. Descarté Blitz-3D, necesitaba algo mucho más simple y fácil para 2D (aunque Blitz-3D me hubiera venido de perlas con un sistema 2D-en-3D con overlays). La decisión fue Fénix, y me prometí, como requisito para acabarlo, (aunque más tarde me fallaría a mí mismo) no cambiar más de lenguaje. Fénix se acoplaba perfectamente a mis necesidades (o eso consideré en ese momento).

En ese verano me dediqué en profundidad al diseño del juego, tanto en aspectos técnicos como argumentales. La idea principal varió bastante, mezclándola un poco con una idea de otro juego muy antiguo que nunca llegué a empezar (aunque por supuesto, siempre dirán que me copié de Matrix®, que aunque me gusta, es una de esas películas que cuando sale te partes en cachitos, porque desde ese instante sabes que algunas ideas tuyas anteriores las calificarán de copias) y también un poco de inspiración fresca, otro tanto de inspiración fuerte en series, novelas, películas, que me gustan mucho (¡Que tampoco digo que no lo haga!)… y empezaron a construirse los cimientos de VoiD.net, el cual ya se llamaba así, por cierto. Me hice otra promesa, porque sabía que era necesaria para poder terminarlo. Que no cambiaría el argumento, los personajes que ya estaban decididos, etcétera. Sabía que el juego me llevaría (y me llevará) varios años posiblemente, y si cada vez me ponía a “actualizar el juego” a la gente del IRC de esa “época”, nunca iba a terminarlo, sería constantemente cambiar y cambiar y cambiar… (el proceso de incluir/hacer un personaje, ¡Je! no es algo que se hace en un día, ni 30, ni 60…)

En septiembre de 2004 comenzó la implementación bajo Fénix. Comencé con las herramientas (editor de mapas entre otros) y los formatos propios con sus respectivos editores. Entre ese mismo mes y octubre estarían terminados, y podría echar un primer vistazo a lo que sería la representación en pantalla de un mapa.

En los siguientes meses el desarrollo se enlenteció de un modo brutal. Había algo que no me cuajaba. Empecé con resolución 800×600. Hice algunos sprites, tiles, adecuados para la resolución. Aquello era mucho para Fénix. Podría haberlo optimizado para que corriera de un modo más decente, pero apenas era sólo el mapa de tiles, y todo lo que faltaba por delante de procesamiento, pintado, etcétera… Qué remedio. Bajemos la resolución a 640×480 (con lo que ello conllevaba, rehacer mis sprites, tiles temporales, y acostumbrarme a la nueva resolución…)

Así continué hasta casi terminado el otoño, realizando avances en los aspectos más internos del motor, cuando hice una estimación y me di de lleno contra la misma pared. Problemas de rendimiento. No me quedaba otra que bajar a 320×240, con mucho dolor. Al bajar a 640×480 me fastidió, pero a 320×240 cambiaba bastante el concepto del juego. Sin embargo, no tenía más remedio… rehice los tiles, cambié los tamaños, rehice algunos sprites de prueba (de hecho, esta vez tuve que cambiar de estilo de dibujo y me metí un poco a pixelart)…

Así que me di cuenta que llegó el 2005 y entre cambios y cambios constantes apenas había progresado, sino más bien era dos pasitos alante, uno atrás. Y vi la luz.

Salió la demo de BlitzMax, y un día por curiosidad lo bajé para probar. La demo me duró 3 días (aunque estaba limitada a 30 días de prueba) porque enseguida decidí comprarlo. El lenguaje perfecto para el tipo de juegos que me gusta hacer.

Tocaba romper la promesa. Pero estaba convencido que merec�a la pena (ahora, varios meses despu�s, considero que sin duda la mereci�). F�nix es genial, pero para este juego necesitaba BlitzMax�), que iba a ayudarme a aumentar no sólo el rendimiento en gran medida, sino tambi�n la velocidad de desarrollo. Y sin duda alguna.

Porté parte del código de manera fácil, especialmente las interfaces para mis formatos. Diseñé en poco tiempo un formato propio para las colecciones de gráficos (el de Fénix no me valía por no tener capa de alpha). En menos de un mes tenía un maptest inicial que visualizaba mapas creados con el editor de mapas que hice en Fénix (¡Genial!). Y el resultado era sorprendente. Le metí cosas fácilmente que en Fénix hubiera resultado en un impacto terrible en rendimiento (¡El motor 3D que funciona por detrás en BlitzMax era justo lo que necesitaba!)… y me puse de lleno. La etapa de desarrollo se aceleró, el juego se consolidó mucho en el diseño (cuando ves que salen las cosas bien, ¡La ilusión y las ganas de trabajar se multiplican!) y avancé mucho en todos los aspectos.

Y acabando un poco todo este rollo (¡Por fin!), a día de hoy, el motor (VoiD Engine) no está ni mucho menos acabado, pero de la parte de representación hay un gran trecho (todo lo más importante) terminado. Hay un importante número de módulos importantes funcionales, como es el Resource Manager, las interfaces para los formatos propios de colecciones de gráficos, de definición de personajes, bueno,¡El compilador de scripts tambien! (en su version 0.21a, a la par que el intérprete, esto es, el juego en sí, VoiD.net).

Hasta hace unos días no habia módulo principal, sólo maptests y herramientas que invocaban módulos del motor. Ahora, ya hay un módulo principal que inicializa todo y (para ir probando) lee un archivo de script prefijado (donde voy haciendo pruebas), y lo interpreta correctamente, aunque claro, de momento no permite demasiado el script. Por eso es una 0.21a.

Creo que es un buen momento para empezar el worklog en serio, y por ello… lo he hecho (Je). Iré también posteando más curiosidades sobre el juego, más aspectos del argumento, técnicos… (siempre sin spoilers, claro) para ello las distintas categorías.

¡Eso es todo! ¡Menudo rollo que he soltado!

posted by ferminho at 15:10  

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment

Powered by WordPress