Aravid

Tutoriales, Gamer Sense, opinión y más

Archivos por Etiqueta: Snake

Beginning Android Games I

Desde que terminé el curso de Diseño y creación de videojuegos, no he tenido claro a qué quería dedicarme profesionalmente, así que para no perder la oportunidad de seguir mejorando y aprendiendo, busqué y encontré este libro que habla sobre el desarrollo de juegos para android y que había sido traducido recientemente. Con una búsqueda rápida de opiniones, observé que había algunas quejas, uno de los ejemplos era que unsigned number había sido traducido por número sin firmar, haciéndome pensar que no había sido traducido por alguien con conocimientos sobre este tema, así que me decanté por la versión original.

Portada del libro

No puedo hacer un análisis completo del libro porque aún no lo he terminado, pero si quiero plasmar mis primeras impresiones sobre el libro y algunas consideraciones sobre el desarrollo de juegos para android.

Primero hablaré del libro, que hasta el momento (llevo más de un tercio), me ha gustado cómo está estructurado y su metodología de aprendizaje. Otro detalle interesante es que no entra a programar a saco sin tocar nada más. Comienza explicando un poco el proceso previo o preproducción de un videojuego y cómo enfocarlo. Una vez ha pasado ese paso previo, te enseña mediante ejemplos, las capacidades que ofrece android, aún sin entrar en el mundo de juegos, son cosas básicas que hará falta entender y comprender para más adelante, como el uso de la pantalla táctil, acelerómetros, etc.

Ya tenemos las cosas básicas para empezar a hacer nuestro juego, que es lo que más nos apetece, pero hay otro paso más y que, personalmente, me parece un gran acierto. Realizar un framework propio para luego utilizarlo en nuestro juego, o en todos los que queramos, porque será totalmente funcional y realizará casi todo lo que podamos querer (tendrá limitaciones, en la primera versión no usará openGL ES, por ejemplo, pero a lo largo del libro, este framework también evolucionará).

Con todos los pasos previos cumplidos, con una idea general de qué se puede hacer en android, cómo hacerlo, y un framework funcional, lo siguiente es crear un juego de ejemplo, y el libro propone un Snake de toda la vida, así que durante algunas páginas más, nos explica cómo hacerlo, acompañado del código completo y unos assets que son de un estilo por el que siento predilección, y es dibujado a mano en libreta.

Menú principal del juego de ejemplo, Mr. Nom

Al terminar el juego, probarlo en nuestro dispositivo y emocionarnos al ver que hemos hecho un juego, nos emplaza a juguetear con el framework antes de seguir y ese es el punto en el que me encuentro. Pensé en un juego fácil de implementar para simplemente probar que había adquirido los conocimientos creando algo por mi cuenta, y pensé en hacer un shooter vertical, que es otro de esos géneros por los que tengo predilección, así que ahora me encuentro inmerso en ese proceso de creación de una demo (no quiero hacer un juego completo, simplemente es para probar el framework volando en solitario).

Más o menos he ido hablando de lo que hace el libro y cómo lo hace, en general estoy muy contento con él, pero con android no tanto, así que ahora hablaré un poco de él:

  • Demasiados dispositivos: Este es un problema grave, porque hay miles de millones de dispositivos distintos, cada uno con unas características propias (android especifica unos mínimos a cumplir por todas, por lo general, eso permite saber que al menos, pantalla tácil, acelerómetros y algunas cosas más van a estar presentes en todos) pero no sabemos si tendrá teclado, o qué resolución usará, por ejemplo. Tampoco hay seguridad de que dispongan de la última versión de android, aunque de eso hablaremos más en otro punto. Yo diría que este es un mal escenario para la creación de un juego o de una aplicación. Afortunadamente hay maneras para solventar algunos de estos problemas y el libro los aborda. Punto para él.
  • Java: No es especialmente malo, pero a mi Java no me gusta. No hay una razón lógica para decir que no me guste, qué le vamos a hacer. Pero en este lenguaje hay que tener en cuenta que no tenemos control sobre el recolector de basura. Es un problema que salte a mitad del juego porque, como se comenta en el libro, puede detener nuestro juego durante una cantidad de tiempo significativa, pero una vez más, disponemos de técnicas para evitar en la medida de lo posible esto.
  • Empresas malvadas: Estas malditas lanzan un producto con una versión determinada de android con una capa propietaria que lo envuelve. Suele ser bueno porque, generalmente, añade funcionalidades propias que no son implementadas de serie, pero tiene un lado malo, y es que no permiten actualizar android, porque se debe de añadir a cada nueva versión la capa propietaria. En el mejor de los casos, las actualizaciones se realizarán con retraso, y en el peor, que la empresa  decida que van a dejar de crear actualizaciones. Esto limita la cantidad de dispositivos a los que podemos dirigirnos a menos que al programar, tengamos este detalle en cuenta.

Captura del juego Mr.Nom

Para finalizar el artículo, quiero compartir el juego de Mr.Nom que he realizado con la ayuda del libro, quizá a la gente le sirva como incentivo después de verlo para entrar en este mundo, así que os dejo un enlace a él para probarlo en vuestros dispositivos android, está preparado para funcionar con versiones muy bajas de android, por lo que es factible probarlo en casi cualquier aparato.

https://www.dropbox.com/s/lwok0hcyljc6v6m/Mr.Nom.apk