Friday, September 17, 2010

Long Time, No See

I haven't written anything here lately because, well, I've been swamped, and I mean like seriously submerged in the murky depths of work, travel, and more work.  We're talking Creature from the Black Lagoon levels of swamped here.  I'm probably growing gills.  That would actually be pretty cool.

Apparently I need to, at the very least, log in to the blog a little more often because I was pretty surprised to find 45 comments awaiting moderation today.  Sorry about that.  I turned off moderation for now, and unless the spammers ruin it, we can leave it off.

That said, let's lay down some ground rules.

1) If you're stuck, or have a question about a particular level, posting a comment here is probably not the fastest route to an answer.  I don't have time to answer (I'm swamped, remember?), so another forum someplace might be a better bet.

2) I love bug reports.  I especially love bug reports that are entered into bug reporting systems.  If you'd like to report a bug (or, as the case seems to be most commonly, a feature request), there's a whole official-looking system all set up for you already.

3) There's some pretty interesting code discussion going on at the forum setup for that purpose.  If you want to talk code, that's the right spot.

So, being swamped, I don't have a whole lot of new information to report, so I'll leave you with two cool things.

First: there are at least five games on the Market that were built with Replica Island code: Android Jump (Papijump clone), Prototype (an Arkanoid game with some interesting twists), Greedy Pirates (a Nanaca Crash sort of game with cannon balls instead of safe-for-workified girls), Super Treasure Rocket (a platformer), and Project G.E.R.T. (I'm not sure what to call this one).  Though not yet on the Market, there's also a pretty neat Fruit Ninja clone, complete with 3D fruit to slice, that was built on the RI code.  I think that's pretty freaking awesome. Update: We can add Ski Classic and Auto Traffic to the list, as well as Pocket Racing to list!  These games were built with SpriteMethodTest source, which is basically the primordial version of the renderer in Replica Island.

Second: Here's a picture of the Replica Island booth (part of a larger Android booth) at Tokyo Game Show this week.  This was all put together by a third-party event organizer, and while I gave them permission to show the game, I had no idea it'd be so, I dunno, official looking.  Cool!


  1. Fun fact: the title of the game is shown as "Wanda's Replica Island".

  2. This comment has been removed by the author.

  3. Add Pocket Racing to that list too, well, built based on SpriteMethodTest anyway - plus your blog post Rendering With Two Threads.

  4. That's amusing, Neil. Two of the games I programmed, Ski Classic and Auto Traffic for Android, used SpriteMethodTest and that blog post extensively as well. Those resources were really helpful. Thanks Chris!

    That said, SpriteMethodTest actually turned out to be rather misleading. The draw texture extension is actually the slowest OpenGL way to draw 2D sprites in a full game. The other OpenGL methods allow you to batch drawing multiple sprites into fewer draw calls, provided you use techniques like atlas textures as well. The draw texture extension can't do that. You're stuck at one draw call per sprite, which is just too slow once you get hundreds of sprites.

  5. @Majutsukai - Yeah, that's the name of the game in Japanese.

    @Neil - Awesome!

    @Lance - Great to hear about your games too. Agreed about SpriteMethodTest (although I can get several hundred sprites on the screen, even on the G1, using the single-texture method). I did it that way because it was simple (same assets for each test), and because the results were sufficient. I also noted in the readme that there are a lot of other methods--using a single atlas texture with VBOs is a good start, and I'd be interested to see how point sprites perform. If you feel like making a code contribution to the SpriteMethodTest source, I'd happily accept it!

  6. Thx for info. This is one of the best references I've found. I started out not knowing anything but know I feel like I've come far.

  7. Just being curious, does replica island utilize a game engine? Are there any benefits to using one and if you can, without an engine? thx

  8. @Chris - Here's a quick hack of my batching method into SpriteMethodTest:

    It probably won't make a good contribution candidate, because I didn't avoid unrelated changes.

    Embarrassingly, it is only 5 FPS faster than draw texture extension on my Nexus One at 250 sprites. I'm not sure why I saw a bigger difference in the games I did the programming for when I first switched them over to batching. My current theory is that it is due to the number of textures. Auto Traffic Full Edition has 500 images it can draw from 8 different atlas textures.

    I think textured point sprites are incompatible with atlas textures due to requiring you to use the entire bound texture. So I don't think I could make this batching technique work with them either. It might be worth binding a non-atlas texture each and using a separate draw each for doing my rain sprites, spurting oil, and fountain water via point sprites, though, if point sprites were much faster.

  9. Really enjoyed the game. Beat it today. However, I wish you didn't have to completely replay the game to try to get a different end result in the last level...

  10. Please post the detail about how you used the web server and connect the device.
    I did not quite understand what was the purpose of doing that.
    how were you able to change the rendering?
    Were you changing code through the web server inside the device?
    I am not sure how i should place this question cuz i am very confused.

  11. merhaba arkadaşlar işte burada en kaliteli replika telefonlar bulabilirsiniz