Guns of Icarus Online by Muse Games
Published: April 11. 2013
Muse Games aims high with its ambitious take on multiplayer air combat, Guns of Icarus Online
At its core, Guns of Icarus Online is a multiplayer, airship-versus-airship combat game. Players take to the skies in customizable ships with friends and against other players, and it’s all set in a post-apocalyptic wasteland that’s equal parts steampunk and dieselpunk.
“We’ve always enjoyed hopping on turrets or big guns in FPS or action adventure games, but those moments are usually fleeting,” says Muse Games CEO Howard Tsao. “So the idea that got the project started was to see what it would be like to build an experience around getting on big guns and blowing stuff up.” The original Guns of Icarus had something of a plate-spinning challenge at its core: Players had to divide their time between shooting enemies and running around the ship fixing stuff before it got blasted apart—time management with guns, essentially. Guns of Icarus Online maintains this frantic pace, and adds the element of Shooting Big Turret Guns, along with the extra dimensions of teamwork and strategy to achieve the feeling of fighting alongside a close-knit crew in intense airship battles.
“GOIO is really the first real-time networked multiplayer game we’ve created,” says Tsao. “We had worked on a very limited co-op multiplayer element for the original Guns of Icarus, but it was tiny in scope compared to what we are working on now. We decided to embark on a competitive online game involving massive airship battles with many ships and dozens of players, and we use more weather and explosion effects than a lot of other real-time multiplayer games. All this was, and still is, a monumental challenge for us.”
Where gameplay inspiration came from the turret shooting sequences in various other titles—Medal of Honor: Pacific Assault is cited as one important point of reference, along with mechanics in time-management games such as Diner Dash, Curry House CoCo Ichibanya, and others—the game’s visual identity is the culmination of three distinctive artistic genres: steampunk, post-apocalyptic, and pre/post World War I. “We [also] found visual inspiration in various elements of Team Fortress 2, Final Fantasy, Ratchet and Clank, Steamboy, Otomo Katsuhiro’s “Cannon Fodder”, Jasper Morello, as well as plenty of real-world photo reference from the early 1900s,” says Tsao. While inspired by steampunk, the team also worked hard to incorporate diverse elements from a variety of different cultures, in order to create its own distinctive look and feel.
The team is comprised of eight fulltime employees, along with a handful of contractors and interns that regularly assist. To build the rather ambitious title it had imagined, Muse turned to Unity. “We make a lot of use of editor scripting, both for manipulating game-specific data and for the specifics of our asset pipeline,” says lead developer Alex Jarocha Ernest. For instance, he says, the entire process of configuring guns, levels, and ships in the team’s database is driven by a set of editor scripts, which load the assets as they’re being configured and displays various information such as field of fire on guns, hitbox locations, and so forth as gizmos. “We’ve also used editor scripting, plus Unity’s command-line options, to automate our build process with a continuous integration framework.”
“The surface shader framework has been a huge aid to me, as the guy who maintains our rendering and shader pipeline,” continues Ernest. “We use a customized lighting model (built around using cubemaps for ambient outdoor lighting and atmospheric effects), and very specific combinations of textures and channels to get all the rendering information into as few maps as possible. All told there are 20 or so individual custom shaders being used, but the vast majority of the code is in one place, and reused through a combination of custom lighting functions, includes, and fallbacks.”
Ernest also swears by Unity’s C# scripting environment. “It allows us to share a lot of code between our client and server, is quite robust in functionality (all the core .NET libraries), and is fast enough that when Unity hasn’t done exactly what we want for some purpose, we can quite efficiently and effectively do it ourselves,” he says.
Unity 4 factored heftily in the development of GOIO. “A lot of what drove the upgrade for us was incremental improvements to existing features,” says Ernest. Shuriken, for example, was a little rough out the door, but a lot of the gaps in functionality between it and the old particle system have been filled in Unity 4 (in particular: better scripting control and world particle collisions).” The team was also pleased to see the improvements in font rendering: “Previously, we frequently avoided using dynamic fonts because the OS font-rendering routines used were so inconsistent in their results,” says Ernest. “The new rendering will really help our international players, in particular, as it makes it much easier for us to support their native languages.”
Once Steam opened its Linux store, Linux support also became much more attractive, and Unity helped the team bring their game to the platform. “I’ve been using Linux on and off since I was around 13, so to get back into doing Linux development was actually a fun little challenge,” says lead developer Conrad Kreyling. “I was pleasantly surprised by how much infrastructure had sprung up in my absence! Autoconf and Automake are still the same as ever, and cross-compiling our native plugins for Steam was tough, so I guess some things may never change, but on the Unity end it was: update a couple of build scripts and we were off to the races. Really incredible.”
To achieve its impressive particle effects, the team employed a host of methods. “Most of the explosions, fires, steam jets, and so forth are Shuriken particle systems,” says Ernest. “A few are legacy systems because we had existing code for giving us very detailed control of those. The credit for those is all due to good artists.” The clouds, however, are a completely custom solution. Interestingly, this combines some procedurally-generated meshes (very similar to a particle system but with some extra vertex data) with heavily customized surface shaders, that allow them to receive the same lighting as all other objects in the gameworld.
“Shuriken is an easy to use and highly adjustable particle emitter solution,” says creative director Tim Doolen. “It’s very similar to how 3D packages work, making it easy for artists to pick up without much of a learning curve.” To achieve its effects, the team watched a great deal of real-world reference, and studied how other studios designed their effects. “We broke the process down into the most basic parts and implemented what we saw,” says Doolen. “Being able to use a wide variety of emitter attributes, it was easy to design the look we were going for.”
The Muse team turned to the Unity Asset Store at various points during development. “We originally had an in-house implementation of behavior trees for our AI characters and ship, but midway through development we replaced it with the Behave library to ease maintenance,” says Ernest. “This also let us take advantage of its existing tools to visually configure the AI before updating the server.” All of the game’s networking and server infrastructure is built on top of Photon, and Rainscape was used for part of the game’s weather effects system. In terms of selling’s its own wares, the team is currently in the process of finalizing what it considers to be the most comprehensive encapsulation of the Steam API available in C#. “We include some pretty complex functionality, like P2P networking and voice chat, and encapsulate it in an easy-to-consume API,” says Kreyling. “I’m really happy with what we’ve done here, and I’m excited to get it in the hands of other developers!”
Still, despite its technical advantages, getting the ball rolling with GOIO was no walk in the park. “It was difficult, and a constant uphill battle,” says Tsao. “At the start we were working with an Asian publisher, and the relationship turned out to be toxic and almost ruined the project, and us as a team.” The more the publisher’s bureaucracy got involved, the more the team had to confront creative differences and, ultimately, a dilution of its vision. Payments promised during prototyping were withheld after months of crunching and meeting every milestone to squeeze in features from alpha and beyond. “We ended up wasting a lot of time tied up in the bureaucracy, so after some struggles, we finally had to terminate the relationship. Since then we’ve been going it alone, moving from prototype to alpha, running the beta, and finally launching as a self-published title on Steam. So from tough beginnings, we are proud to have gotten this far!”
Tsao says the team is always improving Guns of Icarus Online and continually rolling out new content. The most recent update, for instance, added four new maps and expanded on the game’s tutorial, and represented the release of the game’s first Linux build. “So far, we’ve had a feature and content update every month since release, and we’re constantly listening to our players’ feedback to hear what they’d like to see in the game and make sure we’re always improving.” In the longer term, the team is continuing work on its next ambitious project, an Adventure mode expansion to the game. “Basically, Adventure adds a persistent world context to the game, with a town-based economy, trade missions, and territorial politics based on six player factions,” says Tsao. “It’s not an MMO, but it does contain some MMO-like elements. Needless to say, we’re really excited about the prospect of expanding the combat core of the game, so that players’ actions will be able to influence a living, breathing world.”
The Wayback Machine
“We started using Unity back at Unity 1.6,” says Muse Games CEO Howard Tsao, who recalls meeting Unity CEO David Helgason at a bar at the first ever Unite event. “Back then, we were working on this other virtual world and web content integration venture, and we found Unity on the Internet. After looking at the different solutions that were available to us, it was pretty clear that Unity was the best fit for us. No other engine or solution gave us the ability to create in 3D and deploy cross-platform at a price we could afford as a small team. With the earlier venture not going anywhere, four of us decided to start making games with Unity, and making games was our true passion. We’ve never used any other engine, and we develop exclusively in Unity.”