Vroom Boom Toy Cars!


Download Vroom Boom Toy Cars! Playable

So it happened that December’s theme was CONSTRUCTION – DESTRUCTION. I didn’t have any ideas for it, and I collected some tasks I wanted to tackle for a while, so I decided to skip that month’s HEJ game jam. I started to program other stuff, but in the end it kinda become a game half in-theme with the destruction part. I titled it Vroom Boom Toy Cars! as it seems like radio controlled cars competing in destroying a playroom full of small blocks, mushrooms, and traffic cones and each other for points. At first, I planned the construction part as players placing the objects before the cars can be controlled, but that would have been very time consuming, so instead I just placed a certain (but adjustable during play) number of objects in a period of ~10 seconds to free spaces. Objects have different hit points and score value, and there are toolboxes for recovering some lost HP. 4 players can play simultaneously, two with gamepads and two with the keyboard. Left and right controls the steering, there is a button for acceleration and to go backwards, and a scrapgun that shoots screws to deal some damage, and a mine can be placed to make things go boom (see respective controls in Help, or when game starts, on the cars). The guns have cooldowns, shown on top of the cars with their hit points. When HP hits 0, the car loses its tires and burns out, then disappears. If there is one or none left alive, inactive cars also self destruct, and then scores are shown on the screen. I had fun creating the sounds (I will try to create more of my sounds in the future). I have some radio controlled toy cars at home, those provided the cars’ sound. I beatboxed some sounds (like the vrooming in the main screen) and used tools and household items to cling-clang sounds, oh and a balloon for the thumping sound of the tires in the menu. 🙂 Music is, as usual from the extensive music library of the amazing Vincenzo. It is easy to find fitting music for these game jam games. 🙂

The cars seem like 3D cars, but that’s not the case. There is a pixel art technique called image stacking, which basically means an object’s appearance is composed as if it were 3D, layer by layer like a cake. These layers are then drawn one by one onscreen, the next layer always shifted up by one pixel. Then rotating an object gives a cool pseudo 3D look. For drawing, I made a side view then traced it back line by line to draw the top view of all layers in Aseprite. Though I figured it would be easier to use a voxel editor to build these and then export that layer by layer, for this one it wasn’t necessary. But, should I ever get back to this project (re-imagining the whole gameplay, controls and everything), that would be the way to make cars and objects that uses this pseudo 3D effect. This technique is costly I must say. As an object’s draw phase per frame is only one draw_self() by default, should you use some effect or shader, let’s say two, or three. This uses as many draws, as many layers you have, 17 in this instance. Only the cars are drawn this way, so it’s ok in this game, all other objects have only one sprite.

car_image_stacking homepage_cover

In conclusion, it was fun to try out this technique, I like it a lot. I’ll get back to the Ian Stokesworth project, continuing to create scripts instead of extensive lines of code. I already made menu scripts to easily create working menus, I rewrote a moving script (to move lifts around a nice way, with acceleration, top speed, and deceleration). I plan to write some more moving scripts for objects, and then see what else needs an upgrade.