The Making of Virus LQP-79


Code by Fuopy - JO3RI

Sprites by Justin Cry, Tiles by JO3RI

Banner & titleScreens by Castpixel


thanks to the beta testers:

- MahdiiOsmann

- m34ch

- mmeidl78

- Darrell_VA

- xTHETRINCHOx

- acedent


Actually it’s a bit of a coincidence this game has been made. While chatting on https://webchat.freenode.net/ in the #arduboy channel, suddenly Kevin (creator of Arduboy) mentioned that the Arduboy would be featured on a Japanese TV-show and they had been asking if there existed a zombie like game. JO3RI just popped the question in the channel: “who’s in for a zombie game ?” Fuopy (the creator of Glove - A lighter, softer, cozier gauntlet) was the first to answer.


So at the 9th Arduino-Jam, JO3RI started coding together with Fuopy and STG (both at home) and pixel artist Justin Cry for the sprites. On that Jam (in 48 hours) they made a pretty impressive version with 2 levels. After the Jam JO3RI continued working on the game and was able with a lot of STG’s help to get all the levels in the game, the way they wanted it to be.


Once the game was getting all of it’s elements in place, there was need for more pixel art. This is were Castpixel (the pixel artist who made all of the art for Blob Attack) came in. Once again she made a gorgeous titleScreen and banner for the website.


Like with every other Arduboy game, the coding space we can use isn’t very big, in fact it’s tiny. So quiet a big part of our time goes to compressing data and using tricks to use lesser bytes. For this particular game, we needed some more space to get all the data for the maps in the game. Basically we used the same tiles, blocks, maps methode, we used in our very first game we ever made: Dungeons. These are the 16 blocks all our maps consist of:

Of course these blocks are not the smallest parts. 8x8 pixels is each tile we use to compose those 16 unique blocks.


1 tile uses 8 bytes. A block is 8x8 tiles, so it consumes 64 bytes.

With each of our blocks we can create a map. We decided to have 8x4 blocks for each map. So the actual pixel size is 512x256 or 4 arduboy screens wide and tale. Altough 32 bytes for a map isn't that much, the blocks are even taking more space, we decided to compress them. When we were finishing up the game, we needed to free like 200 bytes to get all levels in. 16 bytes at 32 bytes is 512 bytes, if we could get that into half, we were good to go.

Now we have only 16 blocks, 0 to F, if you look closley at hexadecimal numbers (0x0F) you'll notice we can have two times an F: 0xFF or any other combination. So we decided to put a block in the left part and the next one in the right part of a byte.

I agree, this is the biggest gain in bytes, but I wanted to explain the principles of double RLE compression:tiles in blocks in maps and point you to the possiblitie of storing data together in 1 byte. If you ever decide to create your own maps, you'll be needing this ;)

The biggest gain in bytes in this game, was clever use of masks, but that I'll explain with an other game.