Saturday, June 22, 2013

Embracing for an overload ... or how to load balance your web server

Almost all mobile games somehow now use a web server. Even if you are using facebook for the social part and friends leaderboards, facebook's leaderboards API is very limiting (at least at the time of writing you cannot have multiple leaderboards for a game for example). So developers tend to roll their own leaderboard system that spams facebook.

But what if your web server used by your game does not hold up the initial rush of users?


Your server gets crushed by the load of users hitting your server. You can set up multiple servers to prepare yourself, but that can be costly especially when you don't know how many users are going to be playing your game.
Ideally you dynamically add/remove web servers depending on the load, so you save costs.

Enter heroku + loader.io + hirefire.io

Heroku is a hosting service that supports multiple server doesn't scale them automatically. Originally it started with ruby on rails but now supports other languages like php (1 server is free, 2 servers is 30$/month, 4 servers is 200$/month, 100 servers around 2000$/month at the time of writing, etc). It uses git underneath, and it makes it really easy to push and release updates. Facebook are also collaborating with heroku for easily creating a web app hooked up with facebook.

Loader.io is for doing stress testing (awesome and free)

Hirefire.io monitors your web app every minute or so, and it auto scales up/down your number of web servers depending on your load. (Will cost you around 10$/month). It's really cool seeing this little app communicating with heroku to scale up/down your servers almost instantly (1min is not a long interval).

They are very easy to set up. I am using them for preparing for the launch of That Monsters Game, which will be available for download July 18th.

Wednesday, June 19, 2013

Always scary to ship

After working all these months on That Monsters Game, it is now time to see what really the public will think of it. I find this always scary and my mind starts asking the usual questions. What if the reviewers will not like the game? What if the marketing doesn't work and no one notices the game in the sea of games that is available on the app store? What if apple rejects the game for some reason? Will people find a lot of bugs? Should I have implemented X? bla bla bla



Perfection does not exist especially in software. There is only one way to find out what will happen next. Just hit submit and then we'll soon know. One thing is for sure. Whatever happens, it doesn't stop here :)

While Apple are reviewing the game, I've got a lot of stuff to do. I've already got a list of future updates to do, but before that I need to finish off the video trailer and other marketing related stuff.

Bring it on!

That Monsters Game will be out on July 18th!

Thursday, May 30, 2013

That Monsters Game reveal layers

I've always been fascinated at how the big guys in the industry design the reveal of gameplay elements to introduce gameplay mechanics as the player is gaining new skills during the game loops.



In my upcoming game That Monsters Game, I made several layers of reveal.

Unlocking Game Modes

There are currently 3 game modes for release:

  • Blitz where you have 1minute extended by reaching the next level. This game mode is what started the development of this game. The other modes where discovered early during development.
  • Challenger - I actually wanted to develop the challenges during Blitz, similar to Jetpack Joyride, but I started feeling it was distracting from the panic of Blitz, and decided to tune that idea into a separate mode - Challenger mode was born where the player is presented with a challenge to complete in a set amount of time. The time is extended on completing a challenge, after which another challenge is presented. This mode gets harder as more challenges are completed.
  • Strategy where a monster can jump at the screen after 5 rounds, unless you trace him in a combo. The player has 3 possible screen hits until it's game over.
I wanted the player to feel the rush when playing the game. And so decided to enable Blitz and leave Challenge and Strategy modes locked, until the player gains some experience. I thus introduced the idea of XP points. These are gained according to the score you get playing the games. This ensured that the player gained some experience before progressing to more challenging modes.

Introducing back story

I wanted the player to start playing the game as soon as possible. Initially I had done an introduction consisting of Professor Marty telling what happened. This was then deleted since it was taking too much time from the first 5min of playtime. Instead I commissioned an artist to make a poster of Professor Marty running out of the lab, with the monsters causing havoc. The intention was that the poster which is used as the first image seen by the player, would give quick glance at what happened - a nutty professor with a weird lab and monsters causing a disaster. A picture is worth a thousand words... or so they say :)

Interactive Tutorial

After the players sees the poster on launching the game, he is immediately thrown in the game. He is greeted by an animated Professor Marty and he gives simple instructions on the core mechanic of the game - tracing 3 or more monsters with the finger on the touch screen of the device. The player needs to complete simple tasks, only a couple, before he can start practicing the core mechanic. After completing the simple tasks, the professor leaves him play around and learning that he can go faster and faster. 

I've seen a lot of testers which initially were very cautious on how they are tracing. Then all of a sudden they start getting really fast at recognizing the patterns. Sweeeet!

Letting the player experiment

There are some tricks in That Monsters Game that he will most probably find by experimentation, such as
  • the horizontal zap which deletes 3 horizontal lines of monsters, 
  • circling a monster to make him an explosive one 
  • the blast mode where the player if he is tracing fast enough, can blast off surrounding monsters when tracing, etc
Once he finds them the Professor will highlight what he has done and also shows exactly how to reproduce it. I think players love to find "secrets" and discover new skills.

What if they don't discover the skills?

In the Challenger mode, the skills they should have discovered while playing Blitz, are also explained. This is for those players that just in case never created a horizontal zap or an explosive monster or never reached blast mode, etc. So besides having added a new game mode, it also serves to learn the skills required to enjoy more the game.

The ideas above combined together should hopefully help most of the players to discover and enjoy what can be done during That Monsters Game.

Monday, May 27, 2013

Iterations - you don't stop

If you are going to develop a game, just be prepared for iterating, i.e. you do something, check if it works, and improve on it. Sometimes that also means scrap it and start from scratch.

The HUD (Heads up display) has been re-designed several times (lost count but it's more than 5 times for sure). Even just thinking on how to represent blast mode, which is the mode where you get to it if you trace fast enough, and then any trace will blast off the neighboring monsters. For blast mode, initially I had thought having a fan spinning faster as you are tracing. The dust particles from the explosion would be sucked by the fan. And the faster you go, it would explode some particle system every so often changing in color intensity to give some kind of clue. Well, the players were not getting it. So I had to rethink that part. I removed the fan and settled for a kind of speedometer. I thought people can associate a gauge with how much fast you are going... especially seeing it going up when you trace, and then goes back down if you don't trace. I also kept in mind that the players will not even read the HUD in the first couple of plays. At least that is what I do when I play games - I just focus on the game, and then later I start discovering the HUD and what it's trying to tell me.

Also for those players who don't discover the power ups such as blast mode, horizontal zaps, and explosive monsters, I have tried to reveal them to the player as he is playing. But I'll talk about reveal in a separate post :)

Here are some of the mockups I had done during the development of That Monsters Game:

So initially they were eggs and you had to fill the tray at the bottom. 
For this prototype we found the first set of graphics on the web.

Started experimenting with own monster design. 
Experimented with foreground and different colors.
The HUD was industrial at this stage.

Started experimenting with shapes, but the 
different colored eyes looked awkward

Eyes are same color to the body... looks a bit better

Tweaked a bit the hues

Retro back-to-the-future kinda style

Wood HUD... naaah

Was communicating with an artist to do the monsters, 
but they were too noisy to the eye

Reverted back and done another pass on my original monsters, 
but took the shoes from the artist's pass :)

HUD at the top, and used the fan a metaphor of speed
Didn't cut it.

Hey! HUD at the bottom again!
Experimented with gauges but now there's too much gauges.
Also the Need-for-speed theme didn't cut it :)

Subtle background and UI changes

Experimenting with light backgrounds

Final layout...phew

Sunday, May 26, 2013

Polishing is the next 99%


I once heard that polishing was the next 90% and I used to say that quite often. But I've now revised it to 99%. With the increased level of polish expected by even the casual players on iOS, you just have to up your level of polish. This includes (in no particular order)

  • graphics
  • gameplay
  • reveal
  • animating everything (and I mean EVERYTHING, including all game elements, menus, dialogs, buttons, etc)
  • social network integration (and that basically means facebook)
  • achievements
  • challenges
  • tutorials (guided and static)
  • leaderboards
  • tournaments
  • special effects
  • flow (including the first 5min of gameplay)
  • sound effects & music
  • supporting multiple aspect ratios
  • supporting multiple resolutions (SD(pre-iPhone4), HD(post-iPhone4/pre-iPad3), SHD(iPad3+))
  • push notifications
  • load balancing your servers hosting leaderboards
  • icons
  • other stuff which are essential for marketing, including:
    • making web site for your game
    • making a facebook page for your game
    • game promo trailer
    • ad banners
Did I miss something?

Saturday, May 25, 2013

I'm still alive

It's been a long while since my last post... too long. I'm still lovin' Macs and I'm still developing casual games for iOS. I had been prototyping several ideas in Unity. And finally I found a puzzle game that stuck which I will be releasing in a month or so. My next game was inspired from Dungeon Raid and Bejeweled Blitz. But I didn't like the RPG elements of Dungeon Raid and its slow feel. I wanted to make my game feel fast like in Bejeweled Blitz, but I didn't like how Bejeweled lets the player wait for explosions to finish. It just blocks the player to wait and that's frustrating. Also I don't like the blatant element of luck in Bejeweled.

After a weekend prototype (a couple of years ago), I gave the prototype to my wife and friends and they got really addicted to it. So I decided that I should really polish it up. Fast-forward a couple of years (where I switched jobs from lecturing to a game development job, plus being a father of gorgeous twins (girls)), I'm now back on polishing the game up and preparing the game for release.

Can't wait to release it to the public...

Sunday, October 24, 2010

Too Busy

I've been too busy with my full time job (lecturing at St.Martin's Institute of I.T.) that I didn't progress anywhere with the balancing of the weapons.

I will probably rescale down the project into just a shooter without any storyline for the time being. Then we see how it will be received by the public and guide the project accordingly.

The major problem I'm seeing is that I had envisioned the big screen of the ipad to be a big plus when navigating and directing the shit with the accelerometer, however people get their forearms tired quite quickly. I had introduced the touch-joystick as well, but it's not the same feeling.