Tech Behind Octodad: Dadliest Catch
A common question we get from people when we talk to them about Octodad is, “What tech are you using to make the game?”. Our goal from the start has been to make the game for as many platforms as we can, so we’ve currently chosen an array of technologies that would let us accomplish this. As a reminder, our key platforms we are developing for are Windows/Mac/Linux. However, we’d love to make versions for iOS and Android as well.
To make Octodad, we actually used a combination of different technologies and middleware in order to create the game. With Dadliest Catch, we are using a lot of the same base as we did with the original. We are currently using:
Irrlicht - http://irrlicht.sourceforge.net/
Irrlicht is a C++-based open source rendering engine that makes up the foundation of our game engine for its update and rendering loop. We originally selected it for the first game because it was lightweight and easy for programmers to jump into without requiring a lot of prior experience.
We originally picked PhysX because it supported softbody mesh whereas Havok did not. For Dadliest Catch, we decided not to use softbody anymore because it didn’t look as cool as we thought it would. We stuck with PhysX, though, because we learned a lot how it works and saw that it was supporting all the platforms we had planned to develop for.
FMOD - http://www.fmod.org/
FMOD is a widely used commercial product for game audio, and we selected it because it required to no license fees up front for a non-commercial game and allowed our sound designer to have a lot of control over the audio without needing to be a programmer. And again, it works with tons of different platforms.
In order to facilitate level building with the tech we picked, we really needed to make our own editor. For the first game, we used a closed-source editor built for Irrlicht called irrEdit, yet the way to expand it was very limited. For the second game, we began building our own editor that used C# Winforms and managed C++ to share the game code so that there were no discrepancies between the game and editor.
Why not alternatives?
We originally looked at other alternatives, including using Ogre or Havok, or XNA, and more complete solutions like Unity or UDK. We went with the previous solutions in order to guarantee that we had the control needed in order to make the game we wanted. Since there is a lot of complex interaction with Octodad as a ragdoll character, we didn’t want to risk getting stuck with a problem we could not solve. We also picked technologies so that we could make the game for PC/Mac/Linux and more.