Star Balloon – A challenging match-3 puzzle game

Today I want to tell you about the next project I’m about to release. I created a new game together with Silvia.

Star Balloon is a breath of fresh air in a sea of asset flip puzzle games. A challenging match-3 puzzle game in which you steer colorful balloons in real-time to clear a path for a special balloon that will bring free internet to the world.

Star Balloon includes familiar mechanics of match-3 games, but runs in real-time. Whether you take action or not, balloons keep going up, swinging left and right until you take control of them. Balloons are controlled by tapping on a pair of fans located at both sides of the screen. The control is a bit challenging at first because fans blow balloons in the opposite direction, but very rewarding after you get used to it.

The game starts after the balloons in a factory are accidentally released to the sky. Some of the released balloons use experimental technology that gives them exceptional properties. The most important one is the star balloon, part of an ambitious research project to provide free Internet to the entire world, but in order to do so, it must reach first the stratosphere. The goal of the player is to clear a path for the star balloon to get through and eventually reach the stratosphere. The other balloons will get stuck to the clouds, blocking the way for the star balloon so make progress, but some of the exceptional balloons will be useful to clear the path faster.

This is the first paid game we release. You can buy the game here. Until the launch in 2019-11-14 you can pre-register it in the same link.

If you want to learn more, head to, or leave me a comment.

Publicado en android, engineering, English, Uncategorized | Etiquetado , , | Deja un comentario

Quantum derail is now launched

Quantum Derail is my latest personal project, a point and click adventure game set in the near future in which you play as a policeman solving a physics related mystery. You can play online in your browser, without flash, for free!

You arrive at the police office to meet your boss and figure out what’s next. What’s next is the theft of the first quantum locomotive in the world from a company named Quantum Steam, based in New Palo Alto. You have been following that development since they made the first press release! The main suspect is the ex-lead scientist from the company who is known to be hiding in an abandoned station with his uncle. There is where the adventure really begins.

Play it on

Publicado en English | Etiquetado , , , | Deja un comentario

Creating an HTML5 game with Typescript and Redux

I spent a few months creating a short point&click adventure game that runs in the browser with HTML5 and canvas.

Two of the key technologies I decided to use are the Typescript language and the Redux library. I want to share some details of how I used them.

Seguir leyendo

Publicado en engineering, English | Etiquetado , , , , , , , , | 1 Comentario

How I made a 2D point&click adventure game with Blender


I used Blender to create all the graphics in the game Quantum Derail. The game renders 2d images and sprites on HTML5 canvas, but I made these graphics by pre-rendering 3D geometry on Blender.

I had to figure out a number of things, and I thought I should share the workflow with others in case it is useful. Keep in mind that this is one of the many possible workflows, but it is one that has proven to work for me. This article will focus only on the workflow to produce the visuals for a point&click adventure game, not on the code needed to run the game. For the coding part I wrote a separate article.

Seguir leyendo

Publicado en English | Etiquetado , , , , , , , | 6 comentarios

Finalizing my new game: Quantum Derail

I’ve been working for the last 9 months on a new point&click adventure game. Actually, the work started already on 2016 when I spent a couple of months writing the script and designing the puzzles. However, creation of assets and code happened in 2017, and still continues.

I plan to write a couple of in-depth articles explaining the workflow to create assets and the core design of the engine (which I created myself). However, I want to share a couple of high level decisions I took during development and turned out to work quite well for me:

Seguir leyendo

Publicado en engineering, English | Etiquetado , , , , | Deja un comentario

Cómo crear un chatbot

myBotEstoy trabajando en un proyecto personal para acercar la inteligencia artificial a todo el mundo. Se trata de un editor de bots conversacionales. El proyecto se llama myBot, y podéis probarlo aquí.

También os había prometido detalles técnicos. A continuación os cuento un poco cómo funciona. El motor de todo el sistema es una red de neuronas recurrente. Más específicamente, una red con neuronas (o células) LSTM. La principal ventaja de este tipo de redes es que poseen memoria. Son capaces de recordar información que recibieron en su entrada anteriormente. Por eso mismo, se utilizan con frecuencia para reconocer secuencias de datos.

Si recordáis el artículo sobre Deep Learning, las redes de neuronas convencionales (feed forward) se entrenan con ejemplos que son pares [entrada, salida], de forma que si a la red le presentamos esa entrada, nos gustaría que produjese la salida que le hemos enseñado. Si recordáis, lo primero que tenemos que decidir, es cómo codificar entrada y salida como listas fijas de números. ¿Pero qué sucede si intentamos aplicar este modelo a secuencias de datos, como por ejemplo las secuencias de caracteres en frases o párrafos? Pues que hay que empezar a usar hacks, para adaptar secuencias de longitud variable a una red con longitudes fijas.

Aquí es donde entran las redes recurrentes. Dado que son capaces de recordar las entradas anteriores, no es necesario hacer ningún hack. En el ejemplo de las frases (que es lo que se hace en myBot), damos a la red un caracter a la entrada, y luego otro, y luego otro, y así sucesivamente. Cada vez que la red recibe una entrada, producirá una salida, con lo cual, la salida también es una secuencia!

¿Y cómo entrenamos una red así? Pues ahora, los ejemplos de entrada y salida no son dos vectores con números, sino dos secuencias de vectores (posiblemente de distinta longitud). Uno de los algoritmos más utilizados para entrenar este tipo de redes se llama Propagación hacia atrás a través del tiempo (BPTT). No os voy a aburrir con los detalles, pero si os interesa más información que lo que sale en la página de Wikipedia, dejadme un mensaje y os contesto con más referencias.

¿Qué podemos hacer con una red como esta? Prácticamente cualquier cosa que tenga que ver con secuencias. Por ejemplo, asociar preguntas con respuestas, de forma que dada una pregunta, la red produzca una respuesta. Estaréis pensando, ¡seguro que eso es lo que hace myBot! Pues no exactamente, en myBot se utiliza la red recurrente sólo con el objetivo de clasificar las preguntas según el grupo al que pertenecen. A continuación se proporciona una de las respuestas definidas por el usuario. De esta forma, no hay sorpresas cuando la red genera gramáticas divertidas, o palabras que no existen.

Alguien se preguntará, si simplemente se reconocen preguntas y se elige una respuesta, ¿qué valor proporcionan las  redes de neuronas recurrentes? El valor que proporcionan es que modelan el lenguaje y son capaces de reconocer incluso preguntas que nadie les ha enseñado, y son muy resistentes a errores tipográficos. Esto lógicamente funciona mucho mejor cuantas más preguntas y variaciones se le enseñen al bot. Como todas las redes de neuronas, son una herramienta estadística. Cuanta más información consumen, más habilidad tienen para reconocer patrones y encontrar la información que es realmente importante.

El mundo de las redes de neuronas recurrentes es algo más enrevesado que las redes convencionales, pero si hay suficiente interés, puedo escribir un artículo de divulgación más detallado explicando cómo funcionan y cómo se entrenan. ¡Ya me contaréis!

Mientras tanto, probad y compartid vuestras creaciones, tengo curiosidad por ver lo que sois capaces de hacer con la herramienta 🙂

Publicado en Uncategorized | 19 comentarios

Learning to design video games

Almost 6 years ago, I published my first video game: Egg Savior. I thought it was a great opportunity to learn what it takes to publish a game, and I was right. I did learn a lot, specially a lot about production. I also tried to get some visibility which introduced me to the super hard world of marketing and advertising. I even had a partner for the distribution in South Korea which ended up being quite successful.

Game design is hard

egg_savior_shotI also learned that designing a video game is hard. When I created the first 10 levels, I carefully sorted them by difficulty, from the easiest one to the hardest ones. Then, I did some play testing with the help of a few friends of mine. I asked them to tell me how much time and objects they ended up needing to complete each level, as well as how many attempts. The results were shocking.  Seguir leyendo

Publicado en English | Etiquetado , , | Deja un comentario