You would think that converting a current-gen console game engine to a phone would be a daunting task. I’m happy to report that this is not the case! This year’s crop of smartphones with their multiple CPU cores and competent GPUs are definitely up to the task.
When we started developing Riptide GP for Tegra 2, we had certain expectations of the performance we could squeeze out of these devices. The GPU (graphics) more or less met our expectations, so we were able to hit our graphics quality and rendering performance targets by optimizing the fragment shaders and doing more work per vertex. However, we were completely blown away by the CPU (computation). The dual-core ARM Coretex A9 is an amazing piece of silicon. What’s running in Riptide GP is the same underlying water simulation that powered our previous game on the Xbox 360!
Besides our internal tech there are three key components that made Riptide GP possible: The Android NDK, Bullet Physics, and FMOD Sound System. The NDK allows us to write native C++ code which is then optimized for the ARM architecture. Bullet Physics, which we use for collision detection and rigid body simulation, just worked out of the box. FMOD Sound System released an Android version of their SDK just in time, which has been working flawlessly since the first release.