by Samuel Asher Rivello
In my last article, An introduction to developing games on the Adobe Flash Platform, I covered the history of Adobe Flash as a gaming platform. For much of the past decade, games developed with Flash software have gained fame for their myriad casual, single-player, five-minute experiences. However, in recent years ambitious companies have been exploiting the growing power of the Flash Platform and deploying more expansive massively multiplayer online (MMO) video game worlds with hours and hours of playtime. The Flash Platform has become a popular technology to power these large-scale projects.
Recently, I interviewed Gaia Online, the company that created the successful MMO game zOMG, to learn more about the team, the game, and the pros and cons of using the Flash Platform for large-scale gaming. Founded in 2003, Gaia Online is the leading online hangout for teens and young adults. Gaia Online provides a fun, social environment that inspires individuality and creativity. When building zOMG, the company's most ambitious project yet, the development team chose to use the Flash Platform. Was Flash the right platform for them? Is Flash the right platform for your next gaming project?
Gaia Online's game, zOMG (pronounced "zō-em-jē"), is an MMO game (see Figure 1). Users chose the game's title during a naming contest. Gaia Online wanted a unique, one-word title. zOMG is a sarcastic take on the net-speak expression, "OMG" (which stands for "Oh my God"). The game is currently in fully playable open beta, and the team anticipates the full 1.0 release in the next few months.
Figure 1. The world of zOMG.
zOMG takes place on modern-day earth following a cataclysmic event. Scott Kinzie, vice president of creative and user experience for Gaia Online explains, "There was a rupture in the life force of the planet, and things that are normally not alive have come to life." The Animated are previously inanimate objects that have become possessed characters. The player is dropped into this strange world and must learn to defend the things he or she loves. The Animated start out antagonistic. Can they change? You'll have to play the game to find out.
In zOMG, players use the mouse and keyboard to guide their customizable character, exploring countless environments, collecting items, and battling enemies.
By design, the game feels like a typical MMO game, but it is actually quite different. New players find the formula approachable but are happily surprised at the uniqueness of the game. zOMG is heavily social — rewarding crews of collaborating players and rewarding players for just hanging out and chatting.
The target audience of zOMG is 40% male and 60% female and has an age range of 14–24. The game is carefully crafted to appeal to both sexes. For instance, the Gaia Online team sees that females are not necessarily turned off to combat as long as there is substantial context and story to warrant the conflict. zOMG also features several mini games that earn users progress without combat.
The game's retention has been great. Over the past 10 months, the total number of active players has held steady. The team attributes this in part to a grindless experience. While many MMO games require boring repetitive tasks, zOMG does not. It offers a sandbox style of play that rewards innovation and creative thinking. This keeps players progressing on an even curve — thus maintaining interest.
Gaia Online created zOMG to be free to play to attract the largest audience. Optionally, players may choose to trade real-world money for time, shortcutting the process of building their character and progressing through the game. With micro transactions, players can improve their experience dramatically. For example, they can buy power-ups for about one penny per use.
The development environments for video game production vary. Games targeting personal computers are traditionally created using C++ and deployed for desktop development on CD-ROM or DVD-ROM. As Flash Player matured through version 6 (multiplayer socket connections), version 8 (runtime rasterization of graphics), and version 9 (blazing fast ActionScript 3 execution), it became a capable platform for high-quality gaming.
According to David Georgeson, senior producer and creative director for Gaia Online, "The decision to use Flash was easy. We want users in libraries and schools to be able to play. Those machines cannot accept downloads and likely already have Flash Player installed." It seems the penetration of Flash Player was a primary consideration. But what about the capabilities of Flash Player?
Production for zOMG began in 2007, so the game targets Flash Player 9, which was the latest version at that time. Flash Player 9 features everything the team needed for a development environment. Assets were created with Adobe Flash Professional and Adobe Creative Suite software. The development team used Adobe Flex Builder 3 to bring all the assets together, to complete the ActionScript 3 coding, and to add Flex specific UI controls. As I write this article, Flash Player 10 is the latest publicly available version. While Flash Player 10 offers benefits such as 3D effects, hardware acceleration (using the computer's graphics processing unit or GPU), dynamic audio, and faster code execution, the team is happy with Flash Player 9 and does not have immediate plans for a game-wide upgrade.
Flash Player 10.1 is available in public beta on Adobe Labs. Many of its new features focus on mobile delivery, but browser-game developers can look forward to its enhanced RAM and error handling as well. Flash Player 10.1 is slated for a 2010 public release.
The lack of true 3D support in Flash Player can challenge the best development teams. For Gaia Online, the lack of 3D was not an issue because the aesthetic of the brand and the desired game play of zOMG is 2D. During the production process, the team creates some assets (such as the world backgrounds) in 3D and exports them to 2D for integration into the game (see Figure 2).
Figure 2. Background sketch (left) and background final art (right).
During production, the QA team noted that RAM usage from Flash Player is dependent on the browser. For instance, zOMG running within Mozilla Firefox performs garbage collection at around 500 MB RAM. Garbage collection is the way Flash Player optimizes internal RAM and increases game performance. However zOMG running within Microsoft Internet Explorer performs garbage collection at much lower RAM. To target users of both browsers, the team requires extra time to optimize the RAM with each new build of the game.
According to Adobe, several improvements in Flash Player 10 could help boost performance. For starters, Flash Player 10 offers improved garbage collection with the new
unloadAndStop feature, which prepares loaded content for collection and then tells the garbage collector that it should initiate a collection pass.
"Additionally, the enhanced Drawing API in Flash Player 10 would improve 3D and rendering performance of the app, while use of Pixel Bender would allow for custom filters and effects. The Pixel Builder calculation engine could also be used for multi-core data processing to improve performance," says Tom Barclay of the Adobe Flash Player team.
With each new version, Flash Player becomes a faster runtime. Support for ActionScript 3 in Flash Player 9 introduced dramatically increased code execution and graphical rendering. Flash Player 10 increases that power further. Still, compared to alternatives such as C++ environments, the Flash Platform is not yet as fast.
To get around graphical rendering efficiency challenges, the Gaia Online team is implementing optimizations. Many RPG-style games feature a continuous scrolling system. In continuous scrolling, the character explores the game world seamlessly without pauses to load new screens. The scrolling of the background and characters proved too slow with Flash Player.
So the team implemented room-to-room loading, which is much like the scheme in the original "The Legend of Zelda" for Nintendo. Here players must guide the character off the left edge of the game screen before seeing a new screen appear, and the character then appears on the right. Another example is the rasterization of the game's characters and monsters. Rather than drawing low-resolution vector graphics to the screen, which requires heavier computation, the team implemented a system to convert these vector assets to raster assets. Raster assets are larger in file size but are much faster to display onscreen. These types of optimizations helped Gaia Online compensate for shortcomings in Flash Player without compromising the quality of zOMG.
Gaia Online does have a few features on its Flash Player wish list. "Keyboard support in full-screen mode would expand the possibilities for games tremendously. Obviously video hardware support and true iPhone support are wonderful to think about as well. Better profiling tools for memory would be of great assistance, too." The team noted that it is generally very pleased with the Flash Platform and its current capabilities.
Launching a single-player game on the Flash Platform requires uploading the game's ActionScript 3 SWF file to a server and embedding it in an HTML page. The majority of Flash projects work in this manner. Multiplayer games, however, require each game SWF file to intercommunicate, enabling players to see each other on-screen, chat, trade items, and more. These social interactions are the core of games like zOMG, and this intercommunication requires a back-end technology. The Flash Player socket server opens a persistent connection from the client side to the server side. While it is possible to use technologies such as Java to create a custom server side for multiplayer gaming, such a project requires much effort. Third-party server-side products save this effort. For the Gaia Online team, the choice was simple: the team chose the off-the-shelf product SmartFoxServer.
SmartFoxServer is a Java-based socket server back-end product from the company gotoAndPlay. The product comes with the back-end code as well as an ActionScript 3 library to facilitate intercommunication between SWF files. The incredibly impressive MMO game Dofus uses this product and was influential in the Gaia Online team's decision.
Once the client-side and server-side technologies are chosen, high-level choices will define which side the game logic lives on. zOMG is built on a custom client-side architecture. According to Georgeson, "As much as possible, the client is limited to rendering, input, and UI management. At times, it is necessary for the client to mimic limited server logic to give the appearance of smoother movement and responsive animations. The server handles everything beyond user input, display, and UI. This maintains a high level of security and prevents cheating by would-be hackers. Server logic includes all combat, all player interaction such as chat or invites, and all account details like quest progress and inventory."
Separating the game from the server opens up possibilities as well. "Our games have been implemented with back-end access via a RESTful interface that games developed on the Flash Platform can call. The gold and items you earn in a Flash Platform game can be used elsewhere on the site," notes Georgeson.
zOMG currently accepts more than 300,000 unique users per month, and the team thinks SmartFoxServer can easily scale much larger as traffic increases.
The Gaia Online team had years of experience with Flash software before starting zOMG. However, zOMG is the company's most ambitious project to date. How did Gaia Online staff itself for the project, and who is on the team?
According to Kinzie, "zOMG is developed by a group of generalists. The team is probably the smallest MMO team out there. It's made up of about 15 people who wear multiple hats to get the job done." In addition to management, there are four or five artists and two designers on the creative side. The technical department consists of about seven programmers spread between disciplines of ActionScript 3 and MXML on the client side and Java (via the dynamic language Groovy) on the server side.
The company's staffing goals are to keep the organization lean and maintain development in-house. All of its resources are onsite except the sound and music. Contractors handle sound effects, and the highly accomplished Jeremy Soule composes all zOMG's music.
Most of the zOMG staff has been dedicated to the project since it started production in 2007. After 18 months, the open beta was released in 2008. Over the last year, the game has continued to be refined and augmented with new game-play elements. The full release is scheduled for the next few months. (This is a soft date.) Gaia Online is making sure that the product is well optimized to run smoothly and the game world is fully realized to engage incoming users for years to come.
The QA staff has been involved through the entire development arc. The staff offers initial feedback on new features before the product build goes to a handpicked group of beta testers. Once ready, new builds are pushed to the entire open beta community. Because of the constantly evolving nature of MMO products, working closely with the community is important to ensure that game changes are well received.
Georgeson manages the zOMG community. He interacts with users to find what they most want for future features as well as to get feedback on recently launched content. The game's vibrant user forum offers a collective stream of user consciousness about what's working and what's not.
Coordinating the full release of zOMG will include a viral and traditional marketing plan and some innovative ideas around offering users referral bonuses when recommending the game to friends.
Planning for new features and content starts with brainstorming sessions. The sessions are influenced by the wish lists of the community as well as ideas from internal staff. Georgeson guides the group to refine ideas and decides which features get a green light. The implementation depends on the type of feature. Common new content types are additional Flash Platform mini games and more world areas to explore. For these, the design team starts sketching and refining the visual details and UI concerns. The art team presents mock-ups, and the tech team and producers help to iterate until the assets are ready for programming and integration into the game.
With each new version of Flash Player, the Flash Platform continues to empower game production teams. The benefits of Flash technology include great development environments (Flash Professional and Flex Builder software), great asset creation tools (Adobe Creative Suite), and the power and ubiquity of Adobe Flash Player. However, the choice to develop a game with Flash is not without its drawbacks. Teams must carefully weigh the role of 3D in their projects and be diligent and creative with RAM and graphical optimizations to keep games running smoothly. For Gaia Online, using the Flash Platform proved to be a wise decision to shape the fantastic worlds of zOMG. What worlds can you create?
I want to offer thanks to Gaia Online for creating the addicting zOMG MMO game and for its patience and cooperation in the creation of this article. A special thanks goes to Gaia Online's Scott Kinzie and David Georgeson.
Samuel Asher Rivello is the principal of Rivello Multimedia Consulting (RMC). RMC's Flash and Flex services include software architecture, consulting, development, and training. Sam has a decade of experience creating games and applications, and is currently traveling the globe to collaborate with top companies. Follow Sam on Twitter at @srivello.