My problem has to do with how the animations of parented objects are displayed in the BGE. When the animation is played in the view port (via the timeline) it plays exactly as expected. All children deform along the same axis as the parent object.
In the game engine, when my parent object (the submarine body) turns, all children continue to deform along the global axis instead of the submarine body’s local axis. This causes some crazy deformations and generally looks awful.
I have the file attached, as well as a video that demonstrates what I mean.
Submarine.blend (1.27 MB)