Bouncy Cars is probably my favourite game, so far. I miss the days of sitting on a couch, giving a good friend a thorough whooping, in a racing game. If you’ve ever played Micro Machines, this slightly inferior take on the genre may interest you!
My kids helped me design and test this game. I made it solely with them in mind. It’s one of the few game projects where I’ve spent more than a month; but in doing so have created my most polished game.
I learned an absolute ton from making this game. In no particular order of importance:
That third point is the one that sticks out the most for me. Without going into too much detail; I wanted to make a way to show the boys when they were going in the wrong direction. The races take place on a single non-scrolling screen (top down), but the tracks are procedurally generated loops.
The question is; how do you know what the “right way” is, when the track is randomly generated? If I was trying to work it out — if I couldn’t see the whole track, but was standing on the track and trying to document which direction to move to next — then I’d make a list of waypoints. If I knew the first waypoint then I could stand there and turn around until I was facing the next waypoint.
At the start of each race, I add the starting point to a list. Then I rotate and fire a “bullet” until it hits a waypoint. I add that one to the list. I can repeat this process until I hit the starting one; at which point I have an ordered list. Once the driver touches the zone around a waypoint, I know what the next one is. If they drive into any other, I can tell them they’re going the wrong way, and I can show an arrow pointing to the next one they need to drive through.
Even though these bullets can travel fast, there’s still a short amount of time required to traverse the track. To make sure this is all sorted out before the race starts, I added a countdown timer at the start of each race. This feature is actually a trick to compensate for the automation I added to solve the problem the way I would, manually.