Got my Tiny Arcades

Another long-time-no-update post. But it really took a while until I got my Tiny Arcades (Customs kept them for solid 4 weeks alone). It took me a few more weeks to get the SD card stuff working - but now I can provide you the binaries that can be simply put onto SD card for playing the first game I release personally for the Tiny Arcade: Tiny Run! It's a simple endless runner - without sounds (yet). I have to figure out how to use sounds - and storing the scores somewhere...

Wed, 31 August, 2016


Lot's of stuff happened since my last post! One thing I got super excited of is the the TinyArcade Kickstarter Campaign and I am looking forward to receive my pick next March.

Tiny Circuits was even so kind to send me an early production prototype so I can work on making games for that! The system itself is quite compatible to the old tiny duino board, just slimmer and a lot faster with much more RAM. And the flash memory is even reprogrammable so programs can be installed from SD card as well - which is exciting for distributing games because it won't need an IDE any more.

So I've begun working on a new framework that uses C++. I'm fairly new to programming with C++, so this is also a learning process for me. It's available on GitHub. I've also managed to make a new game that resembles "Simon Says" but is named "Duino says":

Read more ...
Wed, 09 December, 2015

Tiny Arcade

A bit late but still running: The TinyArcade Kickstarter Campaign!

It's also featuring the TinyDuino with 48mHz processor and 32kb RAM. But it also comes with a speaker and joystick shield.

Thu, 26 November, 2015

Tiny Invaders

Tiny Invaders is ready:

The source is available on github.

Special: It works with the tiny screen buttons as well as with the tiny game pad, depending on what buttons are used to start the game.

Thanks goes to InnoGames for allowing me to develop this game during my work time as an InnoDay project.

Thu, 10 September, 2015

O-Watch Kickstarter

Have you heard of the o-watch, a 3d printable smartwatch for kids?

It showcases the next generation of tiny duino processor boards: 48mHz processor, 256kb flash and 32kb RAM - so 8 times faster and memory as well as 16 times more RAM. Buffering the entire screen (even with 16bit) is therefore possible - must be a cool base for quite sophisticated games!

Fri, 04 September, 2015

Background bitmaps

I've optimized the tile map rendering system a bit so now it's about 10-15% faster. It's still beyond what I was hoping for, but I think this is as good as it gets.

I also realized at a point that I could add repeated background images quite easily:

It's actually really cheap too, memory and speedwise: The background is a gradient that's just 4 pixels wide and 160 pixels tall (to support parallax vertical scrolling). When filling the line for the background, I first draw the bitmap's line just as usual. Then however I memcpy the fragment of the line and copy it once. Then I repeat the process but with twice the size. Not really a big deal, but it's fairly efficient (the memcpy_P function that copies memory from flash to ram is also very efficient by the way).

I think I want to implement a jump'n'run game at some point, just because it might look very neat :).

Sat, 16 May, 2015

Tilemap Rendering

've finally added tilemap support for my rendering system:

The performance is so-so: It's more memory and CPU efficient than rendering individual sprites by quite a bit. All you need to do is to specify an image atlas containing all images with power-of-two sizes, ordered in a n x m way. Up to 16x16 maps are supported (though that is rather unlikely due to general memory constraints).

Read more ...
Fri, 15 May, 2015

Activity Status

The Kerbal Space Program 1.0 Release threw be back a bit because I played that game a bit more than I should have...

But it's nice to see others working on games too - apparently someone is working on a racing game, I am curious what more is about to come!

Apart from that, I have ordered my 3D design for a case for the TinyDuino:

Read more ...
Sun, 03 May, 2015

Case Design Log 2

I am still trying to create a case for the tinyduino:

It's looking ok so far I think. Even though I have plenty of 3d modelling experience, it's more difficult than expected to take mechanical properties such as material thickness or movement of parts into account. I also only have a rough idea how the parts should be assembled - I'll have to slice the body I am making now in the end. Though I also have to take care of placing switches in a way that they work properly. I don't know how much 3d printing of those parts will cost - maybe 30€? Will have to see ...

Fri, 24 April, 2015

Asteroids Progress Log 2

I've made a short video showing the game:

Wed, 22 April, 2015

Case Design Log 1

I've took "measures" and now I have the Game Kit's shield assembly in 3D:

It's the first step to make a case for the thing so that it looks more "finished". While I've been creating some very few 3D print designs in the past, this one is the first that I'll try to do for something functional.

I'm really tired of the current state of my device and I want a proper casing as soon as possible! Hopefully pressing buttons will become less painful.

Apart from that - you might notice that the USB shield is between the joystick and the screen. This isn't how it was intended I believe, however, this way I can still press the screen buttons - at least two of them quite conveniently. I hope to make use of that.

Wed, 22 April, 2015

Asteroids Progress Log 1

I've continued working a bit on the Asteroids game while redoing the blog!

Read more ...
Tue, 21 April, 2015

New Blog

I've decided to get a domain and switch to a static blog generator engine called LuaPress. Hope this'll save me some time!

Sun, 19 April, 2015


I've started implementing an Asteroids clone game using the framework I've made the last week. So far it's looking good and progress is pretty fast. Shooting and hitting works too!

Sat, 18 April, 2015

NULL experiments

I've been spending quite some amount of time to track down an error yesterday - and failed.

Only when I woke up this morning I knew where the cause of the problem was:

static void RenderScreen_drawRectTexturedUV (int x, int y, int w, int h, unsigned char imageId, int u, int v) {
  RenderCommand *cmd = RenderScreen_drawRectTextured(x,y,w,h,imageId);

The problem with this piece of code is that it's not checking if cmd is NULL. It is designed to return NULL when the render command is culled for example and therefore isn't added.

Read more ...
Thu, 16 April, 2015

Texturing efforts

Drawing textures on the TinyScreen is also possible with reasonable frame rates:

This demo shows that it's possible to draw >20 small textures with a transparent color index (8x8) and two larger images at the same time on the screen while maintaining around 16fps. It's also possible to fill the entire screen. Optimized with using memcpy_P, this is even running at 33ms, so about 30fps!

Read more ...
Wed, 15 April, 2015

Scanline rendering

The first two blog entries haven't gone into detail, so I'd like to change this now - with an ugly picture taken and some explanations about it:

What you see is a photo of a rendering test. I am drawing circles and rectangles with some simple calls:

Read more ...
Tue, 14 April, 2015

Rendering system thoughts

Tiny Circuits provides a library for using the TinyScreen. There are various useful functions like drawing pixels, rectangles, lines and even text! This is certainly cool to get started but there is a major drawback when it comes to updating the screen with some more graphical content: Flickering. Sadly, most of the functionality in that library is therefore not suitable for making games except for a few…

Read more ...
Mon, 13 April, 2015

My TinyDuino Game Kit

I received my TinyDuino Game Kit as a backer reward two weeks ago. I had zero experience with programming for the Arduino platform. However, I have quite some experience with C and game programming in general, so I want to blog now my findings and experiences.

Read more ...
Sun, 12 April, 2015

Tilemap Imports

The past weeks I've been working on importing tilesets from the Tiled map editor. This is a convenient way to create tilemaps:

Fri, 30 January, 2015