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!


Comments (28)
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.
Posted by: Lawrie at June 22, 2010 10:09 AMAlthough, 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!
URL: http://www.LawrieCape.co.uk
Erm... to state the obvious... wow! The things you guys come up with never cease to amaze me!
Posted by: Philip at June 22, 2010 10:11 AMURL: http://www.milkisevil.com
Really nice work! What kind of multiuser server do you use for this project? SmartFoxServer?
Cheers,
Posted by: Marcus at June 22, 2010 10:29 AMMarcus
URL:
This is brilliant and looks like a lot of fun
Posted by: daniel at June 22, 2010 10:29 AMnice work!
URL:
Looks like Engadget picked up your story, nice.
Posted by: Nathan Youngman at June 22, 2010 12:47 PMhttp://www.engadget.com/2010/06/22/android-asteroids-multiplayer-androideroids-video/
URL: http://nathany.com
Awesome -- I love the Flatland style view on the phone.
Posted by: bigfish at June 22, 2010 01:05 PMURL: http://dafishinsea.com
Hey!
Posted by: Dennis Green-lieber at June 22, 2010 01:41 PMgreat 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?
URL: http://www.cph81.com
I'm covering this for tom's Hardware / Tom's Guide. This is awesome stuff!
Posted by: Kevin Parrish at June 22, 2010 02:07 PMURL: http://www.tomsguide.com
Came across this at Engadget- nice work Grant!
Posted by: Greg Gavutis at June 22, 2010 02:33 PMURL: http://www.thinkspring.net/portfolio/
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!
Posted by: Rich at June 22, 2010 03:31 PMURL: http://xcmeathead.com
good work !
Posted by: Ruhou at June 22, 2010 05:12 PMURL: http://hi.baidu.com/52017
Nice! take that Appholes!
Posted by: albie at June 22, 2010 06:38 PMURL:
Great stuff Grant!
I can see some really great game ideas coming out of the mobile-with-big-screen display combination.
Posted by: Cameron Adams at June 22, 2010 08:30 PMURL: http://www.themaninblue.com/
Waouhh great job !
Posted by: Yann at June 23, 2010 04:28 AMHappy 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 www.flexycore.com and see how we port an android 3D game into the iPhone in 2 days!
Great news for Android developpers ??!!
URL: http://www.flexycore.com
fucking great!
Posted by: nico at June 23, 2010 07:31 AMURL:
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!
Posted by: Kevin J at June 24, 2010 12:06 AMURL:
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.
Posted by: Tom Gooding at June 24, 2010 04:42 AMURL: http://www.quickthinkmedia.co.uk
holy fuck... this is the best thing in the world today!
Posted by: randygland at June 24, 2010 06:00 AMURL: http://www.andy-hayes.com
WANT!!!
Posted by: Chris at June 24, 2010 09:40 AMURL:
here is a flash developer, what apple needs..
Posted by: viaria at June 26, 2010 07:03 AMURL:
Is this available? I would be happy to pay.. put it on the Android Market!
Posted by: Isaac Waller at June 28, 2010 08:02 PMURL: http://www.siriusapplications.com/
Great job! Just posted this on slashdot, let's see if you get /.ed =)
Posted by: sixtus at July 1, 2010 03:19 AMURL: http://sixtuslab.com
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
Posted by: KolNedra at July 5, 2010 07:31 AMURL: http://www.kolnedra.com
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!
Posted by: Graham at July 5, 2010 07:56 AMURL: http://ccgi.codegadget.plus.com/blog/
Seriously, put this on the Android Market or let us download it!
Posted by: Lauren at July 5, 2010 07:11 PMURL:
Awesome work, have you tried running it using Frash on iPad yet?
Posted by: Jinjaninja at July 7, 2010 07:21 AMURL: http://www.thechilligarden.co.uk
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!
Posted by: Kevin J. at July 15, 2010 01:57 PMURL:
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?
Posted by: Aaron Beall at July 26, 2010 04:30 PMURL: http://abeall.com