Post-mortem

Cómo se hizo Aritmetris

La idea nació en 2010 como juego educativo Mi proyecto fin de carrera fue un motor para juegos de plataformas en 2D construido con patrones de diseño. Se puede leer aquí.
En él modelé un pequeño motor que permitía crear jueguitos de plataformas 2D configurando un XML y creándole assets. Así podías hacer juegos de plataformas aprovechando código sin tener que empezar de cero cada vez.
Aprovechando parte de ese motor, pensé: ¿y si lo usaba para hacer algo tipo "Tetris"? Entonces se me ocurrió la idea de Aritmetris, donde caían las piezas y aprendías a hacer sumas a toda velocidad.
De ahí salió el primer prototipo en Flash, pero acabó en un cajón. ¿Por qué? Pues la vida.
Y aquí estamos, 16 años después.

El origen

¿Cómo aprovechar el proyecto fin de carrera para hacer un juego? Por algún motivo inexplicable, que solo conoce mi yo de 2010, tras hacer un motor para crear juegos de plataformas decidí hacer... un puzle.
La verdad es que siempre me han encantado este tipo de juegos. Me he hinchado a jugar a Tetris, Puyo Puyo, Magic Drop e incluso a indies de PlayStation Yaroze como Superbub...
Para juegos de plataformas no tenía ninguna idea que me llamara la atención; para este tipo, en cambio, sí: ¿un Tetris con sumas, restas y multiplicaciones? No lo había visto nunca, ¿por qué no?
En aquella época, además, mi sobrino tenía unos 6 años y pensé que podía hacerle algo para ayudarle a entender las mates. O, al menos, a practicar sin darse cuenta.
En septiembre de 2010 empezaba a trabajar en una empresa de software y, el fin de semana anterior, creé con unos assets cutrillos y muchas ganas de hacer cosas nuevas lo que era la base de lo que hoy es Aritmetris.
Aquí tenéis el zip con el prototipo inacabado: [Aritmetris Flash]
Fecha de creación del archivo original de Aritmetris Flash.
La fecha del archivo conserva el momento exacto en que nació el prototipo original.
Captura del prototipo original de Aritmetris en Flash.
Así se veía Aritmetris en su versión Flash de 2010.

El cajón

Vida laboral frente a proyectos personales En 2010 empecé a trabajar en una de las dos empresas que han cimentado mi experiencia laboral. Entré, precisamente, por mi experiencia con Flash y estuve trabajando en un par de aplicaciones. Una ya estaba empezada cuando llegué y la otra la creamos desde cero. Ese contexto laboral, lejos de casa y dedicándome además a proyectos creativos, hizo que dejara de lado cualquier intento de seguir con la idea. Quedó como la ocurrencia curiosa de un fin de semana y me olvidé de ella.

Cuando empezaron a sonar los tambores de muerte de Flash, entre 2016 y 2017, en la empresa donde trabajaba tuvimos que ponernos en serio a migrar lo que teníamos en Flash a otro lenguaje que se pareciera, pero que permitiera crear una versión en HTML5. Descubrimos Haxe, que nos sirvió para migrar en pocos meses la aplicación principal de la empresa de Flash a HTML5. Ahí tuve mi primer impulso para recuperar el proyecto, usar alguna de las herramientas del trabajo para pasarlo a Haxe y seguir. Pero lo único que hice fue migrarlo y poco más. Siguió en el cajón porque meterte a hacer tú solo todo un juego mientras trabajas en casi lo mismo es complicado.
Aquí se puede leer el post-mortem de Haxe en la empresa en la web oficial del lenguaje: [Porting BI Platform to Haxe]

El primer intento

El factor IA Hacemos un fast-forward de esos, con el disco rayado, y llegamos a 2025. Estamos en plena efervescencia por la irrupción de los LLM y nos rodean cambios de modelo cada dos por tres. Yo ya había empezado a experimentar con ellos tanto en el trabajo como en mi tiempo libre. Pero el uso era puntual: dudas que antes eran setenta búsquedas en Google y bucear por Stack Overflow ahora eran preguntas directas en ChatGPT. Lo que sí veía, tanto en compañeros como en el resto de la industria informática, es que cada vez se usaban más.

Tras ser padre por segunda vez a principios de 2025 y volver de mi permiso de paternidad, en la empresa donde estoy actualmente me dieron la oportunidad de dedicarme exclusivamente a un nuevo departamento de I+D enfocado en sacarle provecho a la IA y crear funcionalidades relacionadas con ello. Al empezar a usar la versión de pago de ChatGPT y verle usos cada vez más interesantes, volví a pensar en aprovechar mis ratos libres de las noches y los fines de semana para retomar Aritmetris. ¿Y si lo migraba directamente a JavaScript con esto?

Y funcionó. Relativamente. Le pasé un zip con el código original en ActionScript 3 a ChatGPT y me escupió un proyecto en JavaScript. Funcional, tal como era el original. Y me dije: ostras, qué pasada. ¿Y si, en vez de irme a JavaScript, me iba a algo más potente y lo pasaba a .NET MAUI? Así podría crear versiones nativas para móvil y darle un poco más de enjundia. Y así lo hice. Al poco, otra versión funcional. Pero ay, cuando quieres iterar. Ay, cuando quieres mejorarlo.

La cuestión principal para mí era que, si quería un proyecto sobre el que pudiera iterar con inteligencia artificial, tenía que poder hacerlo en pocos ratos. Y que esos pocos ratos fueran productivos. Porque la familia, el trabajo y todo lo demás se llevan todo el tiempo. La idea era sacrificar pequeños ratos de disfrute personal para seguir con este proyecto que siempre me había hecho ilusión. Pero, cuando le pasaba un zip a ChatGPT, me devolvía dos cosas nuevas bien y dos viejas mal. Si tengo que dedicar más tiempo a corregir y rehacer, mejor dejarlo estar. Estábamos en septiembre de 2025 y el proyecto volvía al cajón.
Aritmetris estaba abonado a mi abundante cajón de proyectos abandonados.

El flujo que funcionó

El agente que no es 007 Llegó 2026 y, curiosamente, en una clase de pádel, un compañero que también es informático me habló de un programa que usaba y del que yo aún no sabía nada: Cursor. No lo conocía en concreto, pero sí había oído hablar de herramientas como Claude Code, aunque no me había puesto en serio a mirar cómo funcionaban. Tras trastear un poco y ver cómo funcionaban estos programas de inteligencia artificial enfocados a ser "agentes", les vi un potencial tremendo. Hice algunas pruebas en el trabajo para hacer algún refactor y el funcionamiento resultó ser bastante espectacular.

Empecé otro proyecto, en el que todavía seguimos, y se planteó el uso de herramientas como estas. Como ya tenemos ChatGPT Plus, con él viene Codex, que es el sistema de agentes tipo Claude Code de OpenAI. Al investigar mucho sobre esto, me resultó tan interesante que seguí leyendo también en mi tiempo libre. Pensé: ¿y si ahora sí podía reaprovechar el código en JavaScript ya migrado, tirar por ahí y darle uso a Codex con Aritmetris desde mi cuenta personal de GPT?

¿Cómo sacarles jugo a estas herramientas en ratitos por las noches y los fines de semana?

Pues hay una cosa muy interesante con agentes de este tipo: puedes pedirles que planifiquen los cambios. Tú explicas lo que quieres hacer, con todo el detalle posible, y entonces te preparan un plan de cambios sobre el código. Tú lo revisas y, cuando de verdad estás de acuerdo con lo que proponen, entonces les dejas implementar. Y luego refactorizas. Y el refactor del refactor.

La IA hace muchísimo trabajo y lo hace excepcionalmente rápido. El problema es que, si no la guías correctamente, te puede generar un código monolítico y acoplado a velocidad de vértigo. Pero también es muy buena si le das guía y, lo primero que hice, una vez tenía una versión funcional, fue dedicarme a separar por responsabilidades: input, render, audio, etcétera, para poder ir añadiendo nueva funcionalidad sin fricción. Y, ostras, casi todo lo que le pedía a Codex lo cumplía y lo hacía bien. Podía irme a fregar los platos después de pedirle algo y volver, mirar el resultado y comprobar que o bien lo había hecho bien o bien lo había dejado casi bien. Pocas veces, tras una nueva funcionalidad que intentaba acotar al máximo, tenía que pedirle correcciones o hacer un revert a lo salvaje. Que también pasó, claro.
Planificar - implementar - revisar - iterar.

El tiempo robado

Compaginarlo todo es de valientes El problema de proyectos como un videojuego, aunque sea uno sencillo como este, es que suelen ser proyectos largos. Cuando tienes familia, trabajo, dos niños que mantener y un empleo bastante absorbente a nivel mental, es muy difícil poner el foco en tus horas, o minutos, de relax en otro proyecto. Ya no digamos sostener un ritmo decente de avance. Así que, en resumen: sin una herramienta como las que he usado, Aritmetris seguiría en un cajón 16 años más. De largo.

A pesar de poder entrar al ordenador, leer el nuevo plan de Codex, revisarlo y darle a implementar y que, mientras trabaja, yo pueda ponerme a recoger la casa, ir a buscar a la niña a la extraescolar o preparar la cena, no deja de ser tiempo en el que te sientas al ordenador. Mientras el mundo te reclama. Y, cuando uno dice el mundo, se refiere a la familia.

Sin la IA me habría resultado impensable tener terminado esto sin haber abandonado todo lo demás. Y la verdad: al juego le tengo cariño, pero no tanto.
Un proyecto así, con familia, es carne de "padre ausente".

Lo que cambió y lo que no

El juego que ya estaba en 2010 Hay muchas cosas que no han cambiado, en esencia, desde el primer prototipo. Es decir, las decisiones de diseño que ya tenía entonces las he mantenido. Por ejemplo, las fichas son de tres piezas: número + operador + número. Las piezas se rompen al chocar con las otras y rellenan todos los huecos de la matriz principal. A medida que avanzan los niveles, también lo hacen las operaciones y los números disponibles.

Pero...

En esta versión hay mucho más. Aparte de que encontré la manera de darle más personalidad creando el estilo cuaderno y haciendo que todo respirase ambiente de colegio, también definí mejor los niveles, añadí power-ups y mejoré los controles. Además, al sumarle estadísticas, logros y una manera de compartir el resultado, he intentado darle un poco más de empaque para que anime a seguir jugando después de la primera partida.

Lo que no he querido añadir, por un lado porque me gusta que los juegos estén completos de base y, por otro, para no complicar más mi escaso tiempo libre, es la posibilidad de jugar online, registrarte y tener rankings con otros jugadores, etcétera. Si el juego funciona, gusta y veo que hay clamor popular, me lo plantearé. Pero, por ahora, quiero dejarlo limpio y offline.
En esencia es el mismo juego, pero ahora es un producto acabado.

Lo que he aprendido

Lo importante es saber acabar En este proceso creo que he aprendido muchísimas cosas sobre el desarrollo con IA. Me ha servido de aprendizaje para cosas que estoy aplicando en mi día a día en el trabajo. Ahora sé mantener un flujo de cambios usando agentes, sé cómo configurarlos para sacarles más jugo y sé que pueden hacer cosas que hasta hace nada me parecían imposibles.

También es verdad que en los últimos tiempos los modelos han mejorado muchísimo y no sé si en el verano de 2025 habría podido aprovechar algo así mientras perdía el tiempo a base de zips y conversaciones de besugos con ChatGPT.

Lo que sí habría cambiado es haber sido quizá un poco más constante en 2010, para que no hubiera hecho falta tener una edad, una familia y un buen trabajo para animarme a meterle caña al proyecto que había dejado olvidado. Aunque luego lo terminen jugando solo dos personas, merece muchísimo la pena llegar al final de un proyecto personal y darlo por terminado. Es realmente satisfactorio.
Llegar a la v1 en un proyecto personal parece una tontería, pero no lo es.

Qué sigue

No hay DLC ni pase de temporada Quiero que haya una v2 y quiero añadirle modos que todavía no tiene, para poder sacar una versión inicial con la que ver si gusta y engancha, y mientras tanto seguir con el resto de ideas del proyecto.

La principal: 1 vs 1. Quiero que el juego se pueda jugar en multijugador local en su versión de PC. Que puedas conectar dos mandos, o mando y teclado, o teclado y ratón, y jugar con tu pareja, tus amigos o tus hijos. La idea es hacer una versión competitiva al estilo de las que existen en Puyo Puyo, junto a otra para picarte contra el PC.

Y, más adelante, si quedan fuerzas y ganas, una versión online para móvil de lo mismo. Pero eso ya se verá.

También estoy abierto a recibir todo el feedback posible en info@aritmetris.com sobre los posibles bugs que podáis encontrar, para intentar solucionarlos lo antes posible.

Espero que Aritmetris pueda haceros pasar un rato entretenido. Y si volvéis a una segunda partida, el que he ganado he sido yo. Habrá v2 pronto, espero.