Bringing Octodad: Dadliest Catch to SHIELD
Octodad: Dadliest Catch is a physics-based comedy adventure game created by Chicago indie studio Young Horses. It is the commercial successor to the student game “Octodad”, one of the Student Showcase winners of the 2011 Independent Games Festival.
The player controls Octodad, a dapper octopus masquerading as a human, as he goes about his life. Octodad’s existence is a constant struggle, as he must master mundane tasks with
his unwieldy boneless tentacles while simultaneously keeping his cephalopodan nature a secret from his human family.
What Went Right?
Both the Tegra K1 and the Tegra X1 allowed us to bring versions of Octodad to Android without compromise, even beating out performance in some of our other current gen console versions. Being able to specifically identify SHIELD devices allowed us to keep the higher quality levels that we used on PC and console.
At first, trying to port the game to Android was confusing. We had trouble getting Eclipse and the development environment setup with our native C++ codebase, causing us to eventually give up on it for a short while. Searching around to see if it were possible to instead use Visual Studio led us to find NVIDIA’s AndroidWorks. With it, debugging and writing native code is just as easy as it is for Windows applications.
Uploading the APK to Google Play and distributing a beta among friends and our own devices made testing and sharing a breeze. It is possibly the easiest submission process we have used for a distribution platform. Additionally, integrating Google Play services made it easy to add and manage achievements and cloud save support.
Open Source Software & Middleware
Our game is primarily built with Irrlicht (an open source rendering engine), PhysX, and FMOD. A working branch for Irrlicht using OpenGL ES allowed us to quickly port the game, while freedom to select which versions of PhysX and FMOD to use allowed us to avoid dealing with issues that might have come from updating to newer versions.
Touch-Friendly UI Changes
Our menus and controls were originally designed with PC and console in mind. While translating our controls to touch was fairly straightforward, user interface changes were a bit more involved. We already had support for arbitrary resolutions and aspect ratios, but we had to add support for scaling based on pixel density. Additionally, we sized up the different UI elements in order to be more touch friendly, which also necessitated a complete redesign for the level select menu.
Reading FMOD files from Archive
For the longest time, there existed a bug where the game would occasionally crash when loading. Eventually, by a long process of elimination, it was determined that our method of FMOD reading audio files in a compressed archive through Irrlicht was the issue. To avoid this crash, we simply extract the audio files before accessing them.