Top
Mi primer motor de gráficos 2D y juego para Android – Blog Ceiba
fade
129
post-template-default,single,single-post,postid-129,single-format-standard,eltd-core-1.1.2,flow-ver-1.4,,eltd-smooth-page-transitions,ajax,eltd-blog-installed,page-template-blog-standard,eltd-header-standard,eltd-sticky-header-on-scroll-up,eltd-default-mobile-header,eltd-sticky-up-mobile-header,eltd-menu-item-first-level-bg-color,eltd-dropdown-default,eltd-dark-header
Blog Ceiba / Dispositivos móviles  / Mi primer motor de gráficos 2D y juego para Android

Mi primer motor de gráficos 2D y juego para Android

Este artículo pretende motivar a las personas que quieren desarrollar aplicaciones y juegos para dispositivos móviles. Los juegos 3D de categoría comercial normalmente requieren un gran equipo de diseñadores y de programadores, pero no necesitas usar motores 3D o grandes diseños para realizar un buen juego que le guste a las personas.

 

Cuando inicié mis estudios en Ingeniería de Sistemas en la Universidad Católica de Oriente en el 2007, teníamos una materia llamada POO (Programación Orientada a Objetos), en ese momento no entendí claramente todos los conceptos, pero me enamoré de Java y de las Clases y Objetos, cuando terminé la materia me gustaba tanto que en vacaciones decidí iniciar un juego hecho en Java, busqué mucho en internet y en esa época aunque existían motores gráficos, yo tomé el camino difícil y me decidí a crear el mío propio y entender cómo funciona la magia de los juegos que de niño me cautivaron como Mario, Tetris, Circus Charlie, Megaman o otros clásicos. Tal vez algunos no lo entiendan o son muy jóvenes, pero no sabrán la satisfacción de ganar un juego en el que no se puede guardar nunca la partida, la adrenalina de la última vida o tener que buscar los objetos escondidos en lugar de comprarlos.

 

 

Encontré un tutorial muy básico sobre cómo realizar un SpaceInvaders muy simple con un hilo sin control de fotogramas y un diseño la verdad muy pobre, pero era mi primer juego, así que yo lo veía hermoso en ese momento. Pasaba el tiempo y los tutoriales no me solucionaban los problemas que tenía, así que a medida que pasaban los semestres y aprendía más, el juego iba mejorando conmigo, mejores gráficos, mejor diseño de objetos, mejor nombramiento de paquetes, luego surgieron interfaces y así fué cobrando vida el proyecto.

 

Cuando inicié mi vida laboral, trabajé con tecnologías web, me gustaba mucho y tuve la oportunidad de trabajar en proyectos grandes pero en algún momento en el 2011 salió al mercado el Samsung Galaxy Ace, con Android Gingerbread, inmediatamente pude lo compréy cuando lo usé por primera vez recuerdo que algo me dijo que eso era el futuro, que tenía que aprender a desarrollar aplicaciones para esos dispositivos Android, y en un curso básico que realicé, así como me enamoré de Java, también me enamoré de Android, empecé a investigar mucho e hice mi primera app, nada sofisticado pero me permitió entrar en proyectos de movilidad, lo que dió la oportunidad de aprender e investigar mucho sobre ese sistema operativo.

 

 

Después de un tiempo y sabiendo que mi motor de juegos estaba hecho en Java, decidí migrar a Android, la verdad no fue fácil; lo primero que debes saber es usar la clase SurfaceView, la cual permite renderizar la pantalla y acceder al objeto canvas, es necesario estabilizar los FPS (Fotogramas Por Segundo) manualmente, pero si lo logras puedes tener la base para tus juegos 2D a 30FPS (Para lograr 60FPS debes usar GLSurfaceView y trabajar con OpenGL).

 

Luego de esto, cree los componentes de interacción con el acelerómetro y con el touch de la pantalla, y completé la migración. La verdad fue muy satisfactorio pero iniciaron los problemas de compatibilidad con diferentes resoluciones y versiones de Android, diferentes píxeles de profundidad y los problemas de memoria con las imágenes, así que realice el componente para imágenes vectorizadas, lo cual me permitió que el motor pueda funcionar en cualquier resolución de pantalla, realizar el componente de caché para imágenes y sonido, y solucionar la mayoría de problemas de compatibilidad con lo que el motor cobraba más y más vida y el juego funcionaba cada vez mejor, se solucionaron los problemas con el ciclo de vida y el primer juego estaba listo para la tienda de apps, pero faltaba algo, así que con Google Play Games adicioné el login, puntuación, logros y otros detalles.

 

 

Finalmente mi primer juego 2D estaba listo, lo subí a la tienda y actualmente tiene entre 500 y 1000 descargas, pero entendí algo muy importante, el juego no daba continuidad y la idea de un SpaceInvaders en este momento no es muy original, por lo que estoy trabajando en un juego nuevo que espero sea más enganchador y más adelante les estaré compartiendo el link de la tienda, por ahora les dejo el juego que se encuentra en la Play Store:

 

http://goo.gl/wrgMGJ

 

Antes de finalizar quisiera dar un par de recomendaciones:

 

-Si quieres desarrollar apps móviles puedes empezar justo ahora y siempre apóyate en la documentación oficial, sea Android o iOS.

 

-Si quieres desarrollar videojuegos, puedes usar motores comerciales o crear el tuyo, lo importante es la pasión, pero la motivación no debe ser el dinero (aunque no quiere decir que no puedas hacer algún dinero extra).

 

-Si quieres iniciar un juego, detente a pensar primero en la idea, casi todo se puede programar, pero lo importante es la imaginación y el entretenimiento que brinda a las personas.
-Siempre ten en cuenta tus limitaciones de tiempo y pon una meta real, ya que hacer un PES o un FIFA no es muy realista para un proyecto de una sola persona.

 

-Diviértete codificando y disfrútalo porque es satisfactorio ver que alguien utilice un juego diseñado por ti.

Yuber García

Escrito por: Yuber García

Ingeniero de Sistemas, Coach Técnico, Scrum Developer en Ceiba Software, y experto en aplicaciones móviles.

No Comments

Comentarios