Posted by on Dec 31, 2015 in | Comments

The King is Dead!

Two families fight for the vacant throne!

Influence the people of the realm, from peasant to princess, and convince them that you are their rightful ruler!

Earlier this year I released my 2nd substantial indie game, Power Swipe; almost one year to the day after the first line of code for the game was written! Like most projects, it was intended to be a relatively short development, but quickly grew into something much larger.

The game is available exclusively on the Google Play Store completely free. No ads or in-app purchases. 100% free. I decided to take this approach after spending a good chunk of time implementing IAP in previous projects, only to see very few people actually buying the game. I figure this time around I will add some sort of monetization after the fact, if the game suddenly becomes popular. All signs point to that not happening. 🙂

Power Swipe is a 2-player turn based strategy game inspired by the hits “Threes!” and “2048”. Each player attempts to capture the other player’s game pieces, as they work towards reaching the final tier: The Crown!

Combine 2 princess tiles to win!

Combine 2 princess tiles to win!

Like my previous game, Swipe Tap Smash, Power Swipe was written in C# using the MonoGame SDK. When I wrote Swipe Tap Smash, I separated most of the core functionality into a Engine layer, which gave me a good starting point for this project.

But prior starting development on the full version of Power Swipe, I created a prototype of the game in standard WPF. Doing this allowed me to quickly test out the core concept of the game, and tune mechanics, without worrying about the complexities that would come with the full version of the game.


The original Power Swipe prototype, which at that point was called “Charge!”

One of the great things about this prototype is that a huge chunk of the logic and data structures I wrote for it were easily transferable to the full Monogame version of the project. Since at its core, the game is a simple 4 by 4 grid puzzle, most of the game is directly represented in the WPF version of the game. Once development of the full version started, I simply needed to build the animation, visuals, and online logic on top of it.

And that’s what I spent the better part of a year doing: making the game feel “juicey” and adding in online multiplayer support.

For the online portion of the Power Swipe, I am using Google Play Services. This gave me a lot right of the gate: Google+ profile support, match making, friend invites, and it even has a specific API for turn-based multiplayer games, allowing players to play together without directly connecting peer-to-peer. But even with all of that functionality it was still a ton of work to implement, and handle all the edge cases.

Online multiplayer in action.

Online multiplayer in action.

Since I was using Monogame (and by extension Xamarin.Android), I wasn’t writing the game in JavaScript, so all of the Goggle Play Services samples and helper classes didn’t actually work for my project. Luckily Xamarin has released a C# interface for the Google Play Services API. This makes in possible to development using Google Play Services in Monogame/Xamarin.Android, but I had to spend a lot of time mentally mapping Google API calls and sample code to (the somewhat criptic, and often different) Xamarin.Android Google Play Services Component Plugin. I’ll hopefully find some time soon to release my resulting core online code so other developers can get a jump start on their own projects.

I should also mention that all of the art in the game was done by the extremely talented artist, Vanessa Tam. She original came on to the project to help support a couple other artists who were supposed to do the bulk of the work. Those artists ended up falling through, and Vanessa stepped up and completely knocked it out of the park. Her attention to detail, and art style really took the game to another level.


Evolution of a game tile’s art.

All in all, it was a pretty long year of development for such a simple game, but I also had a kid, bought a house and moved in that same time, so I’m happy it got finished at all to be honest. 😀