Indie Train Jam 2017 and GDC17



March was an intense month for me. After we signed the contract with our new publisher Digital Smash for the upcoming release of our game, it was time for Kevin and I to pack our things and to go to the USA for the Game Developers Conference. At the same time, the Nintendo Switch was about to release March the 3rd and it was a really good occasion to get it for 50CHF cheaper than in Switzerland. Nintendo announced a conference at the GDC (I could not attend it, I had to many things to do) but here is a link:


However I went to see the post-mortem of Civilization by Sid Meier and Bruce Shelley. It was amazing to see the two game designers talking about the birth of this game series. I took 5 pages of notes just from this presentation. You can find it on the vault:


But before the GDC, I went for the second time to the Indie Train Jam from Chicago to San Francisco! Last year, I could not sleep well in the train, so I was worried on how I could sleep well. Fortunately this time, I slept well enough. I also did music for a team, making it a relaxing jam. Here is a photo of the team:


If you are looking carefully, you should recognise Jeremy Spillmann from Switzerland. Yes, this year I was not the only Swiss in the train. With this team, we made the game Take Your Shot, a duel game with a twist for pacific players. Here are some more photos from the train:




Then it was time to setup the GDC booth and go to Game Connection America. The #SwissGames booth was all covered in red carpet, we were in the complete end of the booth in the corner, probably not the best place, because not that many people were going through this part. On the other hand, Game Connection America was mostly a B2B  event, pretty boring compared to GDC, so I figured out I could train my soft corporate skills. At least, the venue was in a Baseball stadium:
So when Game Connection America was over, I was ready for GDC at the #SwissGames booth. I met some very interesting people, networked hard. We went to meet Nintendo to get Splash Blast Panic to go on the Switch. And of course, I did the queue to get a Switch on Friday the 3rd:


But I got one! As soon as the GDC was over, Soufian and I went on a road trip to California Highway One, before I took the plane back home to Geneva. Here are some photos:





Then I was on my way home, saving the Hyrule Kingdom.


Read More

Soup Raiders: Jailbreak – Post-Mortem of #GBJam 5 doing a real homebrew gameboy rom


Alexis and I participated last week at the GBJam 5. The goal was to create a gameboy-like game, with several rules (taken from

  1. The aim of GBJam is to create a GameBoy themed game
  2. All assets must be created during the duration of the Jam
  3. Keep in the original GameBoy screen resolution of 160px x 144px
  4. Use only 4 colors in your game

After one week of hard work, we finally created Soup Raiders: Jailbreak, a simple platformer where you play as Black Whiskers, a pirate cat, who has to escape and save White Fur, who is waiting impatiently. Alexis did a nice cover:


We had the best score for the gameboy feel category, which is kind of logical, because nothing feels more like a gameboy game than a gameboy game.

I hesitated a long time before taking the decision to create a real gameboy rom. Why so? IT IS EXTREMELY harder than to create a custom PC game with the top limitations. You have way less tools at disposal.

Hopefully, several tools exist to ease up the process, compared to our elders who were programming directly in Assembly. GBDK allows modern developers to code in C ( a very limited C, but still C). Unfortunately, it also means that the code will be less optimised than by hand in Assembly. For the sprites, we used GBTD, that automatically convert sprites to the correct format for GBDK. For the music, I used a tool called mod2gbt and gbt-player, the GBDK legacy folder, that seemed to work fine. The only problem for our musician was that he had to use a tracker like OpenMPT, but could not manage to make it run on his Mac. Hopefully, we could manage to make a small soundtrack. For the sounds FX, I had to change the numbers in the register to control them which was a bit trial-and-error process. For big images, like the logo and the title screen, we used GBTK that convert BMP and PNG file to asm data that you could use directly in the source code.

Also, on the GameBoy hardware, you don’t have the multiplication, the division, and floating-point numbers. So, if you want to implement “physics”, you have to think with integers on one byte with values between 0 and 256. Try to implement a jump with that:

Actually, it was an easy problem compare to a lot of other issues. I had a timer, each 3rd frame I decreased the y-velocity and then every frame I moved the player character with the velocity. Magic!

One of the most painful implementation was the box collision (that still have some bugs). On a bottom-right angle, you can go through. I let this bug as a speedrun mechanic, as you can directly catch the final key. My implementation was a bit hacky, like most of my code, but I manage to polish around the edges.

At the same time, I had to implement the climbing mechanic on each platform and correct bugs around it. The harder part was to actually make it work when you were climbing and then arrive on a new platform. Here is the climbing result:

A main feature of GBDK is to allow to use several ROM banks. You can put images, sounds, functions in other ROM banks, but just before using them, you have to call SWITCH_ROM_MBC1(bank_nmb), so you cannot use at the same time two different non-fixed bank (the main bank is fixed and is always at disposal, though it is quickly full, especially with C code).

For the sprites, in term of hardware, you are allowed distinct 128 sprite tiles and 128 background tiles. from 128 to 256, the tiles Video RAM is shared. Hopefully, you can always change the sprites in memory. In Soup Raiders: Jailbreak, I did not need to clean the tile memory, because we did not have that much assets. But for a bigger project, you have to think about it. You can not change the background in real-time (not in C) and so what I did was as soon as you switch from one part of the level to the other, I turn off the screen, put the new background tilemap and then turn on the display again. Lameboy, the gameboy emulator for Nintendo DS does emulate this feature, so there is always a little bug when you switch screen on it 😀 For the sprites (the moving part of the game), you have to move each 8×8 tile by hand, so my set_sprite function is quite big, as I needed to move Black Whiskers (16×16), the locked door (2 to 4 bar of 8×8 and 16×16 lock), the key (16×16), the seagull enemies (16×16), White Fur in the first part of the level (16×32). The funniest lag I had was on the first screen of the game. Having a seagull enemy plus White Fur plus the Locked door plus Black Whiskers walking on the ground made it lag BAAAD. The bug is reproduced when Black Whiskers arrives with the final key and walk on the ground.

Each frame, you have to set the sprite tile index of each tile. Depending which object is on the screen, I adapted my code to be dynamic with the sprite index. For example, you can grab a key and then go to an other part of the level where there was no key, so dynamically, the sprite index manager adapts to this new object. Here is an example of moving with a key:

I want to finish this blog post with some negative opinions I have about the GBJam. First, I want to congratulate retroshark for his work to organize this event. It is so pleasant to be able to play after one week su many good games reminding us of where we come from. But, maybe it is my Swiss side, it is very frustrating to have the gamejam announced one week before. It is one reason why I don’t want to support the kickstarter. I really don’t like this amateurish way of handling the event (especially compared to other online game jams like the Ludum Dare, that is announced months in advance). Second, the rating system is not perfect. The Ludum Dare system with coolness is a good example to be inspired from. I don’t know the back-end of, but it would be nice to have a “fair” system. I rated several more games than I got ratings, so I have this frustrated experience of the voting phase of the GBJam…

To conclude, the GBJam is an awesome creative event that really needs more attention. Creating a game for gameboy is one pain in the ass, but a very rewarding experience. We are very proud to earn the gameboy feel award and we hope to develop the Soup Raiders universe a bit more (more news soon).




Read More

Post-Mortem Frankenstein Play Jam and Epic Game Jam Round #3


What a monster did I create. “Return to Castle Frankenstein” is an experimental game, switching narration and mix of horror. I had to put together completely different assets and the result is a monster of a game. You can download it here.

Okay, I cheated. I did not use all the assets, but I could not do miracles. I had a very limited amount of time and exams at the same time. The execution was pretty random, but it is the goal of a Play Jam. I am expressing this notion of play, not of game, no rules, fuck the rules.

Did I enjoy it more than typical game jam? Yes and no. When you see a new asset arriving, you think about it, you try to think how the hell you are going to put it in the game. The funniest part is when artists only gave me atlases of their models. Do not expect me to put the arm at the correct place. The end of the game jam was though. I just finished my master and I just wanted to sleep, but no, I had to finish the game that so many people were waiting, and I was alone.

When I released the game, I enjoyed a whole day of sleep. And I also started to move out from Zurich, putting everything in boxes.

As soon as all my boxes were in my room in Lausanne, I left for the 3rd round of the Epic Game Jam, completely exhausted. Like every Epic Game Jam, I went with Frederic Dubouchet and we planned to crate a 3d game on Unreal Engine. With Ramiz as an artist, I started to create the music.
We finally crated Green’s Revenge a 3d shmup with a 2/3 camera view: here.

During this summer, I will start working on Soup Raiders, a tactical-RPG remake of our GBJam 4 game Black Whiskers with Alexis Simonetta, a lot of fun in perspective. I will also continue to work on Splash Blast Panic, adding Online Multiplayer, a lot of fun in perspective :D.

Read More