Black Jacket Studios Accelerates onto Steam with Metal Drift
by Deborah M. Fike · 10/22/2009 (2:39 pm) · 19 comments
If you could transport yourself back to Oregon, October 2007, you might have had a chance to play one of the first prototypes of Metal Drift. At that time, I was a "bright-eyed, bushy-tailed" new employee of GarageGames and was fascinated by all games Torque. I mean, here was a piece of software that even I could use to make games with only a light programming background. One of the first games I played was Metal Drift, a multiplayer team-based vehicular sport combat game set in the future. It's kind of like Wipeout meets speedball. You pilot a hovertank that you can configure 56 possible ways with weapons and upgrades that you can unlock over time. The gametype is a sort of mechanized soccer - you need to drive the ball to the other team's goal to win the game.
Things have changed since October 2007. First, I am no longer a Torque n00b. Second, Metal Drift is no longer a demo. In fact, that game is set to launch on Steam today. In celebration of its birth into the world, I interviewed Brian Ramage of Black Jacket Studios to talk about his experience making this memorable game. Enjoy!
What was the inspiration behind Metal Drift?Our main inspiration initially was TRON - we loved the feel of the movie and wanted to create a large abstract environment with tanks sneaking around corridors capturing territory from the other team. As we experimented with the game more, however, we found that making the environments more open and the tanks faster was more fun. So then games such as Wipeout and Cyber Sled became more of the inspiration. I also remembered an old anime short by Yoshiaki Kawajiri from Neo Tokyo that helped inspire an arena look and cockpit feel. Check out this link to see what I mean.
What makes Metal Drift unique?The three main elements - racing, sports, and shooter - come together to really make Metal Drift something different. The handling of the tank and shooting isn't like anything I've ever experienced. On top of that, each weapon and upgrade is very different, so each choice you make is very important as to how you will play. For instance, you can pair the Stealth upgrade with the Shock Cannon to sneak up on the other team and hit them hard from behind at short range. Or you can do the opposite and choose the Sensor Upgrade to see where every player on the map is and pair it with the Temporal Cannon, which can shoot through walls, to hang back and pick people off from a distance. Each configuration allows the player to choose what kind of role and strategy they want to pursue, and there are lots of them!
Another element unique to Metal Drift is the energy management system. You get energy from hitting other tanks with your weapons. You can use that energy to power up your weapons or for a speed boost. This becomes tactically very important to ball runners who use the energy to make a speedy goal and to defenders who use the energy to destroy the ball runners as quickly as possible.
Each configuration of weapons upgrades allows the players to choose what kind of strategies they want to pursue - from stealth to in-your-face confrontations.
What was your development process like?I'm one half of our 2 man team - I did most of the programming, Weston Tracy did most of the artwork. We designed the game together. When working on such a small team, you really have to wear a lot of hats though. I handle bizdev and webdev responsibilities, manage contractors, handle accounting, pay the bills, etc. I should also point out that while we are a 2 man team and we've done 90% of the work on the game, we have worked with many talented contractors, including Liquid Entertainment (concept art and modeling), David Hughes (sound design), Sam Yatchmenoff (pathfinding, AI), Bill Vinton (tech art), Jade Dhabolt (concept art), Dan Reynolds (music), and many others.
The development process has been a long and slow one ;) Weston and I worked on developing a prototype for quite a while on nights and weekends. During this time, we lived nearby, so communication was relatively easy. We got some collaboration from other indies who did a bit of programming work like Florian Ross who was in Germany. Weston got some concept art from friends that he knew at the time. Later, once we moved to Portland, we used a SCRUM process when in development, so we had monthly targets and daily chats on how progress was going. It's a lightweight process and works pretty well for small teams.
For QA, we started a Yahoo! group and let a select group of really dedicated cool people know about it. We tried to put out regular builds every week and had a regular time that people could join together. After the test, we'd huddle and talk about what went right/wrong. During the design process, we'd try and add in new elements just to see how they'd affect the game. This was very successful for culling bad ideas and inspiring new ones.
What development tools did you use to create the game?On the tech side we used Torque Game Engine Advanced, the predecessor to Torque 3D. Torque is a tremendous engine for the price and since Metal Drift is primarily a multiplayer game, it was an easy choice. I also was the lead developer on TGEA for the 5 years that I worked at GarageGames, so I was pretty familiar with the technology already. ;) Even given that, I don't think we could have made Metal Drift with any other engine given our budget.
A couple of things that I added to TGEA early on were a Collada loader for our interiors and a deferred shading system. The Collada loader allowed us to use "poly soup" environments rather than the default BSP style geometry that Torque used at the time. It also allowed us to easily use other tools such as the lightmapping tool gile[s] that we used to light the interiors. Interior geometry (actually all geometry) was created in 3DS MAX. I integrated the OPCODE collision system for collisions with the interiors. The deferred lighting allowed me to have lots of dynamic lights for things such as projectiles without having to cut up the level geometry and re-draw it. It also makes drawing shadows (from the tanks) much easier for the same reason.
For textures, we used Photoshop, and for sound editing we used Sound Forge, pretty standard stuff.
Metal Drift was made mostly by a 2-man team, with contractors filling in the gaps where needed.
Describe your biggest technical hurdles and how you overcame them.The biggest tech hurdles were the Collada loader and the deferred lighting system. They were fairly straightforward to do. There's documentation out there on how to do deferred shading, so I didn't have to do a ton of research. I believe both of these features are now available in Torque 3D.
Other than that, I did some interesting work smoothing out the networking with the tanks. For ControlObjects, Torque will checksum the data sent from writePacketData() on the client and server and then re-send if it doesn't match. Normally this is an efficient way to check and see if the client is a bit out-of-sync with the server. Since we have to send a bunch of physics data over on vehicles, though, little floating point differences can crop up, which causes the checksum to fail even though the vehicle may only be off by a tiny fraction.
The solution was to create a new structure PacketData which contains a position and a single float for rotation along the z axis. Instead of checking the checksum in GameConnection, vehicles check PacketData, which compares the differences between the position and angle and will come back OK if they are just a tiny bit different. It increases the networking bandwidth because it's more data than just a 32bit int checksum, but it also doesn't return false positives, so it's more efficient. The results were fantastic. It went from feeling jittery on a 90-100 ping connection to being silky smooth at 250 ping and beyond!
What was it like publishing Metal Drift on Steam?Hundreds of games have been released on Steam, and they have got a really great battle-hardened, clean API set up for integration into their system. They also have first class support with very knowledgeable staff who answer questions quickly. Most developers doing small single player games report being able to integrate in less than 2 weeks. Since we're multiplayer, it took us longer than that since we had to integrate their server browser API, stats, achievements, etc. It's been a great process and it's pretty sweet seeing our game selling next to AAA titles!
If you had to do it over again, what would you change?I don't think we'd change anything major. It's been such a long process and we tried so many different things out, I think that Metal Drift is about as good as we can get it to be for this type of game. There would certainly be a few things we could do more efficiently now, and we've got a very long list of features that we cut that we'd like to get in. In the end, though, we're satisfied that we made a good game that we are proud of, and we're really enjoying the positive player feedback that we have seen so far.
What's next for Black Jacket?Next up for us is some small games for iPhone using Torque 2D for iPhone and Torque 3D for iPhone. Nothing to show on that front yet, but we've got a lot of ideas and are very much looking forward to some short dev cycles.
Black Jacket has ideas for point releases for Metal Drift, as well as an eye toward developing for the iPhone.
Check out Metal Drift on Steam today and help the team at Black Jacket Studios with their launch party. And thanks, Brian, for taking the time to talk with me about one of the first Torque games I ever demoed!
For more stories like this, check out the Torque Developer Interview series.