SANTA's SHOOTER: mi juego de navidad hecho con 3D RAD (parte 2)

Para la navidad de 2010 me propuse hacer un juego sobre Santa (Papá Noel): un shoot'em up con ingredientes de basketbol. El motor gráfico empleado fue 3D RAD (probablemente una de mis últimas creaciones con este motor) y es uno de los juegos en los que mas me he basado en "código puro y duro" en vez de usar objetos drag-and-drop de 3D RAD, la opción preferida y mayor aliciente de casi cualquier usuario de esta sencilla herramienta.

Esta es la parte 2 del artículo dedicado a este juego, para ver la parte 1 visita el siguiente link: Juego de navidad en 3D RAD.

Renders "para la foto" del modelo de Santa volando con su jet pack
render de Santa Claus en mi nuevo juego de 3d rad
Un close-up de Papá Noel en mi juego de navidad
Render de mi shoot'em up de navidad

El personaje principal

El mayor ejercicio de diseño y modelado en 3D fue el personaje principal: Santa! El cuerpo fue bastante sencillo, pero como bien dice el dicho: la diferencia está en los detalles.
Mi mayor temor eran los ojos, los cuales, dando un rápido vistazo al modelo en progreso mostrado en la 1ra parte de este artículo, delatan mis dificultades en el área del modelado facial. La solución vino dada por un muy buen consejo del libro The Art of Game Design: "acentúa la temática del juego lo máximo posible, de modo que cada elemento realce la idea principal". Y la idea es un Santa que deja de lado el clásico trineo tirado por renos para lanzarse al vuelo de combate colgado de un jet pack, un auténtico piloto! Así que, procurando un toque retro, busqué en google una imagen de referencia: "aviador". El resultado fue mas que satisfactorio: el casco me ayudó a lidiar con el pelo, me ahorró modelar la gorra (mas irregular y complicada), ocultó las orejas! y de paso me proporcionó un muy oportuno par de gafas. Lo siguiente fue el jetpack, para el cual me inspiré en Buzz Lightyear, de Toy Story. El modelo final sin texturas ya se veía bastante promisorio, y una vez terminado (ver arriba) fue todo un éxito.

El personaje principal: fuentes de inspiración y resultado preliminar
la gorra de aviador, gran inspiracion en el diseño del personaje
Buzz Lightyear de Toy Story, gracias por el jet pack!
Modelo del personaje principal sin texturas

Los enemigos

Si tuviera que señalar un apartado insatisfactorio, ese sería el diseño de los enemigos. Podría decirse que mi ingenio e integridad alcanzaron un punto crítico a la hora de modelar algo tan elemental como son los enemigos, y los resultados saltan a la vista. Si pensabas que una mina flotante con forma de cardo poligonal es el "no va mas", deberías entonces ver mi "destructor" simil pacman-toronja. Las balas: naranjas y redondas, como en los clásicos del género!

De izquierda a derecha: La clásica bala de enemigo que debemos esquivar en todo shmup,
las "minas flotantes" (enemigo chico) y "los destructores", el enemigo grande que nos dispara mucho.

los enemigos del juego

Por otro lado, la programación de los mismos resultó bastante completa y flexible, no quedando casi ninguna variable hard-coded, de modo que todos los parametros son modificables durante la ejecución del juego, brindando gran libertad para variar la dificultad en forma progresiva.

Parametros, siendo X el índice de instancia de enemigo:

availableEnemies
enemiesOnScreenBudget
enemySpeedXmin[X]
enemySpeedXmax[X]
enemySpeedYmin[X]
enemySpeedYmax[X]
enemyAmmoReloading[X]
fireDistanceMin[X]
fireDistanceMax[X]
enemyLife[X]
enemyDamage[X]
enemyPresentsAmmount[X]
bulletsSpeed
bulletsDamage

Detalles de programación

Algo que me gustó mucho como quedó es la forma en que se muestran los regalos liberados por los enemigos al explotar. La intención inicial era dejarlos flotando para ser recogidos por Santa, pero esquivar balas, enfrentar enemigos y embocar regalos dentro de las chimeneas ya parecía suficiente que hacer como para además concentrarse en ir a por los regalos, así que los regalos irían a Santa. Finalmente me decidí a hacerlos volar hacia el icono que los representa y hacer que el mismo guiñe al aumentar su contador, quedando bien clara la obtención del premio. Para destacar la recompensa, animé los regalos de forma que se desplegaran desde el centro de la explosión siguiendo una órbita en espiral, para suspenderse en el aire por un instante antes de dirigirse al icono.

Esquema explicando el procedimiento utilizado para animar los regalos.
Detalles sobre la programacion de los regalos

Jugando a SANTA's SHOOTER

Para terminar, hice un menú inicial presentando 2 modos de juego: NORMAL e INSANE. En NORMAL la dificultad es progresiva, y en la primera partida el juego nos presenta una serie de instrucciones explicándonos los controles y objetivos del juego. El modo INSANE, como bien dice su nombre es una cosa de locos, empezando desde 0 con la máxima dificultad, reduciendo nuestra cantidad de energía disponible, haciendo a los enemigos mas resistentes, y por si fuera poco, estrechando las chimeneas (sólo a nivel código, visualmente permanecen iguales).

Capturas de pantalla de SANTA's SHOOTER: loading, menú y gameplay.
Pantalla loading de SANTA's SHOOTER
Menu principal para elejir el modo de juego
inicio del juego e instrucciones
Esquivando balas - gameplay del juego de 3d rad
Gameplay del juego de navidad - explotando contra una mina voladora
Gameplay del mi primer shooter, hecho en 3drad

Gameplay de SANTA's SHOOTER en modo NORMAL, con menú principal e instrucciones.

video de SANTA's SHOOTER en Youtube

Gameplay de SANTA's SHOOTER en modo INSANE.

video Youtube del gameplay de SANTA's SHOOTER jugando en modo INSANE

SANTA's SHOOTER es mi primer shoot'em up, un género que me gusta mucho desde que jugué por primera vez a Raiden, y del cual siempre quise hacer mi propio juego.

Tweet

blog comments powered by Disqus


23/1/2011 - loop, fantarama.com