This is a little look into common mechanics used in the shoot'em up genre of games. If you look at the Wikipedia page for the genre you'll see that they distinguish between a large number of different sub-types. So to be specific, I'm writing about the following types of shooters:
I'm writing this post to hopefully provide some inspiration for participants in our inaugural Entelect Game Jam which we're having today. Due to the tight timeline since conception and execution of the jam this article is a bit rough... I'd like to come back at some point and flesh this out with some images and illustrations.
In terms of our jam rules - we're having a very short focused jam:
- 8 hours
- Supplied art: Kenney Space Shooter Redux
- Supplied starter projects: Unity & UE4 on Github
- Theme: Make a fun shooter using the supplied art in 8 hours or less.
We're trying this very short and constrained format for our first jam, because we found that most of our colleagues find it difficult to commit to an all-weekend jam like Ludum Dare.
What do I know?
Probably not enough, but writing is a good way to help me map out what I do and do not know on a subject, so I'll write down what I do know and try to point out the bits that I also need to learn more about.
I have developed at least 1 reasonably advanced tech-demo for a vertical scrolling shmup, so I've spent some time thinking about and implementing some of the mechanics I talk about here:
I've also played lots of shooters in my life... enough that they kind of blur together so I may struggle to remember their names even if I remember some of their game play or mechanics. That said I'm not brilliant at shooters - with the exception of multiplayer FPS I tend to prefer slower paced more strategic games.
The movement mechanics used in any particular sub-genre often also put some constraints on the shape of the game world. For example something like Space Invaders only allows movement left or right and restricts the action to a single screen, while vertical scrolling shooters will typically add forward and backward movement and a have a very tall vertical map that that the player traverses linearly.
Worlds generally fall into one of three categories:
- Single screen
- Horizontal / vertical scroll
- Open world
Single screen would be games like Space Invaders or Galaxian. Generally player movement is restricted to a left and right along the bottom of the screen.
Horizontal and vertical scroll introduce larger worlds that generally scroll from top to bottom or from left to right - I struggle to think of specific examples as these are so common that I've probably played a few dozen different ones. Movement in these are generally less restricted with players moving on the X and Y axis. Where these games do tend to introduce a restriction is by gradually scrolling forward into the world regardless of what the player is doing and not allowing the player to move backwards.
Finally for open world type games players can explore a world that's larger than a single screen by moving in any direction. Examples I can think of are Solar Winds and the Space Rangers series. The mechanic for movement in these types of games is often a more realistic rotation plus throttle mechanic instead of simple directional movement.
Probably the most innovative element in Jumpers was the short range FTL jump mechanic - essentially allowing the player to teleport around the map to avoid incoming enemies.
The enemies in these games generally fall into one of two categories:
- Fodder: Small enemies that are easy to kill, but generally come in hordes.
- Bosses: Stronger enemies that require many hits and special techniques to defeat.
Fodder enemies usually come in large almost constant waves and the player's only reward for killing them tend to be continued survival and perhaps a higher score. Bosses in contrast tend to more carefully designed and usually present a different challenge to the player like having to kill a large enemy piece-by-piece or having to survive massive difficult to dodge attacks while whittling down a big health bar.
In Jumpers I made all enemies do massive damage to the player when crashing into them and then for variety slapped some of the same weapons players could use onto them. I also gave some enemies recharging energy shields to make them harder to kill. Something that I was never really happy with was the patterns / waves that enemies spawned in - it's something that many games in the genre do better at.
I also never got around to building any bosses, but in my experience they generally fall into one of two categories:
- kill piece-by-piece in a specific order
- whittle down a large health-bar under bullet-hell conditions
This is one of my favourite areas to experiment in! The real-world and science fiction are both filled with a massive amount of weapons that you can try to build into your game. Some examples of weapons I built in Jumpers include:
- Machine Gun: Heavily inspired by the guns on the Vipers in the new BattleStar Galactica. Tiny damage, high rate of fire and only every 5th or 10th bullet is a visible tracer. Hits were shown by spark effects on the impacted target.
- Rail Gun: A small slug of heavy metal accelerated to nearly the speed of light. This was a hit scan weapon that instantly hit everything in a straight line in front of the ship. The rate of fire was slower to compensate for its power.
- Missiles: The missiles I implemented for Jumpers are actually closer to unguided rockets. Slower moving projects that do splash damage in a circular area when destroyed. Guided missiles or MIRV warheads would both make interesting variants.
- Plasma Cannon: A more shooter type weapon that fires highly damaging projectiles in quick succession. This one's rate of fire was limited by the amount of energy it consumed, so you could only do short bursts. An overheating mechanic would function similarly.
Some options that I haven't tried myself, but seen in other games include:
- Beams: A continuous beam of energy that melts anything in its path.
- Spread: A shotgun type spread pattern with a fast fire rate.
- Wave: Shots are a rectangle with a small width that increases in size as they pass across the screen.
- Turret: Automatically aims and fires at nearby targets or is controlled by the 2nd stick in twin-stick shooters.
- Bomb: Generally wipes out all enemies on the screen - usually used as a last-ditch measure when the player is overwhelmed.
These are just a few ideas, but keep in mind that implementing even one of these can take quite a while, so don't try to do many of them in a game jam.
The last mechanic I briefly want to touch on is player death.
Many older titles tended to be arcade games, so when the player died and had no lives remaining they would have a short window to insert a token and resume playing.
The way of dealing with death, often used in slightly more modern games, was for death to reset player progress, so players would replay the same part of a level over and over until they had memorized well enough to succeed.
Often dying would also have additional consequences like losing ship power-ups.
Something else that's important to mention is how players die... Here approaches can run the gamut from 1 hit from anything is instant death (typically used in bullet-hell games) to the player having multiple lives to the player having a health bar (or even multiple health bars like hit points and shields).
That's all for now... it's 23:49 the night before a jam, I need to go get my 4 hours of sleep! If you're interested in this though keep an eye on my twitter account as I might come back and spruce this post up a bit and add some images to illustrate what I mean more clearly.
Best of luck with the jam!