Presentation on creating an online multiplayer game lobby in Flex & Air

Flash & Flex Friday, September 18th, 2009 @ 15:38 | Follow comments

I came across a really interesting presentation from Scott Delap on InfoQ:

Scott Delap shares his experience creating a lobby interface for an online game using Flex&Air. He details on related technologies used, available tooling and frameworks pros&cons, remoting options, unit, functional and load testing approach used.

To sum it up, it’s a good and elaborate presentation from a Java developer’s perspective, with reflections from a online multiplayer game development project. I enjoyed the full hour of watching it! :)

They’ve dealt with many of the questions we have and their conclusions are very interesting.

Presentation summary

I’ve summarized the most interesting contents of the presentation. They’re actually notes taken during the presentation, so please forgive any poor language or formatting:

  • The Flex Builder WYSIWYG actually works, which isn’t common at all
  • MVC in Flex is pretty much MVc, where the controller and view are sort of bundled together
  • When choosing an MVC framework, Swiz turned out to be most interesting (among likes of Cairngorm, PureMVC etc). Swiz is similar to Spring with auto-wiring. Also supports Dependency Injection, Command Chains, and has MXML support even for non-views (i.e. for wiring the M:s, V:s and C:s).

Their MVC implementation:

  • MXML for the views
  • ActionScript for the controllers
  • Remoting interfaces + specific back-end implementation
  • Swiz wiring it all up
  • They found no real reasons to use a “big MVC framework”, whereas Swiz did the job well enough

Remoting

Looked at several candidates, where WebORB, Hessian, XMPP, GraniteDS, Rest not weren’t considered enough for various reasons. Also evaluated BlazeDS, which doesn’t scale and has no NIO support.
Best candidate: LiveCycleDS - supports NIO, RTMP and lots of connections:

  • Good for remoting Java <> Actionscript and easy to integrate
  • Some Java <> ActionScript translations a bit problematic, i.e. enums and null values
  • Some lack of documentation when it comes to messaging

Unit testing

  • Evaluated ASUnit, FlexUnit, DpUnit/Fluint
  • Chose Fluint, but could just as well have chosen FlexUnit. Unit testing Utilities, Controllers, Remoting Services with Mocks

Functional testing

  • FlexMonkey not working properly with AIR and had a bit of lag
  • Wrote a stripped-down version of Selenium

Load testing
Currently no good way of performing load testing.

  • Hard to simulate 1000:s of users
  • No really good tool for load testing at the moment

Final thoughts on Flex

  • MXML works as advertised
  • Easy to do complex things
http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/

Share article with others:

  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • email
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Technorati
  • Twitter
  • Yahoo! Buzz

One Response to “Presentation on creating an online multiplayer game lobby in Flex & Air”

  1. [...] Presentation on creating an online multiplayer game lobby in Flex & Air » [...]

Leave a Reply