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.


  1. Hello. I have a Question: Why is there no Replica Island available for installation on an HTC Wildfire android that uses the German "Tschibo" network (part of O2)? :(

  2. Great that you also think about us "hardcore" players! Too many games are just too simple nowadays, even on "hard".

  3. > qubodup

    It should show up for every device. There's nothing special about it that would cause Market to filter from that device, unless the device itself is buggy (for example, if it reports that it does not have a touch screen, that would do it).

  4. I believe Replica Island does not support 'small screens' because of the lack of graphics acceleration. hence not showing up for HTC Wildfire.

  5. Thanks for the hint, Tim.

    This totally sucks. :|

    (Althought I might be thinking the same thing when playing RI on a small screen :) )

  6. Yeah, I have a Wildfire and downloaded the source code to see how it would run. Unfortunately the lack of graphics acceleration makes the game chug along at an unplayable frame-rate. Fortunately my wife has a Desire so I played it on that instead. Twice. I'm looking forward to what Chris comes up with next ;)

  7. This comment has been removed by the author.

  8. hi chris. My name is Denise. I am currently studying right now. I realized I may have taken the wrong program. I realized how fun game development is. Unfortunately I cannot go back to school as of right now because I need to earn. I seriously want to make an RPG game for android(side line project). Unfortunately my only asset to making games is ... programming. (In java and C! no C++ experience but currently learning on my own). Can I ask u what books to read and what to know bout making an RPG game specifically in Android? please. btw, i found ur video at youtube very informative.

  9. Denise: There's this helpful gal who made youtube game dev tutorials and she recently started development on android, perhaps contacting or following her might be of help to you:

    also if you would like to start simple, perhaps this project might interest you, which I recently found as I'm a moderator at opengameart:

    What helpful youtube video by chris are you talking about? I must have missed it :)

  10. Chris, a quick question for you, if you would be so kind.

    I'm trying to find an elegant way of capturing game play video from an Android phone but the best I've come up with so far is to literally video me playing it with a camera pointing at the screen. However, because my game involves touching the screen a lot I don't want to get my grubby fingers all over the video.

    I notice that your video for Replica Island doesn't have these issues so was wondering how you'd achieved it.

    Any pointers would be gratefully received.


  11. Ah, I just found an old post about you using the HDMI output from an ODROID. That was going to be my next attempt but unfortuanetly I don't have a device with HDMI output at present.

    A good excuse to buy a new toy ;)

  12. Just downloaded this for my Viewsonic gTablet and can't figure the controls. There's a big circle that makes the android jump, and a smaller one that makes him glow, but nothing to make him go left or right. Tilting the tablet doesn't do anything. Any suggestions?

  13. Try configuring the settings to use the tilt controls. I think the default is to use a trackpad, or equivalent, which seem to be becoming rare nowadays.

  14. Nope, doesn't work at all. Tried all sorts of combinations of settings without success.

  15. This is one of the best website I have seen in a long time thankyou so much, thankyou for let me share this website to all my friends 경마

  16. Hiya! I simply want to give a huge thumbs up for the great info you’ve here on this post. I will probably be coming again to your weblog for more soon. totopickpro

  17. Really Great article I will share it with my firends, CNC Machining Service.