Q: Can you tell us about the weapons/bonuses that are available in the game?
Skye: Stick Arena features 6 weapons including the Shotgun, Katana, AK-47, Baseball Bat, Glock, and Sledgehammer. We decided against health pickups or other power-ups for gameplay; we feel that the result has been exceptional game balance with rock-paper-scissor style relationships between weapons.
Jordan: Heated debate continues to this day over which weapon provides players the greatest edge against their foes.
Q: What were the main difficulties you had to overcome in developing the game?
Skye: Figuring out how to build it, then building it! Stick Arena was very challenging both to design and to develop.
During the design process, we turned our brains inside out to comprehend how the algorithms for a multiplayer game with almost no server-side logic or state should function; how should we store and verify game state information? How can we deal with lag and movement prediction without limiting the action?
For client-side development, coding and tweaking the prediction algorithm for movement was a learning process, with the solution both an art and science; I’m very satisfied with the results.
Jordan: As our first foray into the world of multiplayer Flash development, we faced more than a few challenges in developing Stick Arena. We approached the idea with a great deal of ambition, and there were a lot of things we hoped to accomplish that had never been done before with Flash.
In addition to designing a lightweight communication protocol to keep bandwidth requirements down, we knew we had to implement a server architecture that would scale to massive proportions while still proving cost-effective enough for us to be able to offer the game to players at no cost. No commercial solution seemed to fit the bill, so we went to work architecting and building the back-end ourselves. Not only did we achieve our initial design goals, but we also now have an extensible and modular server platform on which to build future multiplayer titles.
Q: What are the acceptable lag values to play the game smoothly?
Skye: We’ve limited players to a maximum latency of 275ms on standard servers, with an allowable limit of 800ms on our Compatibility Server (these are round-trip values).
Q: Did you find it limiting to use TCP only and the XMLSocket object?
Skye: The XMLSocket object met our needs; XML allowed us to quickly develop a prototype, and during performance tuning we were able to bypass the XMLSocket’s inefficient XML parsing functions when we switched to compact Data Strings.
TCP bloats packet size but in some ways is simpler to implement due to guaranteed and in-order packet delivery. Although most multiplayer games use UDP (which isn’t available with flash), we found TCP to be adequate for our needs.
Jordan: Sending XML strings proved to be far too large and performance-intensive for a real-time action-based game like Stick Arena. However, we knew when we started that we weren’t bound to using only XML; as soon as we had the client and server communicating properly, we switched over to a proprietary protocol that proved to be much more efficient in terms of both performance on the client and bandwidth utilization. When dealing with as much traffic as we are, every byte helps.
It would be wonderful to be able to handle UDP-based communication from a Flash application simply for the reduced overhead. This would effectively mean that we can spend more CPU cycles and bandwidth improving the experience for the player. Alas, it doesn’t seem meant to be, however we are looking forward to being able to make use of the more efficient binary socket library in Flash 8.5.
Q: How do you deal with the synchronization of slower clients?
Skye: Using a similar approach to the one employed in most first-person shooters, we developed an algorithm which predicts the state of remote players using a number of criteria. This method works well in most scenarios, providing the illusion of instantaneous data transfer even during twitch-input and unpredictable combat scenarios. When a data update arrives, any discrepancy between the predicted and actual state are discreetly corrected.
Q: Was your server specifically designed for the game or did you start from a more generic implementation?
Skye: An exhaustive search of available servers revealed that no existing solution suited our needs. The Stick Arena server was designed from the ground-up to handle the requirements of action-oriented flash games while remaining very lightweight and low-cost.
Jordan: Though as Skye mentioned, the server was specifically designed for the purpose of serving as a back-end for Stick Arena, it has been deliberately built in an extensible and modular fashion. The huge success of Stick Arena indicates to us that the Flash gamer community is craving multiplayer titles in a big way. With the Flash player growing in capability and performance by leaps and bounds, our fans are going to see some pretty amazing things from XGen; much of it will be driven based on the server technology developed for Stick Arena.
Q: We have found the game extremely smooth. Does it use the latest flash player 8 features?
Skye: Because FP 8 penetration was relatively low at the time of release, we targeted FP 7 to ensure we could reach the largest audience. However, we also wanted to take advantage of performance gains of FP 8; Stick Arena automatically detects the installed player version and loads the appropriate version.
Q: Is it possible to add more maps or create custom ones?
Skye: Yes; Maps files are external, so the possibilities are endless. We’ll be releasing additional maps with the expansion and are redesigning our internal map editor for public release. This will allow players to contribute to the community and to take advantage of user-created content; we know there are a ton great ideas out there!
Q: Did you develop special tools for creating maps or debugging?
Skye: We planned initially to use a text editor for map building; our level designers protested and we developed a simple map editor in flash. In retrospect, we were able to achieve greater polish within our levels in a fraction of the time it would have taken us to build them with a text editor.
Although we didn’t build tools for debugging the client, we did find AS 2.0 syntax and variable typing helped to reduce the amount of debugging required.
Jordan: On the server side, we built a number of performance testing tools and load simulators to get an idea of how well the different server design techniques would scale. These tools proved to be invaluable in determining which techniques and technologies we should use to build the most scalable server architecture.
Q: Do you use an external editor for Actionscript? Which one would you recommend?
Skye: Macromedia’s IDE proved adequate for Stick Arena, but we are currently exploring additional options, including open source solutions such as Eclipse, as project complexity continues to grow.
Q: Developing a multiplayer game is quite a long work. What would you suggest to developers willing to create their first mp game?
Skye: Detailed planning, especially on multiplayer aspects. Everything takes longer, so create a design document with a minimal set of gameplay elements and stick to it!
Jordan: Developing a multiplayer title is definitely more difficult than any of the Flash titles we’ve worked on previously; however, there are more and more talented developers entering the Flash scene every day. I think we’ll start to see some really innovative and high-quality multiplayer titles soon after the release of 8.5.
As Skye indicated, one of the best pieces of advice we can provide is to do as much planning and documentation as possible. It may take more time upfront, but make no mistake it will save you time in the long run.
Q: Can you tell us about your future game related projects?
Skye: Without going into detail, we’re working on a number of sequels and innovative new titles in parallel while continuing to improve our technology and expand operations. Look for at least one release this year, in addition to the Stick Arena expansion pack which will be coming out in Q3/Q4. Keep an eye on XGenStudios.com for details!
Q: The Flash player 8.5 and Actionscript 3.0 are currently in beta phase. What do you expect from these new updates? Do you find them interesting for game development?
Jordan: We’ve already started to look at ActionScript 3.0 as part of the Flex Builder 2.0 beta, and are extremely excited about the possibilities. I see it affecting our development process most in promoting easier collaboration between developers on a single code base (source control, compartmentalization), more reusable and modular code, and significantly improved debugging functionality.
Of course, who could forget the greatly improved class libraries (binary sockets!), and huge leap in performance with the new AVM2 Virtual Machine? Exciting times are ahead for Flash developers!