out’m’up

The inscene’99 visit had been quite as success, especially regading the 100K game competition. My brother and I then tried to figure out what we would do on the next instance – obviously, our chance of making a good game were higher than making a big demo like the one envisioned for “samedi, tous in my home”.

A comment by my peer “Gedeon” about how it was a shame that crazy brix was only using boxes for collisions pushed me towards the implementation of some pixel-perfect collision routines. I remember I wanted to do some pinball game, but after all, it was decided to go for a shoot-em-up. Our secret “games to do” folder had a long list aborted shmups, from the “Polycosmos” conversion of “space Mission”, the failed “cosmowars” on RSD Game-Maker, and the aborted “Bilou sky quest” … Nothing getting any close to our childhood golden award “Warhawk”. So I picked the “Tyrian” palette and started to pixel some ships.

The assembly code for crazy Brix was quite horrible, and I remember taking care of increasing the quality of the organisation for out’m’up. Especially, frames-to-aminations, level layout, and to some extent the sprites behaviour were described in a “data-oriented” macros system that looked a bit like game script, but converted straight into binary pointers and values — something that was apparently common in MegaDrive games development.

The second key development was to support a dynamic list of sprites, allowing fancy explosions, lots of shots and even powerups where crazybrix couldn’t even accomodate for anything but a ball and a paddle. Two lists, in fact. This engine was the first time I decided to split objects in two separate casts to reduce the amount of collision checks required.

While the level design wasn’t very inspired, the game received a brilliant soundtrack, a classic but good-looking starfield effect and Out’m’Up won the first place – although mostly due to the lack of significant competition.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.