viernes, 31 de enero de 2014

El primer Videojuego (Parte 2)

Llego la hora de dar un poco de funcionalidad a nuestro proyecto ya que lo ultimo que teníamos era esto:


Pero antes que nada vamos a configurar algunos aspectos básicos de nuestro proyecto, así que nos posicionamos nivel del proyecto y damos click:


 Y aparecerá del lado izquierdo lo que configuraremos a continuación. que debe configurarse así;


Debes llenar los campos como están en la imagen anterior y finalmente renombraremos la hoja de eventos o "Event sheet 1" para llamarla GAME, ya sabes como; solo dando click derecho > Rename. Con esto has configurado tu proyecto, ahora puedes guardarlo recuerda hacerlo como "Save As Single File" y darle un nombre como arkanoid1.0 por ejemplo.

Has aprendido a dar una configuración básica a tu proyecto y cambiar los nombres de los Layouts  y Event Sheets. Ahora si podemos continuar, da un click o selecciona el sprite bola_gris y ve a sus propiedades del lado izquierdo de la pantalla:


Has click en la parte de Behaviors como se ve en la imagen anterior, después click en la cruz de mas y seleccionaremos el behavior (comportamiento) llamado Bullet (Bala), damos add y listo:


Con esto tendremos un nuevo comportamiento  para el sprite bola_gris. Los behaviors o comportamientos son las conductas que tendrán los sprites, cada behavior puede generalmente configurarse en cualquier momento ya sea antes de ejecutar nuestro juego o durante el mismo, esto se logra mediante Eventos y Acciones.
Es importante mencionar que Construct 2 esta dirigido a los no programadores, asea que NO TENDRÁS QUE ESCRIBIR CÓDIGO ALGUNO, pero claro si entender algunos simples conceptos básicos de la programación. No debes subestimar su potencia solo porque no verás código C++ dentro del Engine de Construct 2 por ejemplo, algunas empresas y algunos programadores como yo por ejemplo utilizamos Construtc 2 mas que por sencillo de usar, por el tiempo que se ahorra durante el desarrollo, pues bien como ya sabes vivimos en un mundo demasiado cambiante en el que lo que importan son los resultados finales, se trata de hacer lo mas posible con lo menos, y al decir lo menos me refiero a buscar la manera mas económica de realizar todos los aspectos de un Videojuego, que son: Diseño gráfico, de niveles, música, efectos de sonido y por supuesto la programación, como vez hay mucho trabajo de tras por eso el valor que toma Construct 2. Debes siempre tener en cuenta que hacer un juego no es como jugarlo, pero debe ser una experiencia interesante e incluso divertida de hacer. Este es el ultimo juego que he visto que se realiza con Construct 2 hasta la fecha y vale la pena mencionarlo.


Continuemos, en términos sencillos un evento es cuando ocurre algo dentro del juego por ejemplo: cuando un objeto colisiona con otro, cuando el usuario presiona una tecla, cuando el juego inicia, cuando el juego termina, cuando algún objeto se mueve, etc. Y una acción es la consecuencia directa del evento, es decir, la acción ocurre justo después del evento correspondiente. Bien entonces ahora vamos a la hoja de eventos GAME dando doble click sobre ella y aparecerá lo siguiente:


Ahora damos click en la opción "add event" y seleccionaremos la opción System:



A continuación seleccionamos la opcion On start of layout y despues en Done:


Con esto acabamos de añadir nuestro primer evento y es hora de añadir nuestra primera acción:


Después seleccionamos el objeto bola_gris:



Y enseguida Set angle of motion después Next:


Y por ultimo en la caja de texto de angle ponemos 270 grados y damos click en done:


Con esto lo que hemos hecho es configurar el angulo de la pelota en 270 grados cuando inicie el layout (en este caso el juego) mediante el evento On start of layout para que valla hacia arriba, esto sucederá por que previamente le asignamos el comportamiento de bala al sprite bola_gris, entonces lo único que le indicamos con el evento es hacia que dirección debe ir el sprite en base a su angulo.


 Ahora da click en Run para ver el resultado.


Bien se que puede ser aburrido al principio aprender estos conceptos pero créeme son necesarios, solo así llegaras a dominar la herramienta, aunque por el momento nos falta un gran camino por recorrer. En el siguiente Post iremos un poco mas rápido ya que conoces lo mas importante y básico, por ahora ya sabes usar los eventos y las acciones :].

"El requisito del éxito es la prontitud en las decisiones" Francis Bacon. 









martes, 28 de enero de 2014

El primer Videojuego (Parte 1)

Muy bien es hora de ponernos manos a la obra con nuestro primer Videojuego independiente, como ya había mencionado vamos a utilizar construct 2. Esta es una herramienta relativamente sencilla de utilizar, así que vamos a comenzar con un simple ejemplo utilizando la versión gratuita y posteriormente vamos a realizar otros ejemplos con la versión de pago, como he comentado en otro post el costo de Construct 2 no es tan elevado como Unity 3d por ejemplo; sino que es mucho mas barato como puedes ver aqui .

Entonces vamos a comenzar abriendo nuestro programa para familiarizarnos un poco con el y tenemos esto:




bueno pues muestro las partes mas importantes del programa o las que se deben tener mas en cuenta:

1.- Lo mas básico de todo programa guardar,deshacer, rehacer, run y debug (modo de depuración).
2.- Todas las ventanas que queremos que se muestren en la interfaz principal.
3.- Mostrar la cuadricula y ajustarla.
4.- Tamaño de la cuadricula.
5.- Propiedades de todos los elementos del proyecto, desde aquí se pueden configurar muchas de las propiedades de dichos elementos.
6.- Árbol de los archivos que contiene el proyecto.
7.- Capas que puede contener un Layout (conocido también como pantalla del juego o lienzo).
8.- Orden de las figuras unas respecto de otras.

Vamos a comenzar con nuestro primer Juego ejemplo el cual sera el clásico Arkanoid, este juego lo iremos puliendo a lo largo de varios tutoriales, con la finalidad de ir cubriendo paso a paso las herramientas de Construct 2. Entonces le damos en crear nuevo proyecto:


Y seleccionamos "New empty proyect":


A continuación veras lo siguiente:


Como puedes observar el proyecto ya trae una configuración por defecto la cual vamos explicar y cambiar un poco mas delante para que funcione mejor nuestro proyecto, por ahora trabajaremos con esta configuración y nos enfocaremos en detalle en el juego. A continuación nos descargamos un paquete de imágenes con el que vamos a trabajar del sitio http://kenney.nl/assets al entrar ahí buscas el siguiente:


Bien entonces nos regresamos a Construct 2 y damos click derecho > rename en el lienzo principal llamado layout y le cambiamos el nombre por game.



Ahora damos doble click en el linezo blanco para poder agregar un sprite:


Como vez aparecerá esta ventana y debes seleccionar el icono del sprite y darle el nombre plataforma, damos insert y volvemos a dar click en el lienzo dentro de las lineas punteadas para colocar el nuevo sprite. Una vez hecho esto veremos loa siguientes ventanas:


1.- Ventana principal donde podremos ver el sprite el cual vamos a cargar desde los archivos que descargamos antes (o en su defecto podemos pintar ahí mismo con el editor gráfico de imágenes básico).
2.- Paleta de colores.
3.- Animaciones para el sprite correspondiente.
4.- Numero de Frames por cada animación.
(el numero 3 y 4 se explicara a detalle mas adelante).

Ahora seleccionas la opción "Load an image from a file".


Una vez hecho esto debemos buscar dentro de la paquete de archivos que descargamos un folder llamado png y dentro debes buscar la imagen llamada paddleBlu. Selecciónala y entonces debes ver lo siguiente:


Cierras el editor de imágenes y el sprite debera aparecer en el lienzo:


Ahora vas hacer lo mismo para las imagenes ballGrey y element_red_rectangle del folder png, entonces solo los nombraras bola_gris y rectangulo_rojo respectivamente. Ya que hayas echo lo mismo con los últimos dos sprites debes acomodarlos de esta manera:


como puedes darte cuenta esto fue demasiado sencillo, para ver el resultado solo da click en Run layout en la esquina superior izquierda para ver el resultado que debe ser algo similar a esto :].


Bien por el momento es todo no es mucho pero ya estamos progresando. En el siguiente post comenzaremos a darle movimiento y funcionalidad en general a nuestro juego.

"Para correr primero hay que aprender a caminar"




sábado, 18 de enero de 2014

Elegir las herramientas necesarias.



Comenzaremos haciendo un pequeño análisis acerca de cuales son las herramientas necesarias para DESARROLLAR UN VIDEOJUEGO independiente EN UN TIEMPO RAZONABLE Y DE LA MANERA MAS SENCILLA POSIBLE. Hace tiempo que comencé a investigar sobre dichas herramientas y para mi sorpresa existen cientos de ellas! desde frameworks hasta Motores Gráficos, con precios muy variados y escritos en diferentes lenguajes de programación. A continuación muestro algunos de los listados con algunos de los motores gráficos y frameworks mas populares:

Los 10 motores gráficos mas importantes.
Otros 25 motores para IOS, Android o HTML5.
Solo motores HTML5



Como ustedes pueden observar puede ser una difícil elección al principio, por lo que es el momento de explicar la función que realiza un Motor Gráfico a la hora de desarrollar videojuegos. Bien pues básicamente un motor gráfico realiza muchas tareas por nosotros, de manera que eso nos permitirá enfocarnos MAS en el diseño y desarrollo de nuestra idea del juego, es decir, al utilizar estas herramientas por lo general casi siempre dejas de ocuparte(manualmente si sabes a lo que me refiero) de las funciones mas básicas pero también de las mas importantes como son: renderizado y empaquetado de imágenes o gráficos tridimensionales, velocidad del procesador, exportar el juego a las diferentes plataformas, entre otras. Un motor gráfico maneja la mayoría de este trabajo. Ahora bien como mencione antes existen distintos lenguajes de programación donde algunos son mas utilizados e incluso mas potentes que otros en cuanto al desarrollo de videojuegos se refiere, esto se debe en gran medida a sus características y plataforma donde trabajan, por el momento no vamos ahondar en detalles de lenguajes, si tu estas interesado en saber mas sobre lenguajes de programación existe mucha información en la web. En fin nosotros nos centraremos en un estándar que ha teniendo una popularidad muy sobresaliente hoy en día y es HTML5. ¿Porqué HTML5? Pues bien como recalque al inicio del post  mi intención es tratar mostrar como desarrollar los videojuegos de la manera mas simple posible y afortunadamente existen muchos motores gráficos basados en HTM5, los cuales son realmente amigables e intuitivos para ser usados.


HTML5 es una tecnología que engloba el lenguaje de etiquetas HTML, el lenguaje de programación Java script y CSS(Hojas de estilo en cascada), es una tecnología basada en web pero que puede ser implementada también en entornos móviles, lo que nos da un flexibilidad a la hora de exportar nuestras aplicaciones desarrolladas con esta tecnología. Entonces asta aquí todo va bien, solo es un poco de información necesaria para entender porque hemos decidido seguir este camino :]. Bueno sigamos adelante, HTML5 entonces nos permite crear aplicaciones como videojuegos y exportarlos a distintas plataformas (Entre ellos smartphones o tablets y la web por su puesto) de manera un poco mas sencilla que otros lenguajes de programación. Aquí algunos ejemplos de juegos HTM5:









Bien ya para finalizar este post vamos a elegir una herramienta(motor gráfico) para potenciar nuestro trabajo. Como mencione anteriormente hay muchos motores y para HTML5 también hay bastantes, pero nosotros usaremos el mas simple y sencillo de usar que encontré, que sinceramente ya no hay otro mas simple, intuitivo,fácil y potente de usar créanme! Se los aseguro... El motor es Construct 2 de Scirra. Les recomiendo que lo descarguen, que se familiaricen con el y puedan ver que es muy simple pero también es poderoso, tiene una versión gratuita y también una versión de pago, les recomiendo la versión de pago no es muy cara y creo que vale la pena.

Recuerden que no es la herramienta la que hace el juego, sino mas bien es la creatividad que cada uno pueda tener. La creatividad es lo que hace parecer que la herramienta que usas es la mas poderosa.

Hasta el próximo post.

martes, 7 de enero de 2014

Preámbulo

Bien tal vez lo mas natural sería empezar con un ejemplo de algún código de programación que muestre como mover un personaje por una pantalla o mejor aún, un videojuego en google play que este generando miles de descargas, pero... no haré eso primero, no lo creo conveniente todavía. Realmente alguien que inicia o que esta involucrado en el desarrollo de videojuegos independientes debe ser consiente primero que todo de lo que implica y lo difícil que puede ser; realizar un videojuego completamente por su cuenta si se realiza de la manera menos apropiada, no quiero decir que yo conozca la forma definitiva de desarrollar videojuegos con los mejores resultados y de la manera mas simple! pero, existen maneras mas simples que otras, y de eso es lo que trata el blog, tratar de minimizar el esfuerzo lo mas posible para que cualquiera que realmente le interese pueda desarrollar un videojuego.

Sinceramente me hubiera servido mucho, demasiado! si alguien me hubiese ayudado y orientado de la forma que pretendo hacerla yo, cuando inicié en este camino, claro que también hubo gente de la que aprendí cosas muy importantes y a la que agradezco, así que siempre debemos apreciar lo que otros hacen por nosotros ya que muchas veces lo hacen sin pedir nada a cambio.

Bueno entonces lo primero es ser realista y poner los pies en la tierra. Primero: Hacer videojuegos es complicado pero con el esfuerzo y la dedicación necesarios, se pueden lograr grandes cosas. Segundo: Hacer videojuegos es complicado pero hacer buenos juegos es mas complicado aún, aunque ahí depende en gran medida de la capacidad técnica y creativa de cada persona y no tanto de las herramientas que utilizan (Eso lo explicare mas adelante en otro post). Tercero: comercializar un juego puede ser complicado pero con la información y herramientas indicadas se puede disminuir la complejidad, lograr que el juego sea muy exitoso no es imposible pero si se requiere de un conocimiento mas profundo y estratégico del funcionamiento de un negocio de este tipo.Cuarto y ultimo: Jamas debes darte por vencido la mayoría de las personas no lograron a la primera oportunidad, sino conoces una cosa investiga, sino entiendes algo pregunta, si algo no funciona a la primera busca otro enfoque y vuelve a intentar. Este es el consejo que yo te doy.

Actualmente existen millones de juegos para todos los gustos en todos los dispositivos y consolas, tiendas virtuales y redes sociales del mundo, esto parece abrumador solo de pensarlo, mas si eres un simple desarrollador independiente que se quiere abrir paso entre miles de empresas reconocidas de videojuegos como:  Electronic ArtsBungieRovio, solo por mencionar algunas! Te podrás preguntar ahora ¿Entonces porque intentarlo?¿Para qué, si ya lo mejor se a inventado? imagínate que los fundadores de estas empresas hubieranse preguntado esto y finalmente abandonado su sueño. No existiría Angry  Birds o Plants vs Zombies :].

Por ahora es todo, en el siguiente post les diré mi humilde opinión de que camino se debe seguir para minimizar el trabajo y potenciar el beneficio de un videojuego.


"El mayor riesgo es no asumir ningún riesgo… En un mundo que cambia realmente rápido, la única estrategia en la que el fracaso está garantizado es no asumir riesgos”.
Mark Zuckerberg








lunes, 6 de enero de 2014

Todo empieza aquí.

Hoy 6 de enero del año 2014 he decidido crear un blog, mediante el cual pretendo mostrar lo mas sobresaliente he interesante de mi poca experiencia dentro del mundo del  desarrollo de videojuegos independientes, realmente no soy un experto ni mucho menos, tampoco soy un desarrollador de videojuegos independientes exitoso (por el momento :]), pero quiero ayudar a todo aquel que le interese, que no sepa como o por que camino iniciar, que tenga dudas de como realizar alguna actividad relacionada con este mundillo. He invertido muchas horas en este duro e intrincado mundo del desarrollo de videojuegos como muchos otros antes que yo, así que créeme que lo que ahora estas intentando hacer, se intento antes y asi mismo la solución a tu problema alguien ya la encontró! Como dije antes yo no soy experto pero lo importante es la cooperación así que compartamos nuestras experiencias juntos.

Bienvenidos.