Sunday, February 01, 2015

Fondos del juego... y una cosa más!

   Estos días estuve de vacaciones, pero unos días antes, estaba probando técnicas para realizar los fondos del juego.
   Tal vez muchos ya lo hayan notado, pero el primer fondo que hice para mostrar el juego, estaba hecho en gran medida usando fotos retocadas, reducidas en colores y con paletas alteradas.

   Creo que ese estilo no quedaba tan mal, pero me daba muchas complicaciones para encontrar material y para crear cosas originales... básicamente fue una prueba.

   Debo confesar que no estoy muy especializado en la creación de fondos interesantes (seguro muchos ya lo notaron), así que decidí dedicar un tiempo a encontrar una estética que pueda llevar a cabo en un tiempo razonable y con una calidad que me resulte convincente. Así que aquí está el resultado:


   Si bien es simple, a mi me gustó bastante y creo que se mezcla bien con los personajes en acción dándoles el protagonismo que se merecen (un fondo muy cargado y complejo, por más bueno que sea, muchas veces le puede quitar protagonismo a los sprites, y eso definitivamente no es lo que estoy buscando).

   Aquí pueden ver un video de como queda en el juego (con un añadido de fuego en el fondo también), y de paso también un poco de acción.



   Y sobre "una cosa más", quería decirles que veo que mucho del público de este blog proviene de regiones no hispano parlantes... les cuento que yo escribo el blog en español simplemente porque es mi lengua materna y mi idea es escribir las entradas de la forma más amena posible, eso no significa que no pueda entender comentarios o preguntas en inglés. Tal vez muchos estén usando google translate en este blog, aún así me gustaría animarlos a comentar en inglés si no saben español. Sus comentarios serán bien recibidos también! =)

   Nos vemos en la próxima entrada!

Monday, January 19, 2015

Nuevo video de muestra (modo 3 players coop)

   Estos días estuve trabajando mucho en cosas técnicas y probando bastantes cosas con el arte del juego, pero algo que creo que nunca mencioné, es que el juego se puede jugar en modo cooperativo de a 3 jugadores simultáneos. Los jugadores pueden ser reales, o controlados por el cpu. 

   Creo que nunca había mostrado un ejemplo de eso, así que aquí va un video, que también deja ver otras cosas nuevas: un prototipo de escenario (con nuevo estilo, más simple), ahora los fondos pueden tener elementos en movimiento, ahora el contador de combos se sitúa en la parte inferior de la pantalla y hay una nueva animación para caminar de F.Norris. También se puede escuchar la voz de F.Norris, que al igual que las voces de Ricardo y de Gal, forma parte del excelente pack de voces de http://www.apphiayu.com/casting.


Nota: El video puede verse a 60fps si eligen la calidad 720p60 HD.

   Como verán, he tardado mucho en postear algo nuevo, no porque haya abandonado el desarrollo, sinó porque no había muchas cosas nuevas que puedan ser interesantes para mostrar. Como sea... en los próximos días, mostraré algunos diseños de nuevos enemigos que aún no son definitivos.
   Hasta luego!

Saturday, January 03, 2015

Una técnica útil para detectar anomalías

Aviso: antes de que sigas leyendo, me gustaría avisar que esta entrada es de un tema puramente técnico, por tanto, si estás leyendo este blog queriendo ver "algo nuevo del juego", ni te molestes en leer lo que voy a contar de aquí en más, porque como ya dije, es puramente técnico.

Estos días estuve trabajando mucho en cosas que tal vez sean un poco aburridas de mostrar. Básicamente estuve corrigiendo muchos casos de borde, ajustando aspectos finos de la jugabilidad y agregando nuevas funcionalidades a los fondos (por ejemplo, objetos animados y capa con efecto "overlay" entre otras cosas).

Aún así, hay algo que me resulta interesante contar acerca de la dinámica de trabajo que estoy teniendo.

Tal vez hayan notado en la animación de la entrada "Profundizando un poco en el gameplay", que hay un pequeño número en la parte inferior, que va creciendo frame a frame. Bueno, ese número es simplemente un contador de frames... pero alguien se preguntó alguna vez "¿para qué?"... ¿que utilidad tiene eso para mí? Justamente... ese es el tema de esta entrada.

En mi framework, cuento con un sistema propio de "replays", lo cual me permite reproducir partidas enteras a mi antojo. Esto es particularmente útil a la hora de encontrar anomalías en el juego. ¿Para que utilizo un contador de frames entonces? La respuesta es muy simple: Para ir directo a los momentos cruciales de una partida. Un ejemplo: Digamos que yo estoy probando mi juego, y sucede algo extremadamente extraño, un personaje se comporta de una manera inesperada, etc... Si no hubiese grabado un replay, no podría ver con exactitud lo que pasó, por tanto tendría que comenzar a suponer muchos casos que pudieron generar dicha anomalía... en cambio, al contar con replays, cada vez que veo una anomalía o simplemente algo "sospechoso", miro el frame en el que estaba... y reproduzco el último replay guardado unos frames antes del momento en el que detecté algo (básicamente, hago que mi framework avance los frames anteriores rápidamente y vaya directo al frame que interesa). De esta forma puedo ver varias veces (o incluso debugear) casos en los que se producen anomalías (muchos de esos casos, por suerte, fueron solo sospechas).

Debo aclarar también, que estos "replays", son más precisamente "input replays", osea que la información que guardan, es solo el input de cada frame, teclado, mouse y joysticks. De esta forma, su peso es bastante ligero... puedo correr el juego desde el principio en un modo especial, que en lugar de obtener el input desde los dispositivos reales, lo obtenga desde el replay mismo, reproduciendo exactamente lo sucedido. Esta técnica es muy usada en emuladores que graban partidas enteras, y yo creo que es prácticamente esencial a la hora de programar videojuegos... además, su implementación es muy sencilla siempre que se haga sobre un framework propio.

Friday, December 26, 2014

Nuevos movimientos de F.Norris y un poco sobre las armas.

   Estos días estuve trabajando en F.Norris, dado que Ricardo está prácticamente terminado. Noté que al personaje "le faltaba algo", así que estuve haciendo varias pruebas en su diseño, pero al final, opté por el diseño tradicional, pero agregándole una cinta en su cabeza.

   La jugabilidad aún está en una etapa muy temprana, pero ya se puede ir viendo el combo básico.


   Y como dije antes, también mostraré un poco lo que son las armas del juego. (de momento solo hay una katana)



   Cada personaje tiene su propia forma de atacar, según el arma que esté portando.




   Sin embargo, un movimiento común a todos es el de arrojar el arma, dicho movimiento se hace con un comando especial, manteniendo el botón de ataque presionado, luego presionando la secuencia atrás, adelante y finalmente soltando el botón de ataque. Tal vez este sistema cambie, dado que puede resultar un poco complicado a veces.

   Espero que les haya gustado este pequeño avance. Estos días seguiré trabajando en las animaciones y movimientos de F.Norris.

Friday, December 19, 2014

Profundizando un poco en el gameplay

   Esta ultima semana estuve terminando los movimientos de Ricardo y puliendo unos cuantos detalles entre otras cosas relacionadas con el editor de niveles.

   Hoy me gustaría mostrar un poco más en detalle cosas sobre como está quedando el gameplay en sí, y de paso mostrar detalles que no había mostrado antes.



   Como pueden ver en el gfycat de arriba, el sistema de combos es un poco más complejo de lo que mostré cuando escribí acerca de los combos básicos.

   Todos los personajes tienen diferentes habilidades que pueden ser explotadas para generar combos más originales y efectivos que los combos básicos. En el caso de Gal, se puede apreciar que tiene movimientos propios como: rebotar en los enemigos, rebotar en la pared y también cuenta con un movimiento "antiair", que se hace presionando abajo, arriba + ataque. Dicho movimiento permite contraatacar fácilmente todo tipo de ataques (especialmente aéreos), pero al caer deja a Gal totalmente a merced de los oponentes que no fueron impactados.

Nota: Como se puede ver en la animación, el golpe final del combo básico, puede ser cancelado en un antiair, lo cual nos permite aumentar el daño del combo, a cambio de aumentar el riesgo de recibir un ataque al caer.

   Otro movimiento que no mostré antes, es el movimiento de "escape", que básicamente se hace presionando los 2 botones (salto + ataque) a la vez (en la animación se puede ver como Gal ejecuta una patada doble con giro, que golpea en ambas direcciones). Dicho movimiento deja a nuestro personaje invulnerable durante su ejecución y solo es posible hacerlo si a nuestro personaje está de pie y le queda algo de energía, dado que al conectar un golpe de estos, nuestro personaje pierde un poco de su energía. Este movimiento no es efectivo como movimiento ofensivo, pero es la forma más fácil de escapar de situaciones peligrosas o daño asegurado.

   Otra cosa que tal vez no se note demasiado, es que el juego cuenta con un sistema de "parry". Básicamente es similar al sistema de Street Fighter 3, solo que al ser un "beat'm up" y no un "fighting game 1vs1" la forma de ejecutarlo es presionando adelante o atrás, instantes previos a recibir un impacto. La gran diferencia entre este parry y el de Street Fighter 3, es que en este juego se puede hacer en todo momento (siempre que nuestro personaje esté vivo y no esté agarrando a otro personaje). Si miran bien la animación, verán que yo ejecuto un parry justo después de caer de un antiair. Esto me permite salir ileso de situaciones muy comprometidas, pero ejecutando una acción muy calculada, complicada y peligrosa.

Nota: Los enemigos son un tanto impredecibles, por lo tanto no es bueno contar con el parry cuando se tiene el control de la situación. Casi siempre es mejor ejecutar un ataque de escape, antes que recurrir al parry, y reservar el mismo para todo lo que sea predecible o para situaciones donde no hay otra opción.

   El sistema cuenta con otros movimientos básicos, tales como "air recovery", "land recovery", correr, correr y atacar y algunos más que pronto detallaré un poco más.

   Espero que les haya gustado esta entrada, pronto mostraré un poco sobre los items del juego, las armas (porque los personajes pueden utilizar armas) y los nuevos movimientos que le hice a Ricardo (que ya está casi completo =D).

Thursday, December 11, 2014

Trabajando en el editor de niveles

   Esta semana estuve trabajando en el editor de niveles... pero no en el de la física ni la parte gráfica, sinó en el editor de "la parte jugable del nivel", osea, las oleadas de enemigos y posicionamiento de objetos.

   Tuve muchas dudas a la hora de decidir como hacerlo, dado que existen muchísimas maneras, y si seguía pensando en todas las posibilidades de cosas que "me gustaría que puedan ocurrir en un nivel"... no lo iba a terminar nunca. Así que me decidí por un modelo sencillo pero medianamente fácil de extender.

   También estuve trabajando un poco más la AI de los personajes con el fin de mejorar la experiencia del juego.





   Pronto planeo seguir avanzando en el diseño de personajes... crear más enemigos, etc, pero estos días estuve implementando muchas cosas técnicas que... si bien, puede que no den mucho contenido interesante a este blog... es algo muy necesario y es en lo que estuve trabajando esta última semana. =)

Wednesday, December 03, 2014

Un poco sobre los editores personalizados

   Hoy voy a mostrarles varios editores que hice y estoy usando en el desarrollo de  Fight Against Mutant Revenge.

   Una particularidad de los editores que mostraré a continuación, es que son todos "ingame", es decir, se ejecutan en el juego mismo. De esa manera, me permiten ver los resultados en tiempo real.

Editor de física de escenario

   Este editor es muy simple, pero muy útil, dado que me permite definir los relieves y posiciones de todo un escenario. Es bastante básico, pero tiene todo lo que necesito para definir la forma de cada zona.

Editor de fondos
   Este editor es un poco más complejo, y me permite armar una especie de "collage", usando capas, cada una con varias imágenes, pudiendo cambiar parámetros tales como color, blend, parallax y otros más.

Editor de script
   Como dije hace un tiempo, estoy usando un lenguaje de script propio ("sebascript"), principalmente para definir cosas básicas del juego. Muchas veces también es útil cambiar cosas mientras el juego está corriendo. Para hacerlo de forma más amena, uso un editor propio de mi script (con coloreado de sintaxis y todo). Tal vez, este editor no sea tan indispensable como los otros, pero es bastante más útil de lo que parece a simple vista (sobre todo a la hora de calibrar parámetros gameplay).

   Todos estos editores funcionan solamente con teclado, simplemente porque me parece más simple y más preciso que sea de esa forma. Yo soy de los que opinan que hacer videojuegos es un arte, y de la misma forma que para dibujar usamos programas hechos a medida, como photoshop... creo que también en lo posible es mejor usar programas que se ajusten a nuestras necesidades, para ahorrarnos bastante trabajo tedioso y así poder concentrarnos en lo más importante de una forma amena.

   Actualmente existen muchas herramientas que ofrecen soluciones genéricas, pero yo creo firmemente, que la mejor herramienta suele ser aquella que está definida por y para uno mismo, porque además, se puede ir ajustando según nuevas necesidades que se vayan creando en el desarrollo mismo de un juego.