Upcoming Events
Southwest Gaming Expo
11/20 - 11/22 @ Dallas, TX

Workshop on Network and Systems Support for Games (NetGames 2009)
11/23 - 11/25 @ Paris, France

ICIDS 2009 Interactive Storytelling
12/9 - 12/11 @ Guimarăes, Portugal

Global Game Jam
1/29 - 1/31  

More events...


Quick Stats
6198 people currently visiting GDNet.
2341 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!



Link to us

Link to us

  Intel sponsors gamedev.net search:   

2008 Austin GDC Coverage Part 1


Unlocking Flash to Build the Next Great MMO

Rafhael Cedano (Multiverse), Ben Garney (Pushbutton Labs)

Habbo Hotel, Webkinz, and Club Penguin are excellent proofs of concept.

Benefits of Flash – 98% penetration. Everyone has it, and they keep it up to date. ActionScript 3 is awesome. It has first-class XML support. Java-esque classes and interfaces. The runtime is very good. It has a JIT on x86 and PPC, and the garbage collector is very good. FlexBuilder is a good Eclipse-based IDE with debugger, profiler, intellisense, and wizards.

The Sprite-based object model for Flash was cleaned up for Flash 9, and it makes a lot more sense than it used to. It also has a good rasterizer. It even supports 3D as a software rasterized (not hardware accelerated) system.

The Flex UI is functional and looks good. It's skinnable via CSS, so it's easy to split up between designers and programmers.

Networking. Flash 9 supports limited TCP (security restrictions). Flash 10 has some UDP protocols. Protocols include raw TCP, XMLSocket, and AMF.

Middleware – ElectroTank, BlazeDS, and Multiverse all support Flash.

Security. Flash isn't super hardened. All normal client-side security concerns apply. There will be theft, and there's not much you can do about it technically.

Flash has good support for streaming. Just about everything can be streamed. Graphics/animation/movies/audio/UI/code.

You'll need a consistent APU and a caching system to make things efficient. Game objects also need to be able to deal with absent content.

Large worlds in MMO's are difficult. Room-based worlds are simple. Large worlds require stronger object state management. Objects, not just avatars, can appear at any time. Most worlds deal with a perception-radius system, so your client encounters things as they get near him.

Coordinate spaces between points. Large worlds may need coordinate localization to deal with loss of precision when converting from from server-based coordinates to screen-based coordinates on the client.

Content creation – be flexible. You can write loaders for a variety of formats. It's easy to create content in Flash 9, package the content into a SWF and then stream into a game.

How do you handle animations on the Flash side? Last frame actions – repeats, jump to frame, and notify Flash client code. You need to be able to handle this and be able to override Flash's default frame behavior.

Complex Avatars – in 3D, you can share animations but vary geometry. With Swift3D, you can combine sprites.

Gameplay logic – MMO's don't require much logic on the client side. Predict a few generic things, like movement or cooldowns. You don't need to do heavy-duty prediction like an FPS.

Flash is a solid, proven platform for building MMO's, so go out and make some!

Slides are available at http://coderhump.com/austingdc08

Coverage by John Hattan



Contents
  Table of Contents
  Page 1
  Page 2
  Page 3
  Page 4
  Page 5
  Page 6
  Page 7

  Printable version
  Discuss this article

The Series
  Part One
  Part Two