Androideroids

There’s a lot of buzz around multi-screen experiences lately, where an application or game is available to you on multiple devices (ex. web, PC, mobile, TV, etc). Recently I’ve been fascinated by the idea of using these “multiple screens” together to create a single experience.

The first result was my Nexus One Gas Pedal which I posted last week. Following that, I wanted to do something that was more accessible, and allowed for more players, which led to the concept for Androideroids.

Androideroids is a prototype multiplayer asteroids game in which each player uses an Android phone as their game controller. Player’s can see a top down view of the game on the main screen (which could be a PC, TV, or projected in a public space), and a first person view with their health and score on their phone. The top down view is great for navigating, and first person view comes in handy for aiming during dogfights. Player specific sounds are played on the phone, whereas general sounds are played on the host.

This has lead to the development of what I feel is a strong framework for creating public installations and experiences that will allow smart phone users (on multiple platforms) to connect in an adhoc fashion.

When players launch the generic LANPad application on their phone, it finds and connects to the game host. The host sends the client a “surface” SWF which defines how the game will look and act on the phone.

The surface SWF sends messages to the host indicating UI input, the host interprets these, runs game logic, and sends back a message updating the game state on the phone.

Here’s a rough video on the project:


Androideroids (rough cut) from Grant Skinner on Vimeo.

I posted the video to Vimeo last night so it would encode before I wrote this post, and was thrilled to see that it got picked up by Engadget this morning while I was eating breakfast. Please excuse any typos in the post – it was written in a hurry!

Grant Skinner

The "g" in gskinner. Also the "skinner".

@gskinner

29 Comments

  1. Wow, awesome work Grant. Your framework sounds really interesting, and really useful based on this and the slot cars demo. Can’t wait to see it develop.

    Although, I must admit,at first I completely misread this post as Asterboids – and imagined a classic asteroids style shooter with asteroids and enemies with boid flocking behavior. Hmm, that sounds promising too!

  2. Erm… to state the obvious… wow! The things you guys come up with never cease to amaze me!

  3. Really nice work! What kind of multiuser server do you use for this project? SmartFoxServer?

    Cheers,

    Marcus

  4. This is brilliant and looks like a lot of fun

    nice work!

  5. Awesome — I love the Flatland style view on the phone.

  6. Hey!

    great work..!!!!

    i am working on stuff like that(no a game) – but who do you get access to the screen ? Serversocket?

    and if that is a yes how do you do discovery for the server on the local network?

  7. I’m covering this for tom’s Hardware / Tom’s Guide. This is awesome stuff!

  8. Came across this at Engadget- nice work Grant!

  9. One of the best innovations I’ve seen to date for mobiles, and a really good example of the benefits of a cross platform system like AIR. Please, please, please tell me you’re going to make it availlable! A few of my friends have Android phones, and this would be so much fun!

  10. Nice! take that Appholes!

  11. Great stuff Grant!

    I can see some really great game ideas coming out of the mobile-with-big-screen display combination.

  12. Waouhh great job !

    Happy to see that it always exists some Asteroid fans! In my case we port the Asteroid J2ME game into the iphone – only using Ispectrum which allow you to develop in JAVA 1.5(Equal Android) with Eclipse IDE some native iphone app !!

    Have a look on http://www.flexycore.com and see how we port an android 3D game into the iPhone in 2 days!

    Great news for Android developpers ??!!

  13. fucking great!

  14. Amazing, Grant! Is your LANPad framework using Stratus? How are you achieving communication between the host app and the controller apps? If you aren’t going to be open sourcing it anytime soon, I would love to know how you did it so I could take a stab at building something similar.

    This has kept me from sleeping!

  15. Brilliant! The potential for this is fantastic, here’s hoping you guys get some good commissions for public space projects using this platform – you deserve it.

  16. holy fuck… this is the best thing in the world today!

  17. WANT!!!

  18. here is a flash developer, what apple needs..

  19. Is this available? I would be happy to pay.. put it on the Android Market!

  20. Great job! Just posted this on slashdot, let’s see if you get /.ed =)

  21. Very nice indeed, still to bad iphone / ipad doesn’t support flash.

    I’m also interested in what service you use for communicating between the clients and the ‘lanpad’.

    Like Kevin J asked; is it Stratus? O

  22. Brilliant work, presumably using the AIR 2 ServerSocket class. Flash on Android has got to be the most exciting development in the last 5 years, just need a handset now to get going!

  23. Seriously, put this on the Android Market or let us download it!

  24. Awesome work, have you tried running it using Frash on iPad yet?

  25. I have been building out my own “version” of this using the ServerSocket class, but I just can’t seem to get the same performance from the socket connections that Grant is getting. I can’t tell if it’s dropped packets being resent out of order, lack of FroYo performance on the device (running a Droid Incredible), or most likely if my code isn’t efficient enough. hmmm. Grant, please enlighten us!

  26. I haven’t been able to get this level of network performance either, can you share what sort of service you are using to communicate between the surface and the android clients? Are you actually doing some multiplayer trickery like dead-reckoning or is it really as responsive as it looks like?

    Maybe you’re using p2p UDP somehow? Is it possible to handoff a p2p UDP connection via AIR2 ServerSocket?

  27. Grant, any updates on this? Are you going to release the framework?

Comments are closed.