Press "Enter" to skip to content

Making a shmup

I love me some arcade shooters – or shmups as they are often called. They’re fast, easy to play yet challenging to get good at. Regardless of platform I always seek out the shmups. Through emulators I have dozens upon dozens. With some vacation time I decided to try and make my own.

Years of inspiration

With a couple days off I found a few PC-based shmups that were all pretty awesome (and free). One is called Blue Wish Resurrection and it inspired me to try and make one for myself. Blue Wish isn’t super special or anything, it was just a lot of fun and struck me in the right mood, I guess. If you like shooters, give it a try.

Blue Wish Resurrection
Blue Wish Resurrection

After a reinstall of my old version of Game Maker failed to work some time ago I about gave up on making games, but I found a newer version that took the install and I was ready to roll. Game Maker is the same program I used to make Zombie Road – which if you haven’t played yet, please do. Game Maker isn’t a “pro” studio by any means, but it lets people like me play with programming games and sometimes the results are a lot of fun.

This time I’m making a shmup, which when you look at a shmup compared to a game like Zombie Road, looks relatively simple. It couldn’t be more of the opposite. The amount of effort I’m putting into the mechanics of a shmup is probably a bit ridiculous. Zombie Road just had zombies walking towards you…my shmup involves not only lots of spaceships, but flight paths, bullet patterns, and lots and lots of timing. It really makes me appreciate games like Star Soldier, Ikaruga, Aero Fighters and all the rest.

But I’m trying something a little different with my shmup – randomizing.

Controlled chaos

Typically shmups run the same events per level every time you play. While this does lend some fun to memorizing the patterns and getting good, it also requires a great deal of time. I wasn’t too interested in planning out levels. I wanted a shmup that was otherwise endless and different each time you play.

I took all the parts of a classic shmup – characters, flight paths, bullet patterns – and created a “pool” for each one. Then when the game plays it will pick a random ship, random flight path, and random bullet pattern each time. So the blue plane you see fly a zig-zag and shoot one bullet this time may do a loop next time and shoot 12 bullets.

But that’s not say it’s all chaos. Controlling happens in combining all the parts so that it’s not complete madness…because you don’t want tiny little spaceships firing bullet patterns that belong to a large gunship. Same with flight patterns…that same gunship isn’t going to do loop-de-loops. So there’s a lot of careful management of potential combinations.

I’m not sure if randomness will create a good gaming experience though. I guess there’s a reason shmups have always followed strict timelines, but if nothing else I’m building a good framework for any future shmup game I want to make – even with a fixed timeline.

I just have to tell myself to just make something and get it released. I spend way to much time thinking about “could do this” and “shouldn’t do that”. I just have to let players judge the work. I mean, I didn’t think Zombie Road was that good but people are still playing that after three years.


  1. Brian Brian January 5, 2010

    I said that Game Maker is not a “pro” development package but as I check out some other GM work I’m finding that to be completely untrue. Just because I can’t make it work super awesome doesn’t mean the others can’t. Just check this out:

    Shmup made entirely with GM

    Now granted the maker probably had the ability to create sprites, music, and all the parts…which I can barely do…but just seeing this type of product as a result of using Game Maker has me double-guessing some of my work.

    If nothing else it will push me to up the quality of my work.

  2. Brian Brian Post author | January 10, 2010

    I’m finding the amount of randomness I originally had planned on is not the best thing. It works but creates an experience that is a bit too disjointed.

    So I’m trying a new approach that is half scripted, half random. I’ll be designing the level timeline but each enemy/attack that comes on screen will be random.

    Players will be able to memorize when/where enemies come into play but they won’t be able to memorize the bullet pattern because its different each time.

    There can also be boss enemies now which should be fun.

Comments are closed.