Game Design Deep Dive: Making Spartaga, a VR twin-stick shooter
Deep Dive is an ongoing Gamasutra series with the goal of shedding light on specific design, art, or technical features within a video game, in order to show how seemingly simple, fundamental design decisions aren't really that simple at all.
Check out earlier installments, including creating the striking pixel animations of Crawl, inventing a fictional language for Planet Coaster, and creating the intricate level design of Dishonored 2's Clockwork Mansion.
WHO: Russ McMackin, Founder of House of How
House of How is a small indie studio near Seattle WA. My name is Russ McMackin and I left my job as a game designer at Microsoft about a year ago to build a new studio. We're currently two people fulltime, with a little help from friends.
We just launched our debut title Spartaga. This article focuses on some of the design thought that went behind translating twin stick shooters and bullet hells to VR. First though, lets give some background.
I graduated from The University of Washington with degrees in Computer Science and Japanese. I went straight to Microsoft Studios after, where I worked on games like Gears of War, a lot of incubation projects, titles for Kinect, and then finally about 5 years in HoloLens where I focused almost exclusively on entertainment titles.
"Spartaga set out to translate the staples of the twin-stick/bullet hell shooter genre into VR. Here's the 3 goals that we set at the beginning on how we'd do it, and how they went."
At the same time, I did indie games on the side, which I had always been doing since I was a kid, and was how I taught myself programming in the first place. While I'm excited to be on my own, I'm still very thankful of the time I spent at Microsoft -- I got to spend a lot of time with some really great designers like J Epps and Ken Lobb (both from classic NES/SNES lineage) who taught me design from scratch and gave me a lot of tools and methods of really clarifying my design and thought processes that will continue to influence everything I do.
One of the most important, if not the most important design elements in a twin-stick or bullet hell, is having a lot of crazy stuff happening on screen, that the player can still have good control over. They need accessible controls, readable enemies, predictability, and many other factors. One of those factors that I’d like to focus on for this article in particular though is being “clean”, and what that means. The term can vary from person to person, so let me explain what I personally mean by it-
Watching a professional ballet dancer compared to an amateur is very different. For the professional, every movement is Deliberate. Balanced. Stable. They’ve done each move so many thousands of times that every little detail is perfected, and executed with ease and grace. An amateur doing the same move might get the motions mostly the same, but the toe won’t point quite the same way, or they won’t have the muscle to hold the pose without a slight shake. The audience can appreciate what they are doing, but they are slightly distracted because they’ll notice the little inconsistencies or pieces that didn’t quite look like what they are used to.
That’s what being Clean is. Being able to watch 10 dancers moving in unison, and not having any particular toe take focus away from the unit. Even with so many elements, there’s nothing erroneously distracting you from the overall performance, message, or meaningful pieces of the performance.
In games, to House of How, that means every movement, sound effect and bullet being made purposefully with a focus to communicate what’s needed of you as a player. There are aesthetic exceptions of course- music is technically unnecessary for example, but that’s not usually something you want to get rid of. Most games don’t need to be all that strict.
In vision, Spartaga aimed to be as clean as possible without going abstract.
WHAT: Translating twin-stick/bullet-hell staples into VR
Spartaga is the first real game from our studio. Before I go further, yes, I'll happily say it's inspired by Xortex 26XX, the arcade shooter in The Lab, as well as some HoloLens experiments I did over the years that I can't go into more detail on. Those were all great little projects, and I really wanted to make a full multi-hour game with progressing content, rooted from some of those ideas. Other public inspirations include twin stick shooters like Geometry Wars, shoot-em-ups like Ikaruga, and arcade classics like Galaga.
I'll talk about the project through the lens of Geometry Wars (the first one, primarily), since that's something most people are aware of.
The most important part of the design in Geometry Wars is the enemies. Of course, the player has to feel good to move around, but the enemies are the stars that direct all the action. Each enemy has a clear distinct visual and colors, differentiated behaviors, sometimes sounds, and sometimes reactions. Their exacting consistency is what allows the player to get into a good flow and control the mass, by feeling the behavior of the crowd as a whole by seeing the major patterns and groupings of the enemies.
Spartaga set out to do just that in VR, and here's the 3 goals we set at the beginning on how we'd do it, and how they went.
1. Clean Base Mechanics- Be one of the cleanest VR games, but not too clean.
As much as we'd like to have the super clean mechanics of Geometry Wars, we had to accept we couldn't and shouldn’t be quite as clean. First just because it’s hard to have incredibly consistent framerate in VR right now, so you can’t depend on pixel/frame perfect collisions, but also comfort- people have less tolerance to play in VR for multi hour periods and fatigue more easily.
With the relatively small number of VR devices right now, we'd rather make a relatively more casual title with more enemies and modes to experience than an extremely polished 5-6 enemies and single endless mode. That said, I’d wager it’s still one of the most hardcore games in VR right now. Having more enemy types allows us to play with interesting combinations and patterns more loosely without needing to get into an extremely high number of ships on-screen at once.
This also lead us to avoid things like using both hands, or summoning AI drones, because we wanted every player action to be very deliberate and controlled, where every situation is deterministically setup by the enemy type, and how you choose to react.
Since we have so much stuff we want the player to experience, and in a controlled method where they can learn it, we decided to hand build all of our levels rather than leave it to procedural waves to make sure the situations that came out were always clean. Still, hand placing and timing thousands of enemies is a pain, so we let some randomness help. But, to be clean, everything needs to be predictable, so every level goes off a set random-seed. That way, while there's still some twitch involved for exactly when an enemy will shoot, or the way a laser beam emitter is rotating that makes you react on the fly, it'll be the same next time too and you can memorize the patterns of each level to improve your score. Most all ships directly target you though, so it's not a matter of finding the "safe spots" because there aren't any- it's about learning the patterns and strategizing how you want to go after things. The random seed system was great during development, as we could let the seed keep changing to give us slight variations, and when we ran into one we really liked, we’d make it permanent.
The combo system was another major design piece in the game that really helped make clean and purposeful gameplay. Without it, you can kill in any order, and that’s fine and sometimes necessary, but it gives you room to do better. Every time you kill 4 ships in a row of a similar type, you gain a temporary powerup and a score boost. It provides significant reason why you should observe the whole battlefield and carefully pick your targets. So, you'd kill 4 Tanks, then 4 Shooters, then maybe 8 Butterflies, etc. On top of being clean, it also leads to interesting moments where the player sometimes waits for the 4th ship to spawn that they've already killed 3 of. They know it's coming and know what it’s worth, but it’s far safer to take the quick option and just kill what’s available. Or they might wait when a new group spawns until they do a quick ship count to make sure they are killing in an order that doesn't make them wait. All of this is totally ignorable by a casual player, and yet for a master player can be what the whole game turns into, where they restart as soon as they mess up a combo as they go for the leaderboards and try to figure out and memorize a perfect kill order.
Again, going for "clean, but not too clean", we allowed a little slop here. Even though you have to always do perfect 4s to continue your combo and go for perfect scores, breaking your combo doesn't stop your powerup so you can still survive.
2. Clean Enemies
The enemies need to be dangerous, but not overwhelming in groups. Every situation must be survivable, and based on your capacity to notice the flow. This means they need to have clear silhouettes, colors, telegraphs, and consistent patterns and speed. They also need to have ranges that they are more or less dangerous at, and move in predictable ways. We did this on a spreadsheet, where we literally graphed the distance they are dangerous at and the elevation, across each level to make sure we had a mix that was ramping correctly over the 32 levels and wouldn’t cluster up too much. We have ships that demand you look down, and ships that demand you look up. Ships that demand you dodge quickly and others you can be lazy about. Difficulty is easy to increase when we just force you to pay attention to multiple regions at once.
We also did tests on individual enemies to make sure they were fun and clean in isolation. Some great stuff came out of this- there are quite a few enemies you can dodge with your eyes closed just by memorizing the telegraph sound patterns.
The color of enemies also has some subtle language, which also lead to some interesting design decisions since similar-color is also the root of the combo system.
To be clean, every enemy needs to have a very clear purpose, a very clean counter, and a very clear role in groups.
Here are a few examples:
Shooters are the most common enemy you’ll see. They are very simple. They have some slight drift, a set rotation speed, set shot speed, set bullet speed, etc. There are some elite forms, but for the most part, they have a very clear purpose- ensure the player has to move. Easy enough. In groups, they start to serve a more interesting role- they aren’t the most dangerous enemy, but will spawn in such large groups that dodging individual bullets gets to be too hard when watching the flow of the battlefield, and force you to keep changing your movement into different regions- so not only do you need to stay on the move in a small space to dodge more immediate enemies, you need to continue rotating your small space around to different places to keep things around you clear.
Frogs make you look at the back-field. Many enemies, like shooters, have some idle drift, but they aren’t hard to hit. Frogs periodically jump from place to place, making you actually have to take concentrated time to take them out. The spread-fire shots they throw require pretty fast dodging if you aren’t moving, but if you constantly travel at a particular rate without backtracking, you can ignore them. In groups, they require a commitment, as killing a group of 4 takes time and concentration, so you often have to wait until you have enough of a lull to go for it.
Rainies fly above your head and try to rain bullets directly down at you with some spread. Beyond forcing you to look up, because they don’t have any drift, they are extremely predictable, letting you totally ignore them by simple continuing to move on the XZ plane. When they pile up, they begin to spread out, but still primarily on the X axis, making you now need to continue to move forward and backwards as well for your idle movement flow.
In combination with Shooters and Frogs, depending on the enemy count, you’re now needing to move on all 3 axis, at different rates, in a pattern that you can make up on your own to make sure you don’t repeat an area too often. Notice the Shooters and Rainies have similar color, as they make you take similar actions, at similar speeds, just a different axis, and are equally easy to target and kill.
Kamikazes, after a telegraph beep and shake, charge directly at you at high speed like the classic bull-dodging mechanic. If you’re aiming directly at them, you can kill them before they reach you, but only one or two before you’ll have to move. This is what starts you needing to dodge in micro movements. They aren’t ignorable, but can be easily avoided when you learn the timing. When paired with the preceding enemies, this makes you need to keep doing small dodges while also moving from region to region.
Of course, early on, and if you can keep up, you’ll often only have 2-3 of these requirements happening at a time, but you can see how by simply glancing at what enemies exist, you’ll get an idea of how you need to be dodging currently. Combos encourage you to take them out in groups, so you aren’t left with single stragglers forcing you to continue another level of difficulty in your dodge pattern.
Spartaga has over 30 enemy types. As you learn the rules for each (many have overlaps of course, often grouped by color), you’ll know what to do in each situation if you can keep it straight in your head.
3. Mode-able Gameplay
About 70% of the way through production, our mechanics were getting clean enough we were starting to feel that if you understood what to do, the game could become relatively easy, but extremely hard if you didn't. Bullet hells have the option to just put a crazy number of bullets somewhere, that make it obvious you aren’t supposed to go that direction, but we couldn’t really do that and still have good perf. We had so much content though that we really needed to let more casual players experience it all, without just dumbing it down to where the hardcode players wouldn't get to see the challenge it turns into. We also didn’t want to just keeping adding more and more levels that were harder and harder, to where most players would eventually drop out and feel like they didn’t get to experience the whole game because it was too difficult.
So, we decided to turn the main playthrough of the game into 32 levels, where you could feel like you “beat it” if you just got through that. That became easier than it had been before, where you get 3 lives and some ship upgrading so you could power yourself up a bit. It's still hard, you still have to be good to reach the end, but you can also beat the game without having to understand the mechanics 100%.
Then it became up to the alternate modes to really show the design. They’re all purposefully created to help explain how the game works. The main playthrough took us around 2.5 hours. A new player would probably take 4, more if they wanted good scores, and perhaps 8-12 hours to go through all the play modes. This doesn’t count one last game mode (Marathon), or competing on leaderboards with friends of course. Not bad for 32 levels. A very carefully designed 32 levels.
The alternate modes are:
1. Speedy- Everything goes faster, and you only get a single life. This is mostly just to show that single life playthroughs are possible, and you can compete here. The speed challenge doesn't actually make it that much harder. It's secretly just because when you memorize the patterns, you'd probably rather do it a little faster so you can get attempts in more often. Amazingly, it still feels fair too, you have to pay a lot more attention, but it’s still fair. "Unlimited" move speed that's only limited by the speed you move your hand at is pretty nice.
2. Pacifism- Again, one life, and ships just die by themselves after a set amount of time (different per ship type mostly). This mode is to say "Look! You’re capable of dodging forever in every level. Shooting is a bonus.” It makes you understand the enemies and practice that.
3. Elite- This is a mixed category. We had a few other mode ideas, and they were fun for different reasons, but some of them simply didn't work at all for a couple enemy types. So Elite mode became a level specific thing where we choose different combinations of rules that most interestingly suit that level. The two big ones here are
3a. Bubble- you can only shoot from within a protective sphere that teleports now and then- making you realize the benefits of some of the extreme angles.
3b. Sniper- you lose your auto shot, and only gain a mini, unlimited ammo version of one of the secondary weapons. Sniper is a bit of a misnomer because it's actually an AOE missile. This leads to another whole dimension of the design that you wouldn't otherwise realize is there- there are hidden patterns in every level that optimize the use of this- waiting for ship timings to line up where you can take out bigger groups at once. This could have been better, it’s not Starfox 64 by any means, but it works and is fun when you get into the more complicated levels. If it weren’t for how clean the base game is, something added on top like this would never work.
Really though. Why? Why did we bother to do this? The VR desktop market is small enough still that you can get away with far less. Just take a look at Steam sales numbers and you'll find that many games can get by still with just novelty, so why bother making a game that has a mode where you can play for 2-3 hours without firing a single shot?
It's also unpredictable enough of a market that there's an unfortunately decent chance we'll make almost no money from this, regardless of whether or not we have good mechanics. So why bother putting in all the extra time?
Honestly, it’s for personal reasons- it comes back from my time at HoloLens. After coming from Gears of War, which has some amazing single-player mechanics, and loving games like Dark Souls, to then doing Kinect and HoloLens, I was very tired of imprecise inputs. Working on both devices was really fun for an experiences designer, but a bit of a nightmare for a hardcore mechanics designer.
I'm looking at the VR market and not seeing a lot of good mechanic games around. There’s a lot of fun stuff, a lot of amazing immersive experiences, some mechanics are sloppy on purpose to be hilarious, and all of these have their place, but I think overall clean mechanics are lacking. There's a few reasons why a lot of VR devices are just sitting on shelves in closets, but the biggest reason for me is a lack of skill involved. There are exceptions, but the majority of VR games right now have relatively low skill caps- compared to something like Geometry Wars where setting a world record takes a weekend on a single play. That was fine for a long time, but I’m ready for more. I think there’s a need for it in the market, and I hope people appreciate we tried to help fill it a little.
Spartaga went on sale on 8/28 on Steam. We're extremely proud of what we made. It didn't go exactly to plan, and took a good 6 months more than we expected, but we're happy. The two of us that built the game have had fun for hours just trying to beat each other’s scores. Always a good sign.
Of course, I hope we'll make money to where our studio can keep doing this, and I hope people will appreciate the time we put into this, but in the end, I'm happy I got to work on another core-mechanic game again after nearly a decade on gesture/voice inputs, and to show myself it’s possible. It was a breath of fresh air.