Level InfoGenre: Arcade Shooter
Map Type: 2-D Top Down Engine: Unity 5 Development Time: 150 hours |
Design HighlightsArcade-Inspired Gameplay
Progression Choices Juiced-Up Feedback Multiple Endings |
Downloads
|
Finished game
Works best in Mozilla Firefox or Internet Explorer.
Note: If you are using Google Chrome, a recent update may have disabled your plugins, follow these steps to enable Chrome to run the webplayer:
1. Open a new tab and type this in the address window: chrome://flags/#enable-npapi
2. search for 'NPAPI' and press ENABLE under Enable NPAPI
3. Restart the browser.
The webplayer should now be working, if not try another browser.
Note: If you are using Google Chrome, a recent update may have disabled your plugins, follow these steps to enable Chrome to run the webplayer:
1. Open a new tab and type this in the address window: chrome://flags/#enable-npapi
2. search for 'NPAPI' and press ENABLE under Enable NPAPI
3. Restart the browser.
The webplayer should now be working, if not try another browser.
Game Overview
A lone spaceport is caught in the middle of a deadly asteroid field! Only you can fend off the asteroids while purchasing upgrades to deal with a progressively more deadly barrage. Can you safely escort the spaceport to safety or will you let it explode from the onslaught?
Design Highlights
Arcade-Inspired Gameplay: Emulated the arcade experience with a simple to understand gameplay loop that gets more and more challenging as the game goes on.
Progression Choices: Offered players multiple viable paths to power their spacecraft with six unique upgrades. Additionally the upgrades interact and synergize with each other.
Juiced-Up Feedback: Polished the game to make it as satisfying to play as possible.
Multiple Endings: Included three endings, two based on losing conditions and one off of winning. Also show players a score based on their performance at the end of the game.
Progression Choices: Offered players multiple viable paths to power their spacecraft with six unique upgrades. Additionally the upgrades interact and synergize with each other.
Juiced-Up Feedback: Polished the game to make it as satisfying to play as possible.
Multiple Endings: Included three endings, two based on losing conditions and one off of winning. Also show players a score based on their performance at the end of the game.
Arcade-Inspired Gameplay
The gameplay experience of Spaceport Defense aims to mirror that of classic arcade games. As such, the gameplay is simple, satisfying, but punishing. At its most basic level, players move their ship, aim and shoot at incoming asteroids not dissimilar to the arcade classic, Asteroids. Players earn credits through destroying asteroids and can choose to purchase upgrades. However, if a player dies they lose all their credits and a life. The gameplay loop is short, but quickly increases in challenge and variety as more asteroids emerge, along with new powerups for the player. The escalation continues until a 'boss' asteroid enters the arena as the final challenge. Only a player who has earned enough credits throughout the match and has strategically placed turrets can save the spaceport from the final threat.
Progression Choices
First Attempt
Implementing a fun and rewarding progression system proved to be one of the most challenging aspects of designing Spaceport Defense. Originally, I had only three upgrades: Player Lives, Spaceport Health and Player Damage. The issue with this system was that Player Lives and Spaceport Health delayed failure instead of enabling success. Player Damage was better, but by itself even it created an awkward situation where the player's progress scaled linearly with the asteroids, negating the feeling of any progression at all.
Design Revisions
After scrapping the previous system, I thought about what aspects of progression would best fit the asteroid busting, defense game that I had so far. I settled on some basic principles that guided the upgrade design. First, upgrades should have synergy with each other instead of providing a flat benefit. A quadratic progression curve is simply more fun than a linear one. Second, upgrades should have an immediate effect on the gamestate. It's just no fun to have to fail before an upgrade actually provides value. Third, prevent the player from achieving a failure equilibrium. Arcade games may offer extra lives to players, but they are usually far and few between and act as a stimulus to keep the player going, instead of something to farm and hoard. Players shouldn't feel too comfortable in arcade games. Lastly, design upgrades with multiple effects. It's simply more enjoyable to see various changes per upgrade than just one.
Second Pass
Armed with this new philosophy, I redesigned the upgrades the player could purchase. I designed six upgrades: Speed, Damage, Turret, Explosion, Laser and Shield.
Juiced-Up Feedback
Almost as important as creating great gameplay and having a worthwhile progression system is having everything feel good together. Polishing features and adding little touches can take a game that is technically well designed but not very fun to being a blast to play. Things such as camera shake on asteroid death, laser color change as damage is upgraded and sound pitch scaling with asteroid size all make the game more fun in their own way.
Multiple Endings
Even losing in a game can be satisfying if the outcome of the player's failure is well presented. Spaceport Defense has three endings: one if the player loses all their lives after which the player sees the spaceport destroyed by a massive asteroid, one if the spaceport explodes after which the player ship flies off through an asteroid belt, and one if the player successfully protects the spaceport after which the player ship escorts it out of the area and flies off for a new adventure.
Post-Mortem
What Went Well
Time left for iteration and polish: Because the core gameplay of Spaceport Defense was easy to get a first pass running, I left myself plenty of time to iterate and polish in order to make the game as clean and enjoyable as possible.
Priority List: Throughout the development of Spaceport Defense, I kept a list of major and minor features that I kept working on. Items were added to the lists after playtesting and removed upon completion or a shift in design.
Balancing spreadsheets: I effectively used Excel to organize the statistics of the upgrades, asteroids and more. This made it much easier to balance the player's progression against that of the asteroids.
What Went Wrong
Ineffective debugging: For most of the project, I manually attempted to figure out what was wrong in my game whenever it crashed instead of using Unity's debugging tools.
Odd code relics: Because I started this project by following the Unity tutorials on how to make a space shooter, some of my code was unintuitive to me and caused me problems later on, such as having the velocity of asteroid be negative.
Programming inexperience: This is my first recent project in which I had to code everything from scratch, instead of scripting certain events or features. I made many mistakes in the ways I organized my classes and scripts.
What I Learned
New technology: This was my first project using the Unity engine and C# scripting. I learned a lot about the Unity API, the new GUI system, the Unity Webplayer and the editor while developing Spaceport Defense.
The importance of juice: During most of the early parts of development, Spaceport Defense just didn't really feel fun. It was only until the addition of many small details and polish that the game felt enjoyable to play.
Input design: After going through the entire process of implementing XBOX 360 support in addition to standard PC controls, I learned a lot about how games have to be designed in order to be played on different platforms.