domingo, 18 de mayo de 2014

Entrevista a Cristóbal Mata , creador de Dungeon Pets.


Buenas, hoy os traigo una entrevista a Cristóbal Mata, creador de Dungeon Pets, el unico juego para android que ha conseguido tenerme horas enganchado al movil.Por aqui os dejo un enlace a la web : http://www.gugames-dev.com/home.php y otro a la appstore: https://play.google.com/store/apps/details?id=com.GuGamesDEV.Pets y tambien por si a caso anoto : el juego es gratuito.
Y bueno, sin darle mas vueltas, comenzamos:

+¿Quien eres?

- Soy Cristóbal Mata, casi Ingeniero Informático (estoy estudiando aún).

+¿De que trata dungeon pets?

- Dungeon Pets es un juego para Android que fusiona el clásico Tamagotchi con juegos RPG de criaturas, tendremos que encontrar nuevos Pets y entrenarlos para que crezcan.

+¿Como surgió la idea de dungeon pets?

- Al comienzo, el juego iba a ser un Tamagotchi de toda la vida, pero se me ocurrió ampliarlo al parecerme pobre hablando de contenido. Al probarlo vi que aburría demasiado, necesitaba algo más.

+¿Que "esquema" llevas a la hora de desarrollar un videojuego?

- Para el desarrollo de Dungeon Pets estaba solo, por lo que primero pensé (diseñé) la base del juego, y una vez hecho esto hice el código sabiendo que tenía que crecer en funcionalidades. De hecho cuando mis cinco amigos que hicieron de betatesters lo probaron, tuve que modificar muchas cosas.

+¿Como organizas el trabajo?

- Primero hago la base del juego, por así decirlo el motor funcionalmente hablando, después apunto las funcionalidades en una lista para desarrollarlas, finalmente repito esto último con los errores encontrados. Durante todo el desarrollo he tenido a los amigos que comente probando el juego, yo solo hubiese sido imposible.

+¿Como entraste en el mundillo del desarrollo de videojuegos?

- Desde pequeño me apasionaban los videojuegos. Cuando mis padres me compraron un ordenador estuve buscando como desarrollar videojuegos.
Así, descubrí Game Maker 6, por 2005, y aprendí haciendo pruebas y con la ayuda de ComunidadGM, una web hispanohablante donde publicaba y sigo publicando mis proyectos y donde se aprende con la ayuda de los demás.
Desde entonces, intento crecer como desarrollador de videojuegos.

lunes, 21 de abril de 2014

Bucles y funciones.

Bucles:
Repiten una y otra vez un código mientras se cumpla una condición.
Los dos mas frecuentes son:

-While: ejecutan constantemente un código mientras se cumpla X condición.

Ejemplo:
Todo videojuego es un gran while , que permite comprobar una y otra vez si tenemos pulsada alguna tecla, si nos ha golpeado un enemigo etc....
 Así que el ejemplo mas claro que se me ocurre es este:

while (vida>0) {
    if (pulsado letra W == true ){
        mover personaje hacia arriba
     }
    if (pulsado espacio == true){
        el personaje ataca
     }
    etc....
}
Mientras nuestra vida sea mayor que 0 se ira comprobando una y otra vez si tenemos pulsada alguna tecla,nos han atacado, si el ataque nos ha golpeado etc...


-For:
Se suele usar para repetir un código cierto número de veces.+
Ejemplo:

for (recuperarHp= 1 ; recuperarHp<10 ; recuperarHp++){
    vida++;
}

En este ejemplo ,seria una manera muy rápida de hacer una poción de regeneración (habría que ponerle una manera de que lo haga durante X tiempo, tal como esta lo procesaría tan rápido que seria lo mismo que sumarle 10 a la vida directamente).

Su funcionamiento es similar al de un while , en el que mientras la variable "recuperarHp" fuese menor a 10 se ejecutase el código "vida++" (suma uno a la variable vida, seria lo mismo que escribir: " vida = vida+1; " ). Pero se diferencia de un while en la sentencia "recuperarHp = 1" en la que da el valor 1 a la variable "recuperarHp" la primera vez que se inicie el bucle for , y en la sentencia "recuperarHP++" que suma 1 a la variable recuperarHp cada vez que se "reinicia" el código que hay dentro del for.

Funciones:

Las funciones nos permiten guardar un código para que no tengamos que repetirlo varias veces.
Ejemplo:

Disparo(){
   Generar bala;
   Darle una velocidad;
   Ejecutar sonido de disparo;
}

Esta función por ejemplo, vendría bien si además de nosotros también pueden disparar varios tipos de enemigos, por lo que en vez de tener que repetir todo, solo tendríamos que poner "Disparo()" para ejecutar todo el código de la función.

Otra característica de las funciones es que pueden "acceder" a variables. Para que lo veáis mejor os pondré el siguiente ejemplo:

Disparo(int velocidadBala){
    Generar bala;
    Dar a la bala la velocidad "velocidadBala" ;
    Ejecutar el sonido de disparo;
}

Aquí, estamos creando la variable "velocidadBala" para esta función , lo cual seria útil si por ejemplo nuestras balas van a distinta velocidad que la de el enemigo,o van a distinta velocidad según sea un tipo de munición u otra.

Ejemplo:
Ahora al escribir:

int  velocidadBalaAliado = 20;
int velocidadBalaEnemigo = 15;

Disparo(velocidadBalaAliado);

(En este primer disparo la variable "velocidadBala" que pusimos antes tomara el valor de la variable "velocidadBalaAliado", por lo que el disparo iría a una velocidad de 20)

Disparo(velocidadBalaEnemigo);

(En cambio ahora en este otro la variable "velocidadBala" tomara el valor de "velocidadBalaEnemigo" por lo que el disparo iría a una velocidad de 15)

Y bueno , hasta aquí llega esta entrada , si tenéis cualquier duda ponedla por los comentarios y os la solucionare en cuanto pueda.
Saludos ;) .

jueves, 17 de abril de 2014

Variables y condicionales

Buenas , en esta entrada entrare mas en profundidad en lo que son las variables y condicionales . Como el objetivo de ejemplos es que los entendáis directamente, sin necesidad de que sepáis de programación, así que los haré a través de una mezcla entre código real, y "pseudo código" escribiendo lo que haría el resto del código , que sera de color rojo.

Variables:

Como ya conté, son "contenedores" de datos. Son de varios tipos según el tipo de dato que almacenen:
-Tipo char: almacenan un solo carácter , osea , una letra , un numero o un signo.
-Tipo int: almacenan un número entero.
-Tipo float: almacenan un número decimal.
-Tipo string: almacenan una cadena de carácteres (texto).
-Tipo boolean: almacenan un -0- o un -1- .El 0 es considerado como "False" y el 1 como "True", mas adelante veremos la aplicación de esto.


Condicionales: 
Ejecutan una vez un código en caso de que se cumpla una condición. 

Los mas usados son:

-If: ejecuta un código si se cumple una condición.

Ejemplo :
Se quiere comprar un objeto:
if ( variable que indica nuestro dinero  > variable que indica el coste del objeto) {
Adquirir el objeto y restar de la variable de nuestro dinero el coste del objeto comprado.
}
Se comprueba si tenemos dinero suficiente para comprarlo y en caso de ser asi, el objeto es comprado.


-Else: va colocado después de una condición -if- , ejecuta un código en caso de que la condición de el anterior -if- no se cumpla.

Ejemplo:
Se quiere comprar un objeto pero no tenemos dinero:
if ( variable que indica nuestro dinero  > variable que indica el coste del objeto) {
Adquirir el objeto y restar de la variable de nuestro dinero el coste del objeto comprado.
}
else{
Escribir "lo siento , no tienes dinero suficiente para comprar eso"
}

Se comprueba si tenemos dinero suficiente para comprarlo y en caso de ser así, el objeto es comprado sin embargo, en caso de no tener dinero, a diferencia del ejemplo anterior, esta vez nos saldrá el mensaje "lo siento , no tienes dinero suficiente para comprar eso" , en vez de no pasar nada.

-Else if: 
Ejecuta un código, en caso de que no se cumpla el anterior if y si se cumpla una condición propia.
Es el resultado de la simplificacion de un else con un if dentro.Basicamente es la conversion de esto:


if (A<B){ 
sucede algo}
else { if (A==0) {
sucede otra cosa
}
}
 En esto:
 if (A<B){ 
sucede algo}
else if (A==0) {
sucede otra cosa
}
De manera que el código queda mas simplificado.

miércoles, 16 de abril de 2014

Introduccion general a la programación: Leguajes de programación

Buenas, entrado en este tema , antes que nada habira que definir que es un un lenguaje de programación.

Un lenguaje de programacíon es un lenguaje creado para "comunicarnos" con la maquina (ordenador) y asi poder llevar a cabo diversos procesos o acciones.

Los lenguajes de programacion se dividen segun su nivel:
Cuanto mas alto sea el nivel de un lenguaje de programación este sera mas sencillo, y cuanto mas bajo sea el nivel de un lenguaje de programación este sera mas complicado.
Por ejemplo:

Escribir "Hola mundo" en BASIC, un lenguaje de alto nivel , seria tan sencillo como:
PRINT "Hola mundo"


Mientras que escribir "Hola mundo" en C , lenguaje de un nivel mas bajo, seria :
#include <stdio.h>

int main()
{
    printf("Hola mundo");
     return 0;
}

Elementos principales de un lenguaje de programación:

Variables: (int,char,string etc....)
Es el espacion donde almacenamos un dato, se diferencian segun el dato que almacenen.Ejemplo : int (almacena un numero entero) char (almacena un caracter) etc...
Condicionales: (if, else if, else...)

Ejecutan una vez un codigo en caso de que se cumpla una condición.

Bucles: (for y while)

Tienen una funcion similar a los condicionales , pero estos repiten una y otra vez el codigo mientras se cumpla esa condición.

Funciones:

Permiten "guardar" un codigo entero, en muchos casos necesitaremos usar un mismo codigo varias veces, entonces  en vez de repetirlo todas la veces , guardamos ese codigo bajo una funcion. Por ejemplo, en vez de crear un menu para cada nivel, guardar el codigo del menu bajo la funcion "menu()" .

martes, 15 de abril de 2014

¿De que consta un videojuego?

Buenas , en este apartado me podría alargar con la historia, audio etc... pero ire a los elementos mas basicos : la parte de programación, la  artística y las mecánicas.

1.Parte de programación:
Es el conjunto de codigos en un determinado lenguaje (C,phyton, java...) que no vemos , los que hacen que cuando pulsamos "W" el personaje ande hacia adelante, que cuando impactemos contra el enemigo nuestra vida baje o que simplemente se inicie la musica de fondo.

2.Parte artística:
Consta de los gráficos, el audio , la historia ... Es la parte que recibimos directamente mediante los sentidos.

3.Las mecánicas:
La mecánica de un juego vendrian a ser sus "reglas" o modo de jugar, por ejemplo la mecánica de Super Mario seria , saltar mientras avanzamos por un escenario, recoger monedas y derrotar enemigos saltando encima de ellos.

Hasta aqui llega esta pequeña introducción que queria dejaros mientras termino de preparar un par de entradas sobre la programación que espero tener listas pronto.

Saludos ;) .

lunes, 14 de abril de 2014

¿Quieres crear videojuegos?

Buenas, desde hace unos meses veo por internet que hay un monton de gente que busca como desarrollar su propio videojuego, pero no tienen la edad para la carrera, no sabe por donde comenzar etc....

Si tu eres una de esas personas , te traigo buenas noticias , hace unos años yo tambien estaba asi y al final a base de ir poco a poco puedo decir con orgullo que se hacer videojuegos.Y bueno , como se que se es dificil comenzar en esto, voy a empezar a hacer una guia que explique, como ir introduciendonos al mundo de el desarrollo de videojuegos , junto con tutoriales propios y enlaces a webs , pdf o videos que os puedan servir .

Y bueno , eso es todo , si quieres comenzar a desarrollar videojuegos estate atento porque pronto empezare a ir publicando cosillas por aqui .

Saludos a todos ;).

Pd: os agradeceria que si estais interesados dejases un comentario o algo para saber si realmente esto tiene futuro o no xd .

sábado, 11 de enero de 2014

Otherworld



Otherworld es un videojuego de plataformas y puzzles en el que tendremos que ir superando salas con diversas pruebas para conseguir avanzar, para ello , deberemos pararnos a pensar varias veces, ademas de tener que medir muy bien nuestros movimientos. Sumando la logica y el pensar junto con la habilidad de movimiento.Todo ello envuelto en una estetica que transmite el sentirse en un entorno virtual.

Video:



Version sin oculus: Version sin oculus
Puedes descargar una pequeña demo aqui (necesario oculus rift) : Otherworld demo
Web oficial: http://otherworld-official.blogspot.com.es/
Campaña de Indiegogo: http://www.indiegogo.com/projects/otherworld/x/5962807 

viernes, 25 de octubre de 2013

MacPixel



McPixel es un juego de estética píxel art, el objetivo es desactivar una bomba en cada fase cuya duración no supera los veinte segundos , usando la logica normal o las opciones mas absurdas que se nos puedan ocurrir.

De este juego no se puede decir mucho mas , excepto que sin duda te reiras un rato jugando.

Características a favor de este juego:
  • Muy entretenido.
  • Funciona en cualquier ordenador.
Características en contra de este juego:
  • Mecanica muy sencilla y repetitiva.

 VALORACIÓN 7 de 10

martes, 22 de octubre de 2013

Hotline Miami









Hotline Miami  es un tributo a los juegos reto cn una cámara aérea  recordando a juegos como GTA Chinatown wars. Hotline Miami esta ambientado en la ciudad de Miami en la década de los 80.
El juego empieza en una sala donde tres extraños personajes con cabezas de animales te cuestionan algunas preguntas de las cuales no sabes responder, pero ellos te hacen recobrar momentos de tu pasado
Existen una gran variedad de armas que con las que realizar a tu gusto las misiones del juego las cuales algunas de ellas exigirán lo mejor de ti ya que se puede complicar algunas misiones.
Este titulo es bastante corto pero tiene una ambientación, una banda sonora excelentes y una buena historia con momentos de humor.




Características a favor de este juego:

  •  Muchas posibilidades para completar las misiones.

  •  Una gran idea con una magnifica ambientación ochentera.



Características en contra de este juego:

  •  Es un juego corto.




 VALORACIÓN 8 de 10

viernes, 18 de octubre de 2013

Braid


Es un videojuego de plataformas creado por Jonathan Blow , principalmente para xbox y pc.

En principio parece un juego normal de plataformas el cual consta de 6 niveles pero su principal caracteristica es la posibilidad de ir hacia atras en el tiempo sin ningun limite. Deberemos ir resolviendo puzles que alumbren la historia de nuestro personaje ,ademas, juego posee multiples interpretaciones.

Tiene un excelente diseño artistico al igual que su banda sonora.

Características a favor de este juego:

  • Mecanica de juego muy novedosa.

Características en contra de este juego:

  • Muy dificil jugar sin mando.

  

 VALORACIÓN: 7 de 10

martes, 15 de octubre de 2013

Godus







Godus es un juego de estrategia y simulación disponible en iOS, android y PC.

En este juego encarnas a un dios y tu deber es ayudar a los ciudadanos de tu tribu a desarrollarse. Empiezas con el único poder y más adelante en la partida podrás conseguir muchos más que van desde editar el terreno a provocar un Armagedón a tus enemigos, irás aumentando tus poderes con los que ayudaras a tu poblado pero ellos solos irán construyendo sus viviendas.

Tu poder como dios viene de la gente cuanto más rece la población tu poder ir creciendo.  Encontraras otras civilizaciones con sus propios dioses en un mapa  enorme en el que también podremos encontrar cofres escondidos que tendrás que sacar usando tus poderes en su interior hay cartas las que permitirán a la población crear mas cosas.



Características a favor de este juego:

  •  Mapa enorme
  • Está en desarrollo

Características en contra de este juego:

  • Todavía le queda mucho por demostrar

  

 VALORACIÓN: 6 de 10

viernes, 11 de octubre de 2013

Super meat boy



Protagonizamos a Supermeatboy, un pequeño ser de sin piel y nuestro objetivo es salvar a nuestra alma gemela, una joven llamada bandage girl, nuestro complementario.

Es un juego de plataformas que esta dedicado principalmente a la jugabilidad, con unos excelentes mapas , controles perfectos y trampas muy calculadas.

Este juego sin duda nos hará rabiar ya que tiene una alta dificultad según va avanzando sin embargo tiene ese punto de diversión que hará que pasen las horas volando.

Características a favor de este juego:

  • Divertido.
  • Una jugabilidad muy pulida, casi perfecta.
Características en contra de este juego:

  • Alta dificultad.
  • Es difícil de controlar en pc si no usas mando.
 VALORACIÓN: 7.5 de 10

martes, 8 de octubre de 2013

Legend of Grimrock







Manejas a cuatro aventureros que se encuentran encerrados en una prisión de Grimrock. Nuestro deber es escapar sin que ningún monstruo ni ninguna trampa acaben con la vida de tu grupo.

Legend of Grimrock es un recuerdo de los Dungeon Crawlers clásicos con gráficos modernos aunque simples. Tiene cosas como la  creación de pócimas a partir de plantas y vigilar el hambre  del grupo  ya que cada acción o movimiento consume lentamente una barra de hambre de cada personaje.


No tiene un elevado nivel de complejidad  pero ofrece una experiencia que seguro que más de uno ha echado de menos.




Características a favor de este juego:

  •  Puzles de diversas dificultades.
  •  Variedad de enemigos.
  •  Buenos gráficos.

Características en contra de este juego:
  •   El movimiento es extraño.
  •   Poca variedad de clases.


 VALORACIÓN: 7 de 10

viernes, 4 de octubre de 2013

7 days to die

7 days to die es un juego  survival horror (todavia en alpha) distinto al resto, en este practicamente no tendremos limitacion alguna, ya que nos permite modificar todo nuestro entorno.

Al poder modificar todo nuestro entorno , podremos ir consiguiendo materiales con los que fabricar diversos objetos , armas y trampas que nos ayudaran a sobrevivir.Lo que rompe con la antigua dinamica que tenian antes estos juegos, ahora todo se puede destruir , pero no todo son ventajas ya que los zombies tambien podran hacerlo lo que nos forzara a tener mas cuidado con nuestras bases y construcciones.

Tambien nos permite cultivar y cazar lo que nos dara mas formas de subsistencia ademas de la buscar objetos entre los restos abandonados.

Tambien incluye la opcion multijugador la cual da 

 Características a favor de este juego:
  • Excelente mecanica.
  • Posibilidades ilimitadas.
  • Posibilidad de multijugador. 
  Características en contra de este juego:
  • Al estar en alfa todavia tiene algun bug.
  VALORACIÓN: 8.5  de 10