Antes de entrar de lleno al tema, dame oportunidad de darte un poco de contexto. Ten un poco de paciencia, te contaré algunos datos que quizás no conozcas.

El preludio – Gorillas

No es un error, estás leyendo bien, es “Gorillas”, no “Gorillaz”, porque no me referio a la banda musical, sino a un videojuego con ese nombre.

¿Alguna vez habías escuchado de él? Era un juego programado en QBasic (para MSDOS); que no sé si era gratuito, si venía como demostración de QBASIC y el uso de gráficos y sonido, pero hasta donde sabía y pude ver, se podía acceder al código fuente del juego y con el editor de QBASIC, inclusive modificarlo. Aunque vi los fuentes, no tenía la menor idea de qué estaba mirando, ni cómo cambiarlo a mi gusto, ni siquiera sabía cómo cambiar un color o un texto.

Si nunca tuviste oportundiad de verlo o jugarlo, te cuento: es un juego para dos jugadores, donde cada jugador nombra a un Gorila y se trata de una batalla 1 vs 1 por turnos. Los dos gorilas son posicionados en el tablero de juego, que es una especie de ciudad en pantalla con edificios, los gorilas ubicados en arriba de ellos. Al iniciar cada turno, al jugador se le pide que capture un ángulo y una velocidad de lanzamiento, que el programa usará para que el gorila en pantalla lance un plátano explosivo a su contrincante con el fin de impactarlo, ganando un punto si lo logra.

Batalla de Gorillas

Una vez que el jugador captura los parámetros de lanzamiento, el juego anima al Gorila lanzando el plátano y uno puede ver su fruta explosiva volar y destruir una parte del tablero si toca algún edificio, perderse fuera de la pantalla, o impactar contra el otro Gorila (o uno mismo si el tiro es malo).

Si la mecánica de juego te parece conocida, es porque seguramente jugaste “Worms”, u otro juego similar:

Batalla en Worms

Si quieres jugarlos, tanto Gorillas como Worms, puedes hacerlo en línea en esta ligas:

Qbasic – Gorillas | ClassicReload.com

Worms | ClassicReload.com

De regreso a mi crónica, el haber visto el código fuente de Gorillas, y luego de haber tenido cursos básicos de uso de computadoras y programación en Pascal hizo que me interesara mucho más en este tema y que creciera en mí ese deseo de poder crear videojuegos y publicarlos.

En 2006, ya con carrera terminada, estuve trabajando en una empresa dedicada a la auditoría de seguridad informática. Ahí conocí a una persona, no solo apasionada de los videojuegos sino también con experiencia de haber creado uno para entonces. Entre las conversaciones que tuvimos, me comentó acerca de una herramienta que inició uno de los senderos que he caminado desde entonces.

The Game Creators

De manos de mi amigo y compañero de trabajo, conocí Dark Basic. Era un lenguaje de programación enfocado específicamente en desarrollo de videojuegos, basado en Basic, el mismo lenguaje de programación en el que en su momento se hizo Gorillas. Con este software, además de juegos en 2D se podía hacer en juegos en 3D con audio y video, y dado que ya hablamos de la década de los 2000 (ahora te parecerá la norma, pero entonces, tener 3D, audio y video no era tan común) poder acceder a ellos desde programación, sin entrar de lleno a complicadas bibliotecas de audio o video, era genial.

Dark Basic fue creado y comercializado por The Game Creators (TGC), una compañía inglesa dedicada al mercado de la producción de videojuegos. Hoy en día (Enero 2025) aún puedes conseguir la herramienta, sus creadores la han dejado como un proyecto open source:

TheGameCreators – Dark Basic Pro Open Source

En su momento hice algunas pruebas con Dark Basic, pero no avancé mucho. Eran mis primeros años de vida profesional y me enfoqué más en mi trabajo.

En este video, puedes ver la demo de Dark Basic ejecutando. Al inicio y al final, se aprecia el IDE y parte del código fuente:

Años después regresé a ver qué novedades había con Dark Basic y TGC, y para mi sorpresa, Dark Basic ya estaba fuera de circulación, con App Game Kit como reemplazo, acompañado de una importante promesa de venta, muy similar a Java: Programar una vez y desplegar en múltiples plataformas (Windows, Android, iOS).

AppGameKit (AGK) parte de los mismos principios: su lenguaje de programación sigue siendo basado en Basic, aunque ya proporciona bibliotecas para C# si uno quiere tener más control y acceso a otras prestaciones. Hasta donde sé, AGK ha visto pasar 2 versiones antes de convertirse en AppGameKit Studio.

Luego de que la versión 2 saliera de mantenimiento, sinceramente no estaba tan convencido de adquirir el nuevo producto (AGK Studio), ya que tenía a la mano Godot, GDevelop y algunas otras herramientas gratuitas, ¿para qué comprar de nuevo AGK?

Uno de mis mercados objetivo en los juegos, y aplicaciones, es Android, y justo aquí es donde está uno de los motivos que me llevó a actualizar AGK. Mientras que en Godot y GDevelop la exportación a Android conlleva un proceso a veces engorroso, AGK lo hace con unos cuantos clics desde su propia interfaz, y esto ha sido así desde la versión 1.

Exportación para Android – AGK 2
Exportación para Android – AGK Studio

Como puedes ver, las ventanas de exportación son casi idénticas. Desde esta sola ventana se capturan los parámetros necesarios, no es un asistente con n pasos, es un único diálogo y al hacer clic en Export, el resultado es un archivo apk o aab (según hayas seleccionado):

Ubicación del apk/aab en disco

Confirmación de compilación

Archivo generado

Regresando a AGK, el código fuente de juegos y programas hechos en versiones anteriores virtualmente compilan y ejecutan a la primera en AGK Studio, por lo que el conocimiento ganado y la base de código fuente se puede recuperar por completo.

Catastrophe

Mi juego insignia y único publicado a la fecha, entró en crisis hace un año. Cada cierto tiempo, Google actualiza sus políticas de seguridad y requisitos en las apps de su tienda. Mi juego ya no cumplía algunos de esos requisitos y desde su última actualización, AGK V2 no me permitía cubrirlos. Pensé en dejar morir mi juego y hacerlo de nuevo en GDevelop o Godot, pero como comenté en los artículos en los que hablé de ellos, la curva de aprendizaje era alta para mí y luego de ver lo que conlleva generar un apk/aab en esas herramientas, entendí que se trataba de un proyecto a mediano plazo.

Haber encontrado AGK Studio en oferta a un precio más que razonable y el que fuera 100% compatible con mi código fuente me permitió cumplir con los requisitos de Google en cuestión de horas.

Estaba pensando en hacer una actualización más al juego, agregar algunas funcionalidades pero no lo haré, y te comparto el motivo.

Versiones Lite y completa

Allá por 2013 cuando me acercaba a logar una versión productiva del juego pensé en ofrecer dos versiones. Una lite, gratuita, donde pudieras ver la totalidad del juego, pero que solo te dejaba acceder a los niveles de baja dificultad, para que pudieras experimentarlo y te interesaras por la versión completa, y esta última, que tiene todo por un módico precio de US$1.00 (un dólar estadounidense).

Afortunadamente, durante los primeros dos años, el juego lite atrajo a más de 3500 jugadores, pero solo derivó en 17 compras en 11 años, donde alrededor de 9, fueron de amigos y familiares.

La versión lite original no tiene publicidad alguna, es enteramente el mismo juego limitado a los niveles de baja dificultad y un mensaje en pantalla indicándote que si quieres acceder a los niveles superiores, compres la versión completa.

Esto como ves, no resultó como yo esperaba, de forma que pensé que agregar publicidad a la versión gratuita. Ya estaba experimentando con esto usando AGK V2, pero no fui lo suficientemente rápido como para completarlo antes de que la V2 de la herramienta saliera de mantenimiento y me quedara imposibilitado para publicar de nuevo en Google.

No tenía dos bases de código diferente para ambas versiones; todo el control de una versión u otra, estaba controlada por una variable que indicaba qué versión se estaba ejecutando y limitaba el acceso a niveles y algunas vistas del juego en consecuencia.

Administrar ese código, la publicación y la forma como se me ocurrió generar los certificados para ello era laborioso y propenso a errores. Incluso el versionamiento de código fuente lo hacía de forma manual, sin GIT ni herramientas similares.

Decidí entonces dejar fuera la versión lite y concentrarme solo en la versión pagada. Sin embargo, el historial de ventas no me favoreció en absoluto, por lo que consideré agregar publicidad a la versión de pago y hacerla gratuita. Algunos días después desistí de esa idea, porque yo mismo como jugador, cuando el juego cambia de política, de gratuito a pagado, o de pago a publicidad, pierdo el interés en el mismo.

De tal suerte que me he inclinado por hacer gratuita la actual versión completa de Catastrophe Slide Puzzle y crear una nueva versión 2 con todas las mejoras e ideas que he tenido, no sé si agregaré publicidad o no, ya lo veremos en su momento.

Había pensado en generar una base de código fuente fresca, estructurando todo desde un inicio, y trayendo poco a poco código que me sirviera de la versión 1, pero ese esfuerzo es muy grande. Al revisar los fuentes actuales, me pareció más sencillo reestructurarlo, reordenarlo y de ahí derivar la nueva versión.

AGK Studio proporciona algunas herramientas interesantes en su IDE que facilitan este trabajo, y su compilador también tiene mejoras que ayudan a no hacer el desastre que hice al programarlo.

Hasta aquí dejaré esta crónica que es el inicio de un nuevo viaje en este particular pasatiempo que viene desde mi juventud. Utilizaré AGK Studio para crear la nueva versión de mi juego; compartiré mi avance y experiencias en el desarrollo de la versión 2 del juego en próximos artículos, espero pode contar con tu compañía.


Descubre más de Crónicas de Programación

Suscríbete para recibir las últimas entradas en tu correo electrónico.

Una respuesta a “AppGameKit Studio – Iniciemos”

  1. […] el pasado post AppGameKit Studio – Iniciemos comenté que para renovar mi juego, había decidido no comenzar desde cero, sino retomar la base de […]

Deja un comentario

Descubre más de Crónicas de Programación

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Continuar leyendo