Nostalgia. Nearly ten years ago, I began the long journey down the path to become a game designer. It was around the same time that a little game called WarioWare, Inc. came out. The game introduced a completely new concept of ‘microgames’, which as the name suggests, are like minigames, but much smaller. The idea behind the game was simple. The player would have to complete several microgames back to back, in a randomized order with a limited amount of time and as the player progressed, the microgames would get faster and more difficult.
I remember spending my birthday money on the game and being completely blown away at how much fun it was. However, my early ambitions to break into the game’s industry had shown me an entirely different side of the game. A side that made me appreciate the game’s simple nature yet complex design and inspired me to think about how they pulled it off programmatically. Since then, it has always been a dream of mine to create a game with my own style that builds on the concepts that were introduced by WarioWare way back in 2003.
Six months ago, that dream was realized when I had to come up with an idea for my senior capstone project. It was finally time to flesh out the idea that I’d been brewing in my brain for all those years. I thought hard about the ways I could innovate on the ‘microgame’ genre and in the end I decided to design the game for Android devices because of the advanced hardware features at my disposal.
I put together a project proposal for my professor and the four other members of my group. Shortly after, I was assigned as Project Lead and Verge was given the greenlight.
*Note: The pictures in this post display a large amount of temporary art assets that will be replaced and upgraded in the coming months.*
After the greenlight we had to confront two primary challenges.
First off, we had to follow the Agile Software Development process known as Extreme Programming (XP), which basically meant we had a lot of rules to follow regarding amount of documentation, methods of programming, user stories, etc. Luckily for us, Verge got along well with XP with the exception of the key practice known as iterative design. The main issue with this was the start up time for developing our project’s foundation was so long that it took up more than one cycle and it threw off the initial schedule a bit. However, since the time we spent was on making our framework efficient, it allowed us to catch right back up in the end.
Secondly, because of the nature of the game, we had to figure out a way to have everything synchronized between the microgames, which are being run by a game mode, and the game mode which is being run by the game application itself. In the end, I designed an approach that used multiple interweaving state machines which could tell each part of the program what was going on at any given moment and handle the events as needed.
Now for less technical details and more fun. Allow me to introduce one of our microgames.
The above microgame was designed to allow us to introduce accelerometer functionality and collision detection between game objects. In this microgame, the player has to turn the device like a steering wheel to weave their speeding car through randomly generated traffic. The higher the difficulty level, the more cars for the player to dodge.
This microgame allowed us to add multi-touch support and a simple A.I. pathfinding system into our framework. The objective of the game is to create a connection between the circuits using one finger to specify the start point, and another to specify the end point. The player has to complete the circuit actively so the spark of electricity, which moves along the circuit, makes it to the end. The game is designed to increase the amount of connections which are required as the difficulty level increases.
When we were creating this microgame we were able to improve our touch and drag support and implement a basic physics engine to create a natural feel to the game. Everything from gravity, to bouncing off the backboard is simulated. The goal is just as one would expect, to make baskets. The way to do this is by touching the ball and flicking it in the direction the player would like it to go. As the difficulty rises, the player has to make more baskets.
On top of offering several microgames which allow the player to interact with their device in many different and interesting ways, Verge also offers multiple gameplay modes which allows the player to enjoy the same microgames in new and refreshing situations. For example, in the Survival mode the player is given three lives and an endless set of microgames to clear. As the mode progresses, the difficulty and speed of the microgames will naturally increase until the player loses all of their lives.
There are so many microgames, modes and features in Verge that aren’t displayed here, and even more are on the way. Expect to see it on the Google Play store this Summer.