Sunday, January 16, 2011

Replica Island Updated

Yesterday I uploaded the first update to Replica Island is something like six months.  This update corrects some bugs (most importantly, a crash that could occur in some situations related to a divide-by-zero case in the collision system), adds some features (apps to sd support, on-screen control pad, linear story mode, level select mode, game-over statistics), and a bunch of minor edits and clean-up (I added, for example, the name of the current level when the game is paused).

I worked on this update off and on for the last six months.  It originally was designed with other goals in mind; I had planned to add an achievement system, along with a couple of other superfluous modes.  In the end I cut it back to the key requests from users: a way to select levels after beating the game, more statistical information, and on-screen controls for multitouch capable touch screens).  The achievement system sounded good on paper but ended up being useless, which is why I cut it: the game has been on Market nowadays that just playing it normally for achievements isn't exciting enough, and I don't have time to properly back achievement challenges up with new content or modes.  So I dropped that part and shipped the damn thing, finally.

I made a couple of changes to the game design which I thought were interesting.

First, I changed the robot spawners so that they can no longer be possessed by the possession orb.  This was a difficult change for me to make, because I really liked having that easter egg in there, but it was the right move: the number of users who complained about the frustration of accidentally possessing the spawner instead of the robot would astound you (and then there are the folks who thought it was a bug).  Once I changed it, the advantage to game play was clear.  I should have come up with a harder-to-find easter egg.

Second, I modified the Shadow Slime character.  This is a black puddle of goo that rises up into an energy-ball-spitting monster when the player gets close.  The problem with this guy is that if you are moving really fast, you don't have any time to maneuver out of the way before the Shadow Slime pops up and kills you.  Half the time you can't even see the guy.  Also, because the Slime was coded to pop up and then drop back down based on distance, it doesn't often get a chance to shoot its energy bolt out.  Changing the Slime to never hide improved this enemy a lot: he's more visible, less of a cheap surprise hit, and he actually gets to fire.  On later levels, this guy can be pretty rough to deal with, which is exactly how he should be.

Speaking of difficulty, I also added three difficulty modes: Baby, Kids, and Adults.  "Regular" Replica Island game play up until now is the "Kids" level.  "Adults" is harder than usual and "Baby" is (much) easier than usual.  Playing the game on Adults is really fun, even for me (and generally speaking, I have trouble enjoying games I've worked on for a long time).  With the level of challenge increased, careful movement and precision attacks are required, which adds a lot to the experience.  It was also a great way to test the new on-screen control pad I added; beating the game with those controls on Adults mode required a lot of tuning.

I spent a lot of time thinking about how to name the difficulty modes.  My goal is to accurately represent the level of difficulty of the game, but also to challenge certain types of players into selecting a mode that will provide an accurate level of challenge.  Some players are extremely casual; they want to see the content and read the story but are not interested in precision game play.  Other players are hardcore, and like being hardcore; besting difficult gameplay is a point of pride for them. The difficult users are the semi-casual users; these are players who might not be that interested in the game yet, but once they get into it are likely to play through to the end, even if it's a little hard.  The semi-casual user will quit, however, if the game gets hard or frustrating early on; unlike the hardcore player, completing a challenge isn't a point of pride for these players.

To make this game as accessible as possible, I need difficulty levels that speak to each of these types of players.  "Baby" is a good name for the very easy mode because it's something that a player who prides himself in a challenge will avoid.  It also communicates that the player need not be intimidated by the game mechanics, which should help those who just want to see the content.  "Kids" is also a good middle ground; for players who don't care too much about accomplishment, but are still interested in a bit of challenge, this describes that level in a non-condescending way.  "Adults" suggests that only real gamers apply, which is the message you want to give to a hardcore user.

To back these difficulty level names up, I added short descriptions to each.  You can see what they look like in this screenshot.  Again, the goal was to separate players who want a little challenge along with their game and players who'd prefer to have a little game along with their challenge.  I'm pretty happy with the wording.

But the biggest change I made with this update was the addition of on-screen controls.  I'll write about the design of that system when I get the chance.