domingo, 5 de enero de 2014

Fxkingkart, mi proyecto de videojuego.

Bueno junto a unos amigos de universidad nos dimos a la tarea de diseñar un videojuego. Este post trata sobre los primeros pasos en la generación de una idea.

Lluvia de Ideas
Lo primero que hicimos fue una lluvia de ideas sobre que podríamos hacer, "deportes, autos, zombies, universidad, peleas, profesores, destrucción"  fueron algunos de los términos que nos interesaron, también hablamos sobre los tipos videojuegos que nos justaban (el MarioKart fue uno de los juegos en el que coincidimos). Vimos que característica de un videojuego pudiera conectarlos y que idea original pudiera salir de todo esto.

Tuvimos la idea de mesclar los juegos de carrera con zombis, pero no como una frenética huida de ellos, sino que esta unión fuera divertida, incluso la muerte por zombis debiera tener un toque de humor negro.
Otra idea seria que el ambiente del juego fuera nuestra universidad, los zombis fueran alumnos y los profesores nuestros corredores.

La historia que se nos ocurrió seria que los estudiantes se han convertido en zombis, generalmente somos zombis de tanto estudiar, pero ahora seriamos ademas come-cerebros, nos imaginamos que los profesores se encontraran protegidos en los edificios y que parte de su supervivencia consistiera en hacer una carrera por pistas infestadas de zombis. Los corredores no serian temerosos de los zombis sino que por el contrario disfrutarían atropellarlos.


Idea de una cinematica
Como inicio de la historia me imaginé una cinemática, en donde varios profesores estuvieran en una sala conversando sobre los últimos eventos ocurridos, tomándose una café y viendo por la ventana de un segundo piso a una masa de zombis moverse por todos lados. Estarían vestidos con camisa o con algún otro atuendo que pudiéramos identificarlo como un profesor.
Uno de los profesores se quejaría sobre la escases de recursos:
-Está quedando poco café y la comida se ha acabado maldita sea!-, entonces otro, mientras levanta un bate de baseball, dice:
 -jeje, entonces a llegado la hora de competir en fxkingkart!-.
Los profesores se acercan a la ventana y observan un grupo de buggies corriendo usando todo su arsenal bélico para hacerse paso por entre los zombis mientras recuperan los recursos que se encuentran esparcidos por el suelo. 
En una escena de la carrera (en primera persona) un zombi lograría agarrase del capó del auto, con lo cual dice algo como:
-Hey profe, aquí traje el trabajo atrasado-, mientras levanta una mano mostrando un par de hojas que se mueven con el viento y que le tapan la vista. el zombi tendría la apariencia de un joven universitario aunque convertido en zombi.
-Largo de aquí, ma$da#fa%kas#?!-,  dice el conductor y entonces le dispara en la cabeza al zombi que cae hacia uno de los lados. Con la vista despejada ve al corredor de su izquierda que se esta riendo, entonces rápidamente mira hacia el frente y choca con una barrera de púas. Los demás competidores pasarían a su lado continuando con la carrera.

Dibujo de los zombis-estudiantes.
Mis amigos son zombis
Una de las ideas motivadas por nuestro profesor es que el juego permitiera añadir las caras de mis amigos a los zombis. se me ocurrió la idea de que mientras se corriera la pista nos encontráramos con ellos y ganaras puntos al matarlos. me imagino un mensaje como por ejemplo "Bien hecho, has matado a tu mejor amigo." u otros mensajes mas ácidos como "Muy bien, siéntete orgulloso de aniquilar a esa basura".
Me gusta la idea de que se juegue reunido con amigos y que parte de la diversión del juego sea viendo como estos son aniquilados.


Para el próximo post
Bueno, en los siguientes post me centraré en este proyecto de videojuego, no pondré todas las ideas que tengo para el juego, ya que la creatividad y la originalidad son un recurso valioso dentro del desarrollo de videojuegos, pero si que expondré mi experiencia como un diseñador aficionado.


Referencias:



viernes, 27 de diciembre de 2013

Creyendome desarrollador con construct2 - Parte 2

Retomando la segunda parte de mi mini-juego, ahora explicare como hacer un escenario 2d para un juego de tipo arcade. Tal como dije en el post anterior, me basare en el ejemplo de esta página y publicaré los detalles que me parecieron más importantes y/o que no aparecieron en dicho tutorial.

Como se trabaja en Construct2:
En construct2 se trabaja mediante capas de forma similar a los editores de imágenes donde cada capa se superpone a la anterior , lo que resulta cómodo ya que se puede separar el paisaje de fondo (una imagen estática) de los personajes (imágenes con movimiento) y de otros objetos como el ‘score’ ( imágenes siempre presente en pantalla).

Creando un paisaje
La forma de crear una paisaje de fondo es usando una sprite que cubra todo el tamaño de una capa o bien una imagen de largo más pequeña pero que construct2 concatena automáticamente el final de ésta con el inicio de sí misma para darle la sensación de continuidad.
Otra modificación que podemos hacer es reducir el tamaño de la pantalla visible “window Size” (que puede ser de igual o menor tamaño que la capa), de esta manera el ambiente jugable será más grande.



Cómo interactúa mi personaje
Lo que diferencia a los objetos como muros, plataformas, piso y personajes del paisaje de fondo es que estos pueden colisionar, es decir, que no pueden traspasarse unos con otros. para esto en construct2 se puede darle a los objetos la propiedad de “sólido”.
Imaginemos por ejemplo a nuestra gota ( el personaje creado en el 
post anterior) tratando de cruzar una muralla, si la muralla no fuera un objeto de tipo “sólido”, la gotita simplemente traspasaría la pared en vez de buscar otra manera de resolver el obstáculo, no habría desafío ni diversión entonces.
Creando el piso
Ya que nuestro personaje choca con objetos sólidos y traspasa los no sólidos, entonces deberíamos encontrar la manera en que la gotita no caiga indefinidamente. En el tutorial base, el juego consistía en saltar por plataformas y si nos caíamos entonces perdíamos. En mi mini-juego quería que mi personaje caminara por la tierra del paisaje. La forma de solucionarlo fue añadiendo un bloque largo y transparente en la parte baja de la imagen de fondo donde quería que limitara el piso y añadirle la propiedad de sólido, de esta manera logré simular un suelo por donde mi personaje caminará.


Los eventos
Los eventos son acciones que pueden suceder en el juego cuando ocurra una determino suceso, por ejemplo si queremos que nuestro personaje camine cuando apretemos alguna flecha de nuestro teclado, entonces nuestro suceso sería la presión de una tecla y la acción sería el movimiento del personaje.

Personaje Caminando

Eventos de Construct2 para hacer caminar al personaje.

La forma en que definimos eventos en construct 2 es mediante la plantilla “Event Sheet” en donde estos se ejecutan de arriba hacia abajo y ya que además podemos agregar subeventos a otros eventos, se ejecutan primero todos los subeventos contenidos en un evento antes de ejecutarse el siguiente. Esto es importante ya que a medida que vamos haciendo más complejo el juego, aumentará el número de eventos que debemos añadir y sino lo hacemos de manera ordenada podría haber conflicto entre ellos.

Exportando un Juego
Hay múltiples plataformas a las que podemos exportar nuestro juego en la versión pagada (desktop y dispositivos mobiles ), la versión gratuita nos permite exportar a Html5, en la que podemos guardarlo en cualquier servidor Html como por ejemplo Apache o incluso en una carpeta de Dropbox. Yo elegí Dropbox y en el link siguiente el juego puede ser jugado:


Detalles para considerar

  • Al momento de exportar a Html5, puede que se demore demasiado, incluso que parezca que se ha quedado pegado, pero lo que puede estar pasando es que se esté demorando en la construcción de los mapas de sprites. en mi caso me paso que la imágenes que usaba pesaban mucho (mas de 1MB), me desespere un rato al creer que era un bug de la versión, pero luego probe con unos sprites más livianos y entonces se logró ejecutar. 
  • En la versión r146, al momento de bloquear un evento (tacharlo con una línea así para que éste no se ejecute) debemos además tachar cada subevento de éste ya que estos se seguirán ejecutándose y lo más probable es que cause problemas con las demás acciones.


Enlaces

viernes, 22 de noviembre de 2013

Construct2 y la aventura de creerme Desarrollador en 3 días. Parte1

En este post publicare mi aventura creyéndome diseñador de Videojuegos, como diseñe mi personaje y lo facil que puede resultar usarlo en Construct 2.

¿Porque Construct2?
Construct2 es una herramienta realmente fácil para empezar a aprender como hacer un videojuego. Tiene un enfoque “Drag&Drop” y sus variadas funciones permiten que los juegos se construyan rápidamente ya que nos permite enfocarnos en el desarrollo de la idea y dejamos de lado aspectos de programación o control complejo de eventos.
Construct2 funciona en base a sprites que son imágenes que representan cualquier objeto del juego como personajes, bloques o plataformas. Construct2 permite mover, arrastrar, o modificar los sprites y el desarrollo del juego se hace como si del diseño de una imagen se tratara.


Entonces antes de empezar con Construct se necesitan los Sprites
El método para hacer mi personaje es mediante un diseño de plasticina. Utilizando la técnica de Stop-Motion podemos definir todas la posiciones de las acciones “caminar” (9 sprites ) y “saltar” (6 sprites).

Las ventajas de uso de plasticina es que se obtiene un modelo 3D del personaje, por lo que para esta etapa de aprendizaje solo basta con la creación de un solo modelo y en base a este trabajar.
La dificultades esta en que se necesita mucha delicadeza para maniobrar el modelo y definirle la posiciones mas precisas posibles.
Con un visor de imágenes podemos ver la primera de ellas, y luego la que siguen como si fuera una secuencia, el personaje debería dar la sensación de movimiento.


Haciendo que el personaje camine.
Me base en el ejemplo de esta página, no voy a especificar todos los eventos que son necesarios para hacer que mi personaje se mueva con las flechas del teclado, solo las especificaciones que considero más importante para entender cómo se anima un sprite y algunos detalles que no se mencionan en el tutorial.

Como funciona un Sprite:

  • Cuando quiero que el personaje camine, debo hacer que en vez de la imagen estática, se muestren una secuencia de imágenes para dar la impresión de movimientos.
  • Cuando mi personaje deja de moverse, debo cambiar el loop de sprites por una única imagen de mi personaje estático.


Algunos detalles que no sale en el tutorial base.

  • Es recomendable usar sólo imágenes con fondo transparente, ya que la función de recorte de construct 2 no es muy buena.
  • Si al intentar darle movimiento la imagen no se mueve, podemos intentar aumentar la velocidad de cambio entre imágenes (speed). Aún no se bien porque sucede, pero después de hacerle algunas modificaciones propias al juego el loop dejaba de funcionar.



Termino por hoy, en la parte 2 de esta aventura con Construct2 publicare la creación de un pequeño Videojuego enfocándome principalmente en el manejo de las colisiones.
Saludos.

Referencias:
Construct2: https://www.scirra.com/
Tutorial de aprendisaje: https://www.scirra.com/tutorials/253/cmo-hacer-un-juego-de-plataformas/es
Sobre stop-motion: http://es.wikipedia.org/wiki/Stop_motion

Bienvenido a mi gameblog

Han pasado muchos años ya, desde mi infancia en los 90’, en aquella época cuando no tenia ni idea de lo que era Internet y en la tele veía por primera vez al niño con cola de mono llamado Goku. Recuerdo que la primera consola de videojuegos que jugué, era la típica versión pirata que venía con la asombrosa cantidad de 1000000 juegos (999990 de los cuales eran descaradamente repetidos), y que entre sus juegos más reconocidos estaban el “Super Mario bros”, el “Circus Charlie” y el juego en el que acercabas la pistola a la pantalla de la tele para matar patos (Duck Hunt).


Luego a un amigo le compran una Super-Nintendo y desde entonces conocí a “Mario World” y a “Donkey Kong”. El gran cambio entre esas dos consolas para mí fue la posibilidad de guardar las partidas, y por lo tanto, el gasfiter Mario por fin tendría una posibilidad real de rescatar a su princesa.
No teníamos muchos juegos, pero los que teníamos los jugamos una y otra vez. Con el tiempo tambien conoci a Samus (Metroid) y más de una vez tuve que cumplir la eterna misión de matar de Dracula en “Castlevania”.

Con el tiempo y mientras la tecnología mejoraba, me encontraba jugando con otras consolas como la NES64 y la PS1. Ahora jugaba los juegos de 3 dimensiones como el juego de carreras “Mario Kart” o personificando a un espectro vampirico llamado Raziel (Legacy of Kain - Soul Reaver)
Pasando aún más el tiempo, había dejado de lado los videojuegos, hasta que obtuve mi primer PC, con lo cual tuve mi segunda época gamer con los juegos de estrategia. El AOE II, WarCraft III, y StartCraft.


En este blog de videojuegos, pretendo hablar sobre algunos juegos que más me han gustado como el “Metroid-MisionZero”, “MarioKart” de la SNES y sobre una nueva versión no oficial de AOE llamada “AOE - forgotten empires”.
Tambien dejare mis experiencias en el desarrollo de mis proyectos de videojuego usando Construct 2 y Unity. Hablaré sobre las noticias que me parezcan interesantes, especialmente sobre lo que se viene a futuro y temas que me llamen la atención como por ejemplo si ¿alguna vez se creará una real hibridación entre Videojuego-Películas?.

Bueno me despido que mi segundo post viene ahora mismo.
Saludos.


referencias:
Breve información sobre videojuegos: http://info-gameblog.blogspot.com/
Consolas: http://es.wikipedia.org/wiki/Videoconsola
SuperNintendo (SNES): http://es.wikipedia.org/wiki/Super_Nintendo_Entertainment_System
Nintendo 64 (NES64): http://es.wikipedia.org/wiki/Nintendo_64
PlayStation (PS1): http://es.wikipedia.org/wiki/PlayStation