Mission Infinity: Endless Space Shooter

How many times can you iterate a concept such as “Space Invaders” that has already been redesigned and rethought a million times? I guess a million +1.

After 2 months of work, a simple game mechanic design that I wanted to try and learn for a while turned out to be an actual playable prototype. I did many iterations with that prototype over time, and it didn’t quite reach where I wanted it to reach. I had a twist though… I wanted to scratch the whole concept of having levels for space shooters, and design a roguelike space shooter. Stay alive as much as possible, until you unlock things that can help you on your next run.

And then, things took off. With Omer Carus and Anil Polatoz joining the project, we took that concept and turned it into a fun result. Something that is not super suitable for the mobile market per say, but something that anyone can engage with and simply experience the nostalgia while fighting against waves of cute little space monsters.

Although a 2D project, the work itself helped us gain an immense amount of experience over only 5 months. Available on the mobile stores, the game received a good amount of positive feedback yet it wasn’t so successful financially. We’ll get to that at the end of the post.

Genre: Retro Space Shooter / Arcade
Engine: Unity
Team Size: 3
Duration: December 2018 – April 2019
Platform: Google Play Store / Apple App Store (Currently only available for Google Play Store)

Promotional video prepared by Martin Gresak

​Roles and responsibilities: ​

Game design:
Overall gameplay design and implementation.

  • Gradually increasing randomized enemies on the screen with different behaviors.
  • Player control and power ups.
  • 2D Sprite animations.
  • Modular boss spawn and fighting systems, such as movement and shooting behavior, self healing, shields, different special attacks and animations.
  • Core gameplay loop: Randomized enemies with increasing numbers on the screen. Once the enemy kill count of a certain type reaches to an x amount, spawning the type specific boss with it’s own unique behavior.
  • Implementation of achievements and player statistics using Unity’s PlayerPrefs.
  • Sound design and music, using royalty free sound and musical assets.
Showcasing the core gameplay
Example of a boss fight

UI design and implementation:
Using Unity’s UI system and Omer Carus’ beautiful pixel art, designing and implementing the game’s menu system;

  • Main menu, settings, credits and achievements screens.
  • Using the information saved in PlayerPrefs, the design of achievements and statistics screen with different animation layers.

The main menu and the credits screen
The achievements screen

The Design Post Mortem

For the longest time, I kept telling myself that one of the reasons we couldn’t engage the players for a longer period of time with Mission Infinity was because “I wasn’t a mobile game player”. I thought since I didn’t play many mobile games, I failed to understand the player. I barely spend any time with hyper-casual games, so I sincerely believed that not having the experience with them blinded me. While not being able to provide a good design part was absolutely true, the reason behind it was different. So with your permission, I’d like to scold myself on the matter.

Now you listen here buddy. A game is a game. The principles of game design do not change based on what your experience with the platform is. In the end, a good game is a good game. Players do not get bored because they didn’t understand your design, it’s because the game failed to provide them the opportunities of having fun.

Okay, that’s off my chest.

Let’s go back to basics with a quote.

A game is an interactive structure of endogenous meaning that requires players to struggle towards a goal.” – Greg Costikyan

So the game has to have a structure (we can interpret this as the rules of the game), it should introduce a struggle or a challenge, and it should define a goal for the players to reach. But what causes the players to lose interest? What makes the game boring after a day, week, or a month of playing it?

Raph Coster says:

Boredom is the opposite of learning. When a game stops teaching us, we feel bored. Boredom is the brain casting about for new information.

We are getting close. To me, this means that once it becomes easy for the players to conquer your challenges or they consume all the achievements, they lose interest. Lacking challenges makes the goals you define for them too easy to reach. It also takes away the natural sense of accomplishment. Nobody likes to think that taking candy from a baby is a challenge. The achievement should match the goal, and the goal should match the challenge. If the player runs out of challenges, there is no more fun. If the player runs out of achievements to reach, the challenges don’t have a meaning anymore.

Keeping in mind that it’s in the nature of every game to be consumed, it’s our jobs as game designers to make the fun lasting. The revenue should match the investment. If you’re spending resources to create a game that should last 10 hours, the players getting bored after the first 30 minutes is failure.

But then, what are the qualities that make a game, and how did they apply to Mission Infinity? I’ll change the order of the list to make things a bit more dramatic.

Taking them from Jesse Schell’s The Art of Game Design:

  • Games are entered willfully. – I don’t think we had any issues with this. We didn’t force anyone to download and play the game except a few close friends. Check.
  • Games have conflict. – The conflict was the space monsters trying to destroy the player ship, and the response was the player fighting back. Check.
  • Games have rules.We introduced controls, boundaries, mechanics that the players couldn’t really bend. The game was relatively bug-free. Check.
  • Games are interactive – Player had the control over the ship, and we were giving feedback to player actions. Check.
  • Games engage players.Although we didn’t build a fully immersive game, we didn’t have any issues initially generating interest. Check.
  • Games have challenge. – The challenge was to stay alive as long as possible. But it wasn’t well designed and connected to the game’s achievement system. First culprit.
  • Games are closed formal systems.We had systems controlling the logic, and these were getting communicated to the player. Axioms to theorems. However this wasn’t done well, so we had many players commenting or messaging us asking questions. We didn’t do a good job explaining these formal systems to the player. Second culprit.
  • Games can be won and lost. I scratched the level system to make the fun long lasting, but I haven’t defined clear conditions for the players. The losing condition was simple, your ship was destroyed. But what about winning? Nobody plays a game to lose it. 3rd culprit.
  • Games can create their own internal value. – Nothing they did inside the game really generated a value for the player. 4th culprit.
  • Games have goals. We haven’t defined a goal for the player. None whatsoever. Without a goal, the players didn’t know where to reach. No online scoreboards to create competitive goals, no marketplace to spend in-game currency anywhere so the goal could be upgrading your ship, and no levels to beat. 5th and the major culprit.

As a designer, it looks like I failed at 5 out of 10 qualities that make a good game. Therefore the result was the players losing interest after a few weeks. We did make the initial release costs back, but looking at the effort we put in it, the game could’ve engaged more players easily. That is, if it didn’t have these major design flaws.

However, I’d like to think that a part of being a game designer is also iterating your approach over the years. Just like you do to your prototypes and games, you fail, you learn, and you repeat. Until you get to a point where good design decisions come as an instinct, and you start generating success.

After all Doctor Kerr L. White said;

“Good judgment comes from experience; and experience comes from bad judgment.”

More Reading