viernes, 30 de septiembre de 2011

No volver a inventar la rueda sino seguir innovando.

Cuando se inicia el sueño de crear un juego, surge siempre las ganas de crear uno desde 0. Por lo menos ese fue mi caso... claramente no fue un error tener ese ideal desde un principio ya que me sirvió bastante para enteder la complejidad de tiene el desarrollo de este. Partí con Allegro una librería de c++ pero los dolores de cabeza que me dió lo tuve que dejar. De hecho nunca pude entender la filosofía de Allegro, luego me cambie a SDL esta ya es un poco más interactiva con el programador, se pueden cargar imagenes externas, reacciones por teclado, Sprites etc... Sin embargo requiere un gran esfuerzo realizar un juego en dicha librería como por ejemplo mover un personaje. Desde entonces empezó mi frustación al no poder realizar un juego y ver la complejidad que tiene poder realizar uno desde 0.


1011010101010101
0101010101010101           = 
1010101010101010





 Entonces mi pensamiento empezó a tener un vuelco en mi vida de programador y entender que existen muchas herramientas que te permiten ahorrar tiempo en el desarrollo de videojuegos. Como dice el título de este artículo "No volver a inventar la rueda sino seguir innovando", existen muchos métodos para crear juegos y muchos recursos que te permiten facilitar la vida al momento de programar pero si bien es cierto es importante saber la filosofia del desarrollo de un video-juego.

viernes, 23 de septiembre de 2011

Engines, Librerías para crear Juegos en Android

Android claramente es un medio para poder desarrollar juegos y poder distribuirlos fácilmente a tráves de Web Stores de Google. Ademas existe gran material para fácilitar la programación como tambien información y tutoriales de esta. Este artículo dará a conocer ciertas herramientas para poder comenzar un proyecto para Android. Si yá haz hecho aplicaciones en este Sistema operativo no te costará entender el proceso de creación . pero si no sabes nada pues lo primero que tienes que hacer es bajar el SDK de Android (el Kit de desarollo), luego configurar tu IDE  (entorno de programación) para crear tu aplicaciones. Es recomendable usar como IDE "Eclipse" ya que muchos tutoriales de basan en él pero también tienes otras alternativas como NetBeans.

Como dije anteriormente existe demasiadas herramientas para el desarrollo de juegos en Android. A continuación mostraré algunos links de Engines. Todos estos tienen un enfoque 2D la mayoria trabaja con Java nativamente, pero otros tienen soporte hasta para Phyton.

viernes, 16 de septiembre de 2011

Juegos de plataformas 2D Historia



   Los juegos 2D se caracterizan por no tener el eje z en su eje de
coordenadas. Así pues, el jugador se puede mover únicamente por el
escenario en x o en y. Es decir, hacia arriba o abajo o derecha e izquierda. La
profundidad no está implementada. Pueden subdividirse según la vista que se
utilice.




 Historia y evolución

   Los juegos de plataformas nacen en las antiguas recreativas de los salones arcade.
Uno de los que se consideran pioneros de los juegos de plataformas es Space Panic,
aparecido en 1980. Era un videojuego de recreativa que tenía plataformas, enemigos y
escaleras por las que moverse de plataforma en plataforma. El objetivo era el de cavar
huecos con una pala para que los enemigos quedasen atrapados. Hay expertos que
piensan que un juego de plataformas sin salto no puede ser considerado como tal, con
lo que consideran al posterior Donkey Kong de 1981 como el verdadero pionero de los
juegos de plataformas.


Diferentes opciones a la hora de programar juegos

  Cuando se inicia en este rubro de la programación de juegos, es complicado saber cuál es el camino correcto para desarrollar, que lenguaje usar, que framework que Api manejar ... etc. Sin duda existen muchas opciones pero cada una tiene un fin específico.
   Primero que todo debes ya tener definido tu juego y luego pensar cuantos recursos va a usar y ha que plataformas irá dirigido. Este artículo dará a conocer ciertas pistas para ver cuál es la mejor opción al momento de crear un Game.



   -Iniciadores del mundo de los videojuegos

Existe un programa llamado Game-Marker que permite crear juegos de manera bastante entretenida y didáctica, comienzas a entender ciertos conceptos básicos que tienes que tener en cuenta al momento de crear un juego. Sin embargo este programa esta ya muy estructurado y te delimita a hacer ciertas cosas. Si no tienes conocimientos en programación recomiendo inicializarte en GM pero no que te dediques a él .

   - Juegos 3d o 2d con recursos elevados.

Claramente hacer juegos 3d es el sueño para muchos, sin embargo el esfuerzo que este conyeva nos termina frustrando. Pero hoy en día existen herramientas bastante interactivas para un desarrollador. Unity un motor gráfico que te permite hacer lo que se te antoje sin tener que profuncizar mucho en la programación u Ogre otro motor freeware. Sin embargo si quiere empesar más de 0 recomiendo XNA game developer, es un framework basado en la Api Directx . el unico problema de este metodo de desarrollo es que es poco portable ,ya que solamente puede ser ejecutado en plataformas Windows.

domingo, 11 de septiembre de 2011

APIs Gráficas

 Una API (Application Programming Interface) o Interfaz de Programación de Aplicaciones, es un conjunto de funciones que realizan tareas específicas facilitando la vida al programador. Al hablar de API grafica nos referimos a un set de funciones para inicializar por ejemplo modos gráficos, realizar copiado de datos de la memoria del computador a la tarjeta de video (blitting), etc. Existen APIs especificas para cada tipo de tarea que queramos realizar.
Actualmente las APIs Gráficas más usadas son OpenGL y DirectX.

 OpenGL (Open Graphics Library) es una API multiplataforma creada por Silicon Graphics en 1992, que maneja solo el aspecto gráfico de un sistema, dejando afuera el sonido, música, control de teclado, mouse, joysticks, gamepads, etc., los que deben ser controlados con otras APIs especializadas. Existe una biblioteca multiplataforma para el manejo de audio tridimensional llamada OpenAL (Open Audio Library).


sábado, 10 de septiembre de 2011

Programación orientada a objetos en los juegos (POO)

Claramente para programar un juego se necesitan saber ciertas bases de lenguajes de programación. Este artículo no explicará lo que es la POO(ya que existen mile de tutoriales de Poo en internet) pero si mostraremos una forma de como es aplicable en un juego de video. Daremos el ejemplo de un típico juego 2d ... Super Mario ! . Supongamos que trabajamos para nintendo y debemos desarrollar un Remake de Mario. Primero que todo pensaremos en el diseño, su estructura y los diferentes pasos a seguir. Todo juego tiene personajes, enemigos, objetos, armas, etc... todas estas categorias las transformaremos en Clases. Partiremos por la clase Mario, le asignaremos los atributos y metodos básicos de mario como por ejemplo , su tamaño, colo, sus acciones (moverse, saltar , etc..) entonces ya tenemos a la Clase Mario diseñada y estructurada. Pero que pasará si queremos que mario expulse fuego porque se comio una flor? pues haremos otra Clase MarioFire y esta tiene que heredar todos los atributos y métodos de la clase Mario con extends. Ese es un principio básico de la POO, heredar clases. Entonces MarioFire solo le cambiaremos el color y algún método para que cuando se le asigne un botón este tire fuego. Ahora haremos la clase Enemigo, solo le colocaremos atributos muy básicos al igual que los métodos... Enemigo será la base por conciguiente haremos un personaje malvado mas definido como por ejemplo un koopa , heredaremos todos los atributos y métodos de la clase Enemigo y haremos una nueva clase EnemigoKoopa y está tendra definida cosas mas específicas , como por ejemplo, al ser pisado de transforme en un caparazón, su tamaño, su forma, etc...


lunes, 5 de septiembre de 2011

Moto-truck Demo de juego hecho en As3 ( 2Dbox)

 Después de algunos artículos ya publicados he querido presentar mi primera demostración sobre
un juego con la librería 2dbox - El proyecto se llama Moto-truck y es el típico juego de motos en donde tienes que subir montañas. Como pueden apreciar es bastante entretenido este juego, permite acelerar, frenar, saltar, etc. interactuando con la gravedad de una forma bastante real (en una visión 2d). Sin embargo el código de este juego es bastante complejo, claramente hay que ya tener un estudio previo sobre las funciones de esta libreria y la utilización en un entorno Flash. Disfruta la presentación demo de este entretenido juego.
Para mas información sobre como crear juegos en 2d-box visita el blog de Emanuele Feronato. Sin duda el mejor blog que habla de este tema.

viernes, 2 de septiembre de 2011

2d-Box Librería de Física para As3 Tutorial

 Simular la realidad en juegos es fundamental para el éxito de estos. 2D-Box es una librería bastante útil para estos casos. Sin embargo existen muy poca documentación en Español sobre esta gran herramienta y si las hay son complejas o están sin terminar.  Básicamente haré una traducción mas simple del tutorial de Emanele Feronato.
 ¿Qué logramos con esta libreria?
Mostraré una serie de capturas de juegos basados en 2dbox son bastante conocidos y ya verán porque le doy importancia a 2dbox.




 Básicamente 2dbox permite interactuar, gravedad, colisiones, distancia, densidad. Conceptos fundamentales en la Física de los cuerpos.

domingo, 28 de agosto de 2011

Dectector de Coliciones As. Flash !

Es importante el por qué es tan importante saber colisionar en un juego. Colicionar es tocar un objeto con otro y producirse una interacción. Un ejemplo : Mario toca a un goomba y muere, la interracción que hiso mario al tocar al enemigo fue morir y el juego se resetea hasta un cierto nivel. En Flash Existe una función básica que detecta la colición de objetos, el famoso "hitTest()" esta pertenece a la clase "MovieClip". Al detectar una colición esta envia un valor "True" (verdadero) y al no detectar nada esta mantiene un "False" falso. para realizar una acción al colicionar un objeto es tan sencillo como colocar una condición si este fuese True!.
Comenzemos !
-Abrimos nuestro Flash , elegimos al opción As2 (puede ser As3 pero tienes que saber pocisionar los objetos(coordenadas) y otras cosas. 
 El objetivo será que al tocar el cuadrado con otro este avanze a otra escena. 
- Dibujamos dos objetos (en la foto dos cuadros) y los convertimos en simbolos Clip de película.




Startup ! : Twisterdev Gamers Developers

 ¿ Qué es Twisterdev?

 Es una es empresa  moderna, innovadora y creativa  especializados en el diseño de soluciones web, programación,  publicidad en Internet y últimamente han dedicado gran parte de sus proyectos a la creación de videojuegos orientados a plataformas vía web y/o móviles.
 ¿Por qué hago referencia a esta empresa? pues bueno esta comenzó gracias a dos pioneros en la área de la informática: Frank Kismann y Felipe Campos; dos estudiantes de la carrera de Informática con un sueño en común ... escribir líneas de códigos para luego ejecutar un Software entretenido y al alcance de todos. Además nos da el ejemplo de que no porque estamos en latino-américa no podamos realizar este tipo de trabajos. Twister Dev nació en Chile con un presupuesto que alcanzaba solo para un pc y un par de taza de café y sin embargo han logrado salir adelante y emprender en un área desconocida.
  http://www.twisterdev.cl/



sábado, 27 de agosto de 2011

Un Ejemplo a seguir ! Angry birds

¿Como un juego tan básico ha llegado a ser el juego mas jugado de los últimos tiempos?
Será que la simplicidad es lo que esta de moda, pues claramente Angry Birds es un modelo a seguir. La empresa desarolladora Rovio nunca pensó en el éxito que esta traería . Gerentes, Ejecutivos, Estudiantes, niños, Padres, etc. Un juego dedicado para todas las personas (importante hoy en día)






 

Animación y Sprites !

Claramente programar juegos no es una tarea fácil.... se requieren muchas técnicas de habilidad como por ejemplo, dibujar ... o algo mas complejo Animar ... En los videojuegos la animación de los personajes es conocida como Sprites (juegos 2d) ,  estas son secuencias de movimientos que va a realizar el personaje, objeto . El uso de Sprites en Flash As2 es realmente simple solo se deben agregar fotoprogramas y cambiar el moviento. El uso de Sprites es un arte muchos programadores no realizan esta tarea y sacan sprites de otros juegos cosa que se ve mal y da la sensacion de que el juego es poco creativo, aunque otros le sacan el provecho para suplantar al juego original.


Un Ejemplo a seguir ! World of Goo

 Siempre me ha llamado la atención este juego "World of Goo" ya que fue creado por 2 programadores emigrantes de Electronics Arts, Kyle Gabler y Ron Carmel. En su desarrollo se emplearon un buen número de tecnologías de código abierto como Simple DirectMedia Layer, Open Dynamics Engine yTinyXML.
  Su coste de creación fue de 10.000 dólares , incluyendo comida,equipos, habitaciones... y su recaudacion ha superado millonarias sumas de dolares. 






Ideando tu Videojuego !

Claramente antes de empesar tu proyecto, tienes que tener una idea de como hacerlo. Para eso se debe seguir una planificación en donde se definen los diferentes pasos a seguir.


-Concepción de la idea del videojuego : puedes hacerlo en un storyboard, comics o lo que sea explicando de que va a tratar y cual va a ser su ambiente.
-Diseño:defines que lenguaje usaras,para que plataforma estará hecho(como concejo siempre es bueno hacerlo en más de una plataforma).
-Planificación: divides el trabajo, dias de codificación,animación,música, etc...
-Pruebas:no te conformes con solo probarlo tu mismo, siempre es bueno hacer versiones betas para que los demas lo prueben y te den una evaluación
-Producción:esto quisas es el punto más interesante al momento de ganar dinero,debes ser cautivo al momento de la publicación de tu game.
-Mantenimiento: tu juego en sí tiene que ser robusto, pero hoy en día existe lo que se llama actualización, siempre es bueno tener actualizado tu game ante cualquier mejora o falla.




Historia de los VideoJuegos

Interesante documental, bastante conocido pero nunca esta demás publicar este gran material



Funciones, Librerias, Apis, SDKs, motores gráficos ...

Para realizar un video-juego es importante saber el uso de librerias y funciones. partir siempre desde una base como dice el dicho para que inventar denuevo la rueda si ya lo está y nos sirve para soportar algo nuevo. Existen variadas formas de programar un videojuego, existen librerias dedicadas a ello. un ejemplo de esta es la librería Allegro para C++, esta es un poco compleja pero bastante interesante al momento de programar desde lo mas básico.otras libreria bastante interesante es 2dBox , esta simula la naturaleza y la fisica de los cuerpos. pues las librerías son un conjunto de c´digos bastante amigables aunque si quieres algo mas en concreto pues estan las SDK estas son un kit de desarrollo de una cierta aplicación, es generalmente un conjunto de herramientas de desarrollo que le permite a un programador crear aplicaciones para un sistema concreto, por ejemplo ciertos paquetes de software, frameworks, plataformas de hardware, computadoras, videojuegos, sistemas operativos, etc.


Programación con Actioscript (As) Adobe Flash

Adobe Flash es un programa bastante amigable para el diseño y codificación de aplicaciones web. su lenguaje de programación es el Actionscript 3 (As) en su versión última version 6.0 .El archivo que se genera es el Swf. un ejecutable bastante usado en la web, ya sea para banners, juegos, videos, etc...

Flash está compuesto por objetos. Cada uno de estos en ActionScript pertenece a una clase (Movieclip, botones, Vectores (Arrays), etc.), que contiene Propiedades y Métodos o Funciones.
  • Propiedades: Dentro del archivo raíz de la clase, están declaradas como variables (alpha, useHandCursor, length).
  • Métodos o Funciones: Dentro del archivo raíz de la clase, están declaradas como funciones (stop(), gotoAndPlay(), getURL()).

Link de descarga : flash cs5

Introducción a C++ por ssaammuu

Este tutorial lo puedes ver completo en desarrollodejuegos.net

C++ es un poderoso lenguaje de programación orientada a objetos (POO), hoy en día es uno de los lenguajes mas extendidos y con razón. Primero me gustaría justificar el uso de C++ en vez de simplemente C que podría considerarse mas fácil para un principiante. C++ como cualquier otro lenguaje de POO nos permite reutilizar nuestro código a través de objetos. Esto hace nuestro código mas compacto y eficiente. C++ también nos permite conseguir gran organización en nuestros programas y a través de una buena estructura, hace fácil el mantenimiento de este.
 Primero vamos a examinar la estructura básica de un programa escrito en C++


#include <iostream>
using namespace std;

int main(int argc, char *argv[]){
    cout<<"Bienvenidos a http://arraysgame.blogspot.com/";
    return 0;
}
//Se acabó

Ganar dinero diseñando VideoJuegos

 Muchos piensan que diseñar juegos es poco rentable o que no existe mundo laboral para latino américa pues eso es un mito... los softwares de entretención están tan valorados que han llegado al punto de sobrepasar el mundo de la música y cine. Programadores independientes se han hecho multimillonarios con solo ideas novedosas, un claro ejemplo es Angry birds o World of goo.


 Existen muchos métodos para ganar dinero, la más común es la de publicidad al momento de cargar tu juegos (en caso de que sea programado en Actionscript) Mochi da la posibilidad de agregarle publicidad a tu juego y ganar dinero por cada mil clicks un dólar. pues mil click es mucho para un dolar, pero si tu juego es entretenido se irá publicitando por diversos paises y esos mil clicks pasaran a ser millones de click ... 


.

Primero Que Todo !

 Como el título lo dice, primero que todo para crear crear un videojuego o cualquier aplicación (softwares) tienes que tener conocimientos de los Lenguajes de programación.
¿Que son?
Son lenguajes que son entendidos por la máquina o computador. Pues el computadores realmente entienden 1 y 0 y nisiquiera eso, solo captan impulsos electrónicos. Para eso estan hechos los lenguajes de programación para facilitar la vida al programador y hacer de un sistema que interactue con el usuario y la máquina.
 Además hay que entender la filosofía de la programación orientada a objetos (POO) que es un metodo que facilita y simplifica la codificación.
 El lenguaje mas usado para crear juegos es el C++ por su gran robustes, aunque no es el mas facil de usar.
De seguro haz jugado aplicaciones hechas en Flash, esta tiene un lenguaje conocido como Actionscript creado por Adobe, este lenguaje es bastante amigable y muy compatible. lo puedes ver en el navegador que se y lo puedes jugar donde sea. De hecho muchos programadores ganar bastante dinero diseñando en este lenguaje si bien es cierto los juegos son gratis estos producen dinero a través de la publicidad.
 hay un sinfin de lenguajes que te permiten programar juegos. Tambien existen los famosos Motores gráficos estos son programas que tienen la programacion lista es solo cosa de diseñar y agregar objetos. Por mi parte no es la mejor forma para aprender a crear tus ideas , ya que estas estan muy prediseñadas. Unity es un motor gráfico gratuito y bastante entrenidos para los que quieran indagar mas sobre ese tema.