Archive for Gamming

Programar juegos para Android

Bueno en esta ocasión traemos un tema muy interesante, como crear o mas bién, como programar un juego para Android. Bien sabemos que recientemente los juegos en las diferentes plataformas mobiles ya sean tablets o smartphones se han estado haciendo muy populares, incluyendose en sistemas operativos como IOs, Android, Symbian o Blackberry OS. Nosotros estaremos hablando un poco mas enfocados al sistema Android.

Para dar una breve introducción hablemos un poco de lo que se necesita para crear un juego para Android y que opciones tenemos para hacerlo.

¿Que se necesita para programar un juego para android?

Para poder realizar un proyecto de este tipo se necesitan (en terminos de conocimientos) a grandes rasgos 2 cosas. Un cierto conocimiento de diseño gráfico, y un grado avanzado de conocimiento técnico. Hacer un juego no es una tarea fácil, y si es algo que se planea realizar por solamente 1 persona, no es imposible, si se puede hacer, pero requiere que el arquitecto del juego posea tanto habilidades de diseño(dependiendo del juego) y también un cierto grado de habilidades técnicas. Si tu ya posees habilidades de diseño no esta demás decirte que solo se es necesario para crear imágenes que luego serán implementadas por el programador para darle vida al juego, y es preferente que el formato de dichas imagenes se manejen en formatos como PNG que son muy amigables con Android. Así mismo para generar dichas imagenes se pueden usar alternativas tanto gratuitas(GIMP 2.0) o de paga (Photoshop, Corel Draw, Illustrator, Maya) para generar imágenes que puedan utilizarse en el juego, por lo pronto nos enfocaremos un poco mas en la parte técnica que se requiere para hacer un juego para Android.

Antes de continuar quiero especificar que los juegos están compuestos por los siguientes 4 elementos muy importantes.

  • Gráficos : se refiere a las imagenes que utilizamos en un juego.
  • Audio : musica de fondo, o sonidos del juego.
  • Entradas(inputs) : entradas con las que interactua el usuario(botones, acelerometro, teclado, multitouch)
  • Game Loop : El ciclo del proceso principal del juego actualizado cada cierto tiempo.
Nota: un juego completa consta de muchos mas elementos pero quiero incluir estos que son bastante esenciales para darnos una idea de que se trata todo esto.

¿Que tengo que saber para programar un juego?

Realmente para programar un juego se tiene que saber una  variedad de cosas distintas. La primera si es que planeamos desarrollarlo para Android, es conocer el lenguaje base de programación para el entorno de desarrollo Android, es decir, hay que saber programar en Java. Lo segundo que tenemos que saber es implementar la lógica esencial para programar un videojuego, y para hacer esto tenemos que aprender un poco como funcionan la mayoría de los juegos.

Naturalmente un juego esta pensado como un programa cualquiera, con la diferencia que este tiene que prácticamente saber pensar por si mismo y consta de varias fases de desarrollo.

  1. Lo primero que tenemos que hacer es un diseño, a papel y a lapíz de cual sera nuestro juego, ya que si no tenemos idea de que vamos a hacer, no hay realmente ninguna forma de pensar en como lo vamos a programar, definir elementos como el personaje principal, los enemigos, e incluso las pantallas que tendrá el juego es una tarea muy importante antes de comenzar a programar.
  2. Posteriormente tenemos que implementar todo ese diseño en la aplicación. A diferencia de las aplicaciones normales de Android, un juego no suele ser un programa estático que espera que el usuario realice algún tipo de entrada para que el programa funcione, si no que el juego piensa por si mismo, el juego se esta “actualizando” constante y permanentemente, y puede tomar decisiones en base a nuestra actividad o inactividad. Al final lo vemos reflejado en los llamados “frames” que vemos al jugar un videojuego cualquiera.
  3. Para poder implementar esta lógica debemos construir un llamado Game Loop. Este no es mas que un ciclo, un proceso que se actualiza constantemente durante la ejecución del juego, y en el debemos hacer todos los calculos del juego, registro de interacciones del usuario, y generar una vista final para el jugador. Finalmente se tiene que implementar todos los componentes del juego, sean graficos, audio, e interacciones para obtener un buen juego.
Librerias y frameworks, ¿2d o 3d?
Algo que también hay que mencionar, obviamente tenemos que decidir si un juego va a ser 2d o 3d. De entrada menciono que juegos en 3d son extremadamente laboriosos y se es necesario utilizar librerias gráficas como OpenGL, que realmente son un dolor de cabeza, aunque si lo que queremos es desarrollar un juego sencillo, no hay necesidad de entrar a utilizar librerías avanzadas como Open GL. La verdad es que con el solo framework de Android, es decir, el SDK nativo, tenemos acceso a librerias que nos permitiran dibujar elementos gráficos en 2d, controlar todos los objetos que se encuentran en nuestra aplicación, y manejar todas las interacciones y eventos de programación que se presentan en un juego. Una vez que se este desarrollando, realmente vera que no se hacen uso de tantas librerias como se esperaba.
Nota: De hecho un juego muy exitoso llamado “Replica island” fue desarrollado completamente utilizando solo los recursos nativos del sdk de android, sin necesidad de entrar a utilizar aceleración de hardware para los gráficos(como seria con OpenGL).
En conclusión
Realmente hacer un juego es posible aunque laborioso, y si estas ansioso por comenzar con este tema te recomiendo un libro muy bueno que te ayudará a desarrollar tu primer juego en Android. El libro trata sobre desarrollo de juegos para Android y es del autor Mario Zechner.
Espero que este articulo te haya servido y que te motive para adentrarte al mundo del desarrollo de juegos para android(o almenos para el desarrollo de videojuegos).
No olvides dejar un comentario, y si te interesan algunos tutoriales de android basicos no olvides visitar mi canal de youtube(http://youtube.com/xymind).

Mac vs Alienware, para Gammers

¿Que es mejor para gammers? ¡Mac o Alienware!
Personalmente creo que la respuesta es muy simple, pero veamos antes que hace a cada maquina buena para los videjuegos. En esta reseña veremos algunas comparaciones entre Macs y Alienware y cuales modelos son los mejores para ponerse a jugar en grande.


Read more
Comenzando con Alienware, sabemos que el máximo rendimiento en videojuegos se basa no solo en el procesador de una maquina, si no que depende principalmente de su tarjeta gráfica, Alienware siempre ha sido muy cuidadoso al elegir las tarjetas o procesadores gráficos que implementa en sus maquinas para obtener el mejor rendimiento gráfico necesario para jugar los juegos mas demandantes. De manera que no encontraremos una sola Alienware que no tenga un procesador gráfico Nvidia o AMD que sea adecuado para los juegos. Actualmente todos los modelos de Alienware aseguran un buen rendimiento a la hora de jugar videojuegos, incluso la M11x r3, que es configurable hasta con un procesador intel i7 con velocidades de procesamiento de hasta 2.7ghz con turboboost, y una tarjeta gráfica dedicada Nvidia GT540M perfecta para video juegos.

Por otro lado las Macs aunque destacan por su máximo rendimiento en gráficos, son unas maquinas muy buenas, sin embargo cuando se entra en la categoria de laptops, es necesario acudir como minimo a los modelos Macbookpro de 15 pulgadas, para obtener un buen rendimiento, ya que los actuales modelos Macbook tradicional y MacbookPro de 13 pulgadas, no cuentan con una tarjeta gráfica dedicada capaz de procesar los videojuegos mas demandantes. Aunque se puedan jugar, no sera posible obtener el mejor rendimiento gráfico, lo cual pone a Alienware en la delantera.

Todos los demas modelos tanto para Macs como para Alienware, garantizan un buen rendimiento en videojuegos, ya que los modelos Desktop de Alienware y Imacs ya cuentan con componentes(procesadores, memoria ram y tarjetas gráficas) de ultima generación y que proveen un alto rendimiento tanto en procesamiento como en rendimiento gráfico.

Ahora, saliendo un poco de la perspectiva de componentes vamos a adentrarnos un poco mas en otras características. Sabemos que largas jornadas de juego pueden traer consecuencias, como por ejemplo que se caliente la PC y que empiece a descender el rendimiento de la misma. En este aspecto la ventaja la tiene Alienware, son computadoras que cuentan en sus modelos portatiles con ventiladores muy potentes que mantiene por un periodo realmente considerable de tiempo las portátiles refrigeradas y al máximo de rendimiento. Aunque las Macs no se calientan tanto como otras computadoras, para mantener largas jornadas de juego sera siempre recomendable adquirir un cooler. En cuanto a las Desktops Alienware y Imacs, Alienware incluye actualmente refrigeración liquida, la cual es mucho mas eficiente que el uso de ventiladores. Esto da una ventaja considerable a Alienware.

La única desventaja que veo muy mal en Alienware es la portabilidad. Apple ha jugado muy bien con sus laptops super delgadas y portatiles, y que a pesar de ello han probado ser altamente resistentes, Alienware por otro lado tiene laptops muy grandes y pesadas, y que ademas no tienen larga duración en la batería, de manera que se necesitaría tener la maquina casi todo el tiempo conectada a la corriente alterna para poder tener sesiones de juego ininterrumpidas, sin embargo estos problemas no son tan graves en la Mx11 que ya es mucho mas portable que otros modelos.

Bueno en resumen la verdad es que para hacer una comparativa detallada y decir cual es mejor y cual no, habria que escribir muchisimo, pero para finalizar y dar mi opinion final, creo que para un buen gammer, lo ideal seria obtener una Alienware.

Espero que les haya gustado esta reseña y que les sirva de algo. No olviden comentar que no cuesta nada.