I grew up playing classic arcade shooters, such as Raiden Project in arcades, and 1943 on my NES, and some of my more recent favorites include Ikaruga, and Geometry Wars; it would be putting it lightly to say that this genre is a favorite of mine. And like all self-respecting game developers, I took my love for a genre, and created an addition to it: Pixel Purge, by myself and Andrew Sandifer. Even though the game was well made and well received, I learned a lot from it - both during development and post-release.
Note: I previously wrote a post mortem of this game on my own blog, covering different topics -- so I guess you could call this a post-post mortem.
Play the Game
What do you like about the game? What would you change?
How It Plays
Pixel Purge takes heavy influence from Geometry Wars, and it shows. You fly around in a small arena, blasting enemies of varied sizes. The game doesn't have levels in the normal sense, or an end goal, you simply survive as long as possible while marveling over the bright explosions, new skills you acquire and the sheer number of enemies you're able to kill.
A Let's Play of the game, by SirTapTap
Simply cloning Geometry Wars wasn't our style however, so we spiced things up with various upgrades, achievements, and other goodies. These additions were very well received by players, and definitely added a level of complexity that was simple enough to grasp, yet complex enough to give the game depth; a difficult balance to achieve.
The Upgrade System
The upgrade system was the core addition to a tried and proven genre, and it did wonders for the fun factor of the game. Upon defeating enemies, they explode, sending out a number of colorful flashing pixels based on how tough they were. These pixels can then be collected, and they work towards leveling up your ship. Upon leveling up, you receive skill points, and you can put those points into various upgrades - from attack speed and spread, to piercing and critical hit chances.
While this system was fun, it was also a double-edged sword. The problem is that the enemy progression and overall difficulty of the game is dependent not on time, but the level of your character. If you level up, so does the enemy.
There are many advantages to this. If you play aggressively, or are very skilled, you can quickly pass the early, less entertaining portions of the game by leveling quickly, as the game difficulty levels with you. Jumping back into the action quickly is an extremely important factor in arcade games, so this worked well. Another pro is that it's quite fun to explore different upgrade builds, to see which you find more effective. This added a lot of replay value to the game, as each new build felt entirely different.
The downside to this system, is that it wasn't very clear to your average player. If you weren't collecting pixels on purpose, and were just killing enemies, you were left fighting the weakest (and most boring) foes for quite some time. This lead a few players to think that the game had little to offer, and they quickly got bored. Another con is that one of the upgrades increased the number of pixels enemies dropped, thus increasing how quickly you leveled up.
The upside to that is that upon leveling up, you get all of your health back; the downside is that putting points into leveling up quicker just makes the enemies harder, and you weaker, as your points don't go into your more effective abilities.
A proper solution to this issue is difficult, as it's a core part of the game. If you decouple leveling up from enemy progression, you're left with slow early game progression, and a potential lack of fun in build exploration, as each level won't be as strategically tied to the difficulty. I've considered the potential of a time and skill based system, where how often you get hit and how high your score is both play a role, and I think it could actually work, but haven't tested it. Either way, a fix is needed, as many people commented on the issue.
Making The Game Accessible
One of the biggest issues with making an arcade shooter for the web is that the game needs to be friendly to casual players.
Generally speaking, many arcade shooters give you just a single hit until you lose a life, and sometimes they only give you one life. To relax things a bit, we decided to give the player a decent amount of health, and a health bar. Aside from showing the player their health, the bar also helps raise tension when health is low, which makes the game more exciting.
In addition to the health system, there were two other helpful features. The first was a shield power-up. Enemies would randomly drop these upon death, and picking one up would make you invulnerable to the next hit you take. The other was a passive ability that slowly regenerated your health over time. This skill was one that could be upgraded with skill points, allowing players who died too easily to focus more on defense.
While the game was pretty accessible for casual players, we completely forgot about one huge audience: those who use laptops. The game required the use of both the mouse and keyboard together, and so was basically impossible to play on a laptop. Many comments later suggested we add a toggle auto-fire key, and while we never got to adding this as a fix, I agree that it's a wonderful solution. Laptops were once few and far between, but they're common as dirt these days, and when designing a game for the computer, this must be taken into consideration. It's a mistake I won't make again.
When it comes to arcade-style games, replay value is a must. Each game session is generally very quick, so there's got to be a reason for players to come back.
The biggest feature we added to help keep players coming back was in-game achievements. These achievements ranged from completing basic tasks that you would do regardless of whether the achievement existed or not, to doing some things that you would otherwise probably never do, such as sit in place and kill a certain number of enemies. Rather than simply looking pretty, we also made collecting achievements award the player bonus starting skill points.
It's important to note that players knew they would get something extra for collecting achievements, they simply didn't know what, which really drove the desire to collect them, leading to a massive increase in replay value, and longer play times. Collected data via Playtomic showed that the average play time for users was over 18 minutes - quite impressive for an arcade-style game.
Another neat addition in Pixel Purge was the bestiary. This adds a tiny bit of story to each enemy, and shows you some basic stats on how they perform. To unlock the information, you must defeat a certain number of each enemy; this gives players a small sub-mission while playing, as unlocking this information is fun, and slightly addicting.
While our play times were great, there was definitely more that could be done. At its core, the game was simple, and did get old fast - at least, faster than desired. To really mix things up, multiple playable ships could be introduced, each with its own set of upgrades. Each additional ship would handle entirely differently, greatly increasing what the game had to offer, while not creating too much work on the development end.
Post-Launch Bug Crushing
Every game has bugs; there's just no stopping it. We knew that bugs were going to pop up post-release, but we did our absolute best to prevent as many as we could. We spent hours and hours playing our own game before sending it off to sponsors, to ensure that every bug we were able to find would be eradicated.
I will no longer get a game sponsored without requesting an exclusivity period to fix bugs
Despite our best efforts, a number of bugs popped up once thousands upon thousands of players started going at it on Armor Games. Luckily for us, Armor Games wanted two weeks of exclusivity before we could distribute the game to other Flash portals.
Rather than walk away with the cash already in our hands, we stayed up to date with player feedback and bug reports. We were so quick to fix reported bugs, that there was a small period of time where we were sending Armor multiple updated files a day. As we fixed bugs, we quickly saw our ratings rise back to where they began, rather than continue to drop ever so slightly.
We didn't plan on having that two week exclusivity period, and we were in fact originally annoyed by it, but I will no longer get a game sponsored without requesting an exclusivity period to fix bugs. We learned an important lesson from that experience, and that's that there will always be bugs, and it takes thousands and thousands of play testers to iron them all out.
We knew we wanted to go retro with Pixel Purge, but we also wanted the game to have an updated, modern feel. Andrew came up with an amazing graphic style the combined the best of both worlds. Everything was essentially composed of giant, detailed pixels, making the game look retro, but detailed at the same time. There's a lot of people who are quick to judge an 8-bit game right off, so I think we greatly benefited by having this updated feel, while staying true to the retro roots we desired.
Another strong point of the graphics is in how much detail we went into with the effects and ambiance. Lightning flashes randomly; glowing eyes can be seen in the background; enemies explode into massive pixel particle explosions. All of these effects, combined, create an atmosphere that the player isn't always consciously aware of, but that is always contributing to the feel of the game.
Lastly, we decided to give each enemy three different sizes, which really paid off. First off, large enemies just look great. Second, everybody likes taking down a larger enemy over a small one; killing any enemy is rewarding, but killing something ten times bigger than you is just awesome.
Like the graphics, we knew we wanted a modern feel, despite the game being retro in nature. Luckily for us, I already had a track on my computer that was perfect for the mood we were going for. I acquired a free album from Partners in Rhyme by writing about them in a blog post. The owner was awesome enough to send me a thank you email, and credit me a free album of my choice.
The music I picked out has been complemented on by many players, and I strongly feel it's a perfect fit for the game. It's upbeat, and has an action-themed feel to it, yet it remains mysterious and ambient, which helps fuel the mood alongside the lightening visuals and thunder sound effects. We literally never received a negative review on the audio, and had plenty of positive comments, so I can't imagine us doing any better in this category.
As far as the sounds go, I made most of them myself using SFXR and Audacity. The thunder I picked out was from various royalty free sites, and I made sure to get three different clips to ensure the lightning didn't sound repetitive. I simply added a bit of code to randomize which sound would be played, and I feel it helped keep the effect fresh, as hearing the same sound effect every two to ten seconds would get old quick.
All in all, I think Pixel Purge turned out to be exactly what we wanted it to be. No features were cut, and the game not only met, but exceeded my expectations. We got a decent sponsorship through Armor Games, were the number one game (and submission, including movies) of all time on Newgrounds for a week or so, and we got badges on Kongregate.
It got a good review on Jay is Games, too!
Players have left us glowing reviews over the years, and I often go back and read the latest reviews for a bit of inspiration and motivation. I definitely learned a thing or two about how to present a hardcore concept to a casual audience, and I know for sure that this will benefit me in the future. With the first game being a complete success with our target audience, I can't wait to see what a proper sequel will do when we put what we've learned to use.
Subscribe below and we’ll send you a weekly email summary of all new Game Development tutorials. Never miss out on learning about the next big thing.Update me weekly
Envato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!Translate this post