Postmortem: Vector Unit's Riptide GP
September 8, 2011 Page 1 of 4
[What does it take to deliver a console-like experience on Android? Vector Unit moved from XBLA title Hydro Thunder Hurricane to Riptide GP and here shares the ups and downs of creating a high-powered water-based racing game for Google's mobile platform.]
In June of 2010, the team at Vector Unit was feeling cautiously optimistic. We'd just wrapped up development on our first game, Hydro Thunder Hurricane, on time and on budget, and were preparing to launch it in one of XBLA's coveted Summer of Arcade slots. Early reviews were good, and sales projections indicated we'd be in royalties before the end of the year.
We still had a little income coming in via the Tempest Pack DLC for Hurricane; it was enough to keep me and one contract artist busy through the summer. Since it didn't require a lot of engineering work, Ralf Knoesel, my co-founder and our lead programmer, took a contract at EA Visceral Studios to work on Dead Space 2 while we continued to pitch Microsoft and other publishers on new projects.
We had some great new concepts that we thought were sure to get picked up by somebody, given what we thought was a pretty solid freshman effort, but nothing had stuck. For one thing, publishers tended to think of us as a "racing game studio", and with some recent high-profile flops in the racing genre, there wasn't a huge appetite for new racing games.
Hurricane launched in July. Reviews were solid and it was well received by players, but sales -- although good by general XBLA standards -- weren't as off-the-charts as we'd hoped. It soon became clear that self-funding a second title would not be an option, at least not any time soon. In October I wrapped up work on the Tempest Pack, Ralf was still contracting at EA, and we still had no clear second project on the horizon. The question of what to do next began to feel urgent.
Then in early November we got a surprise call... from NVIDIA. The chip maker was moving into the Android phone and tablet markets with its dual-core Tegra 2 processor, and it was looking for games to showcase the new hardware's capabilities. Someone there had played Hurricane, and wanted to know if we could build something similar for them.
The deal wasn't exactly what we'd been looking for, and the challenges sounded formidable. Neither of us had ever worked on a mobile game. We had no idea what the Tegra 2 hardware was really capable of, or if it would even be possible to pull off the kind of water physics and effects we'd developed for Hurricane on the 360. The budget was tight -- we'd have to scrounge up investment for most of the development costs and cover the difference ourselves. And the schedule was aggressive -- first playable by February, finished game by May.
An early shot from Alpha City, right after the MWC demo in March.
On the bright side, we'd planned on porting our engine to Android at some point, and this would be an opportunity to create one of the first games developed specifically for high-end tablets and phones. It would be hard work, but it sounded like fun. And hey -- work is work.
So throughout December we hammered out deal terms, and with NVIDIA's help we managed to cobble together funding (more on this later). Knowing what was coming, we allowed ourselves a little break for the holidays, and at the start of January 2011 we dove headfirst into our studio's second game -- a futuristic jet ski racer called Riptide GP.
What Went Right
1. Standing on the Shoulders of Hurricane
It simply would not have been possible to make Riptide GP in the time we had without Hydro Thunder Hurricane.
Vector Unit owns all the technology we developed for Hurricane, so when we began work on Riptide GP in early January, we were able to hit the ground running with a full-featured, cross-platform engine that allowed me to begin content development on the PC as Ralf worked on porting the low-level stuff over to Android's NDK.
As I began prototyping our first vertical slice, Ralf quickly found that the Tegra 2's CPU was fully up to the task of handling the calc-intensive fluid dynamics simulation he'd used on Hurricane. He was able to port over all of our water, wave, and Bullet physics code as written from the 360 with little or no modification. This isn't to say there weren't challenges on the code side (see "What Went Wrong"). But, generally speaking, the cross-platform groundwork laid on Hurricane paid off, and the port to Android went relatively smoothly.
Major environment components were built and assembled in Maya, and then exported and brought into the Vector Engine game editor. We then add in PFX, animated objects, AI pathing, and water surfaces (click for full size).
We also had the benefit of two years of water-racing design experience, and two years of learning from our mistakes. We knew from the start there were a number of things we could and couldn't do, and a few we wanted to change.
For example, we had never been completely satisfied with the water sim in Hurricane; it was actually too realistic. When you watch high speed offshore racing, the boats don't sink into the water -- at 100mph, the water might as well be asphalt. But in a game, you want that feel of softness.
In Hurricane, we started with a realistic water sim, and sort of backwards-engineered the softness to get the boats to sink more into the water. For Riptide GP, Ralf went into the base simulation and modified the underlying buoyancy and resistance calculations to give the water a much more pleasant, soft feeling, while still maintaining realistic handling characteristics.
With less than five months to make the game, we never would have had the time for this type of discovery and iteration if we had been starting from scratch. We came off Hurricane with a pretty good feel for what worked, and what didn't, in a water-based arcade racer, and were able to apply all of that experience to Riptide GP.
Page 1 of 4