Tiny Wheels 0.2

I have been busy these days fighting some stupid illness, but I am fixed now. I worked a bit on Tiny Wheels nevertheless, so it’s time to release a new version. Here are some of the changes of 0.2:

User interface changes

I reworked the touch screen interface: buttons have a more pixel-art look, with a different appearance when pressed. More importantly, they are bigger and their size adjust to the device physical size, so they should always be roughly 1.5 cm per 1.5 cm wide no matter the device. I feel it works better this way, let me know what you think.

New HUD buttons in action

The various screens you go through before starting the game now scale to the device size, so you don’t get super tiny buttons on high density devices. The user interface looks a bit ugly right now because scaling is not smooth due to the game not using any scaling filter to achieve a pixel art look. Need to work on this to ensure it looks pixel-art-like, but not ugly.

I also dropped the accelerometer and swipe input methods for now, they were unmaintained and not usable. I am probably going to bring back at least accelerometer input in the future.

Gameplay changes

Turbo is done, at least a first version of it. That brings the number of different bonuses to 3, woohoo! :)

Bonuses are now attributed according to your current rank in the game: if you are in the top pack you will get mines, if you are in the middle, you are more likely to get guns or turbos, if you are at the end you will get mostly turbos. That makes it a bit easier to catch up when you made a driving mistake.

The game was still too hard, so I made it a bit slower. Once again, your feedback is welcome, as it is hard to judge the difficulty since I play it a lot.

Finally, AI racers changed their behavior with regard to mines: the AI used to drop the mine as soon as it picked it, now they wait for a few seconds before dropping it (they still don’t care if someone is behind or not). This new behavior makes it less frustrating when you are close to an AI racer and it picks up a bonus mine: you now have a short time to move away from its back before the mine is dropped.

That’s it for this release, hope you like it. As usual, it’s available for PCs and Android devices.


This week I have been working on a new bonus for Tiny Wheels: the turbo. When you pick it up, two bottles of green liquid get strapped on top of your vehicle (Some N2O probably. Is N2O green? I have no idea). Triggering it gives you a significant boost, and a small flame appears behind you, because you are driving faaaast!

I am still working on it, but it’s almost done. I also reworked the turbo road tiles to use the same code, as the turbo bonus gives you better control on your vehicle than the road tiles used to.

Police car using a turbo bonus:

Police car using a turbo bonus

Racers driving over turbo road tiles:

Racers driving over turbo road tiles

Tiny Wheels 0.1!

Time for a new release!

I have been very busy with work lately, having changed job, not working from home anymore… I am getting used to my new routine and take advantage of my daily commute to hack on Tiny Wheels.

Even if it’s still a very early alpha, it was high time to get a new version out. It’s been so long since the last one I am probably going to miss quite a few changes. Anyway, from the top of my head, here is what’s new:

  • A new map
  • New pixel-art graphics
  • Selectable vehicles
  • Adjusted vehicle physics (still not happy with them, but it’s getting better)
  • Slightly less dumb AI (where less dumb actually means better waypoints so they get stuck less often)

The desktop version also has a special feature: a split-screen two player mode.

Spreading havoc in the snow:


Going after an heavily armored roadster in the city:


Give it a try!

New version of Tiny Wheels

Time for a new release!

I have been very busy with work lately, having changed job, not working from home anymore… I am getting used to my new routine and take advantage of my daily commute to hack on Tiny Wheels.

It’s high time to get a new version out. It’s been so long since the last one I am probably going to miss quite a few changes. Anyway, from the top of my head, here is what’s new:

  • A new map
  • New pixel-art graphics
  • Split-screen two player mode (Desktop version only)
  • Selectable vehicles
  • Adjusted vehicle physics
  • Slightly less dumb AI (where less dumb actually means better waypoints so they get stuck less often)


Give it a try!

Tiny Wheels 0.1 (Android) Tiny Wheels 0.1 (Desktop)

Site Redesign

Long time no post! I have been pretty busy with a job change, but I am now getting used to my new routine, hacking on Tiny Wheels in the train on my way to work. I spent some (a bit too much!) time working on a redesign for the site because I was getting fed up with the old one. I wanted something a bit more playful and punchy. Hope you like it!

I have also been working a lot on Tiny Wheels, I want to finish a few things and upload a new preview version, with cool new features like being able to pick your own vehicle, a new map, or a 2-player split-screen mode for the desktop version! Stay tuned!

Who's the Fastest?

Over the weekend I added code to show racer times. Both total race time and best lap time are measured and displayed at the end of the race. They are not recorded anywhere for now, still pondering if they should.

Racer Times

The more observant among you may have noticed something odd: the race time of racers who finished after the player are all the same… That is a bug I need to fix: right now as soon as the player has finished the race the simulation ends and thus the race time of other racers is the same as the player race time. I need to let the simulation run to get all times, which also means I need to teach AI racers to unstuck themselves from road borders, otherwise they will never finish :)

Speaking of bugs, I created a Tiny Wheels project on GitHub. There is no code for now (Though I may release the source some time after the game has been released), I am going to use GitHub issues to track Tiny Wheels bugs. This time bug is bug #11.

Going Retro

I have been experimenting lately with a different art style for Tiny Wheels. Since the gameplay itself is quite old school, I decided to try pixel art graphics.

There has been a bit of noise lately regarding whether using pixel art in new games was a good idea after this article got published. I decided to go this way nevertheless for few reasons:

  • As I said, the gameplay itself should appeal to persons who played old 2D games like Micro Machines, Nitro or Super Cars, therefore I believe the target audience will not be put off by the big pixels.
  • Paradoxically, it is easier for me to support multiple resolutions with pixel art: zoom the images, make sure no smoothing algorithm is used, done!

  • I initially used vector drawing with the idea of supporting multiple resolutions, but in practice one still need to align vectors to pixels to product sharp results and render the drawings in multiple resolutions. That is not fun and quite time consuming for a single art-developer like me.

  • There are also a few benefits from a developer point of view: images are smaller so texture atlases are more likely to contain all of them, which is more efficient for OpenGL rendering. Additionally, since there is no need to provide multiple versions of the images for different device resolutions, the game packages are going to be smaller.

As I was leaving my beloved Inkscape behind, I shopped around for Linux software to use to produce my blocky vehicles. I played a bit with GIMP, a bit more with Krita (which I really wanted to use, but it’s not really designed for pixel art) and finally settled on Aseprite for now. It’s definitely made for pixel art, and makes it easy to create animations thanks to its onion skin feature.

Here is a preview of what I have produced so far:

Pixel art cars

Welcoming Tiny Wheels!

After much brainstorming and a poll on Google+, I finally decided on a name for my racing game:

Tiny Wheels

Hope you like it as much as I do!

Mines are back!

Time for a new Race release! What’s new in this one?

First, mines are back! They work a bit like bananas in Mario Kart now: they stay behind you until you drop them with the action button. Even when the mine is behind you, you can hit opponents with it, which is quite fun.

This is going to hurt... This is going to hurt…

Speaking of weapons, AI racers got a bit smarter with the gun: they now only shoot if there is another racer in front of them.

Permanent death is gone: When you get hit, your car spin but you don’t loose health and can continue racing.

Less racers: I reduced the number of racers from 8 to 6 so that races feel a bit less crowded.

More forgiving road borders: previously when one of your wheels left the road, some drag was applied to it, but not to the other wheels, causing your car to steer further out of the road. That is quite logical, but it was frustrating so I changed this: now when your car starts to get out of the road, a drag is applied to the whole vehicle, slowing you down but leaving your direction unaltered.

Finally a big one: a desktop version! I built a simple archive containing the .jar file for the game and a shell script to start it. It requires a Java Runtime Environment (JRE) for now. For real releases I will build self-contained archives, but that creates much larger binaries, so I’d rather require an installed JRE for now.

I only tested it on Linux for now (works fine with OpenJDK 7), it may or may not work on Windows and Mac OS. If you are a Windows or a Mac user, let me know how it goes.

race-150426-2250.apk race-150426-2250.tar.bz2


The bonus system is taking shape: racers can now pick them up and get one among the huge bonus list of gun, gun or gun… :) Not much choice for now because I was waiting for the code responsible for handling bonuses to stabilize before I build more on top of it. I think it’s in a good enough shape now to start building more bonuses.

AI competitors can also pick bonuses, but Artificial Stupidness would be a more appropriate term to describe their current behavior: they trigger the bonus as soon as they pick it up :). Another interesting aspect to work on later.

I have been struggling with the difficulty of the game: it was too easy to end up straight in front of a wall. I mitigated this by reducing the restitution of the walls and of the cars. It is more playable now, but I am still wondering whether I should allow cars to rotate in place when speed is close to 0. This would make it easier to get unstuck. I noticed a few games do this.

Test build

Want to give it a try? I built a .apk for you to test:


This build comes with a quite large debug screen accessible from the settings screen. Feel free to play with the settings and let me know if you come up with some interesting combinations!


What’s next?

My next topic is going to be damages. I want to change the way damages are handled: instead of a system of health points where you can take a few hits before dying permanently I want hits to disrupt your path, probably with a spin… Yes, similar to Mario Kart, again. I also plan to build more bonuses, and I hope to depart from Mario Kart here.