This is the game we made at the Berlin Mini Game Jam October 2015.  Starting from a basic game concept from Norman Ritter, we teamed up with Denice Wagner and Tommy Friese and made this game with Löve2D.  Our description of the game is “local multiplayer abstract infinite runner survival game”.

It’s a game about avoiding obstacles of your same color.  You can control your own shape, becoming narrower or wider.  When you are narrow, the speed increases, making it harder to dodge the coming obstacles but easier to pass through the gaps, and vice-versa.  The game can be played by up to 4 players at the same time, the single player mode being a practice mode.  With more players, it’s about who survives the longest.  Visually, the running tracks of each player are overlaid on top of each other, adding a bit of confusion but also making the game more fun.  It supports gamepad controllers as well as keyboard input.

The music is the song “Master of the universe”, by Alpha boy’s album Heroes on tape.  Graphic design by Denice and Tommy.




Posted in Berlin Mini Jam, Finished Games, JamGames, Löve2d


This is a collaboration with Alpha Boy.  An audio-visual experience, rather than a game, even though it has a certain degree of interaction.

The grid.  A sky.  The 80s.

We teamed up at the Berlin Mini Jam of September 2015.  Inspired by my partner’s music, I started sketching some procedural code based on old tricks for demos, and we went on with that.  I think the result is quite neat.  We even recorded a small video of it.  However, youtube’s compression has severely affected the quality of the result, we recommend people to download and play the game themselves.




Posted in Berlin Mini Jam, Finished Games, JamGames, Löve2d

Stock Option

In August 2015, I attended Join, a conference about local multiplayer games.  Gregg Tavares presented his latest project, SuperHappyFunTimes, which is a NodeJs-based module for massive multiplayer local games.  The idea is that you can run a nodejs server in your computer, running the game.  This server creates a captive portal in your local wifi network, which other devices in the same network can access by opening a browser and going to the direction .  The idea is that these other devices will be smartphones.  The server gives them a simple web page that will be a custom controller for the game.  In other words, as many as 100 players at the same time can connect to the same game, via their smartphone, and use it as a controller.

I found it very interesting, and at the following mini game jam that month, I made a little game called Stock Option.  It’s a very much simplified “simulation” of the stock market, with only one single type of stock.  The players only have two options, “buy” and “sell”. The rule is that each time one player “buys”, the price increases by 1 euro, so the next buyer will find it more expensive.  Each time a player “sells”, the price decreases by 1 euro.  All players trade with a “central bank” with a virtually infinite supply of such stocks, the price is only directed by their actions.

If you want to play it yourselves, you’ll have to download and install SuperHappyFunTimes.  Then you can get this game directly from the official site, in addition to other games that are made available in that system.

Notes: The screenshot is of a lower quality this time because it’s ripped from the presentation video below.  Still, I wanted to use it because it shows more players connected.  If I was creating my own screenshot at home I wouldn’t be able to easily reproduce 16+ players connected.

Have fun!


Presenting the game during the jam:

Posted in Berlin Mini Jam, Finished Games, HTML5, JamGames


The theme for the Global Game Jam 2013 was “the sound of a heartbeat”.  Tanja Borzel had an idea for a game involving single cell beings swimming in the primordial soup, the player would synchronize the beat with other cells in order to connect to them, “becoming friends” and merging towards a multi-cellular being.

We teamed up and built a first prototype.  She took care of the art direction and created all the graphic assets, I wrote the code.  I had not been using Löve2D for a couple of years, last version I had checked was 0.5.0.  Over time, new versions of this framework had come out, adding new interesting features like shader support and sprite batches.  I decided to give the latest version at the time (0.8.0) a try.  I was pleasantly surprised, so much that this is the framework I have been using for the majority of my games in these two years.

First of all, we made a game with a strong influence from “exploration” games, something deliberately relaxing without any pressures on the player nor fast-paced action.  One of the design goals for this game was “no aggression”.  We would avoid any game mechanics involving cells “attacking” each other, by eating or any other similar means.  On top of that, another design goal was to create a game without instructions, a game where the whole point of it is to learn how to play by trying.  Given that the concept of this game is very different from the typical ones, in terms of new game mechanics to learn, the prototype had the flaw that it was very obscure and players were mostly lost.  Across time, this has been a game that survived in a corner of my hard disk.  Every few months I would go back to it and change a few things and show it to friends for play-testing.  Through this iterative process, the game has evolved into what it is now.  I am satisfied with how accessible it has become, and I am finally sharing it publicly.

Iwan Gabovitch helped us with the sound design and music, finding royalty-free material we could use.  For the main sound effects, I ended up using some instruments from the OLPC project.

As I mentioned, the game is made with Löve2D (version 0.9.1).  It’s free to download, but we appreciate a donation if you like it.  It’s available at






Posted in Finished Games, JamGames, Löve2d, Other Jams

Löve2D documentation for offline browsing

Some days ago I was looking for some way to quickly check the documentation for some of the languages / frameworks that I use, specially when I am offline.  I came across Zeal, which integrates well with many text editors.  The idea is simple: you highlight the keyword you want to look up, press “F1”, and you get directed to the corresponding page.  Zeal provides a quite big list of documentation bundles, called “docsets”, but one for Löve2D is missing.  However, it is relatively easy to create one yourself, provided you have the documentation already in HTML format.

So, I downloaded the Löve2D wiki as a zipfile, using the link provided in the wiki itself, and spent a couple of days massaging the files until they appear in a format that is better fitting for this purpose.

If you are using Löve2D on a regular basis and you’re tired of the typical “copy text -> open browser -> go to google -> paste -> click search -> click on the first result -> maybe I still need to navigate the wiki a bit more to find the info that I’m looking for”, this might be helpful to you.

Docsets, however, have a predefined set of possible “categories” in which to classify your pages, as you’re building the internal database.  I’ve tried my best to fit the wiki categories into those, but sometimes I couldn’t find a good match: for example, the tutorials are in the “Annotations” category since I couldn’t find anything better, or the information about the different versions of Löve2D are in the “Packages” category since there was no “Versions” category.

The docset might or might not work on similar software that also uses the format (like Velocity or Dash), but I haven’t had a chance to try it.

I hope you find this useful.


Posted in Löve2d, Misc

Button Mashing Duel

This is the game I made at the Berlin Mini Game Jam on June 2015.  During the jam I wrote the prototype in Löve2D.  Afterwards, I thought that I’ll get more reach if I port it to HTML/Javascript, so that the game runs in the browser, avoiding the need for a downloadable binary.

The week before the jam, I had been thinking about online arguments.  I had an idea for a possible game where the person who gets the last word in “wins”.  But if someone else replies, then the other person is “winning”.  This is a minimalist interpretation of that concept, where you “win” by being the last to press the button. The catch is that if you “reply” again when you were the last to “talk”, you “contradict” yourself, so you lose points.  In terms of this game, this means double-clicking is punished, you need to be alternating presses between the two players.  The point of the game is to trick the other player into double-clicking, so that you can get ahead in the race for maximum score.

The game was playtested during the jam, the players generally liked it and some suggested turning it into a drinking game, which I think it’s a cool idea.

The browser version supports gamepad controls: just plug 2 gamepads, one per player.  If you don’t have gamepads, you can use the keyboard: left player uses the “A” key, right player the “L” key.  But part of the point of the game is to psychologically trick the other player into double-clicking, therefore physical contact is not allowed, nor touching the other player’s button.


Button Masher Duel


Posted in Berlin Mini Jam, Finished Games, HTML5, JamGames | 2 Comments

Icemelt Run

I teamed up again with Michael at the Berlin Mini Game Jam on November 2014.  The theme was “winter is coming”.  After some brainstorming, we came up with a basic concept: A bear running around slippery ice, gathering food for the family, while the ice is melting.  In a sense, our interpretation of the theme was rather “summer is coming”.

It’s a completely free game: no ads, no in-app purchases.  It’s a pity that in this day and age I have to give the explanation, just saying “free” doesn’t cut it.  Made for Android using Löve2D, as usual, and available at Google Play for you to try.  High scores are saved on the device, and the level layout is procedurally generated.

Have fun!

Icemelt run


Posted in Android, Berlin Mini Jam, Finished Games, JamGames, Löve2d