Why do parent-child collisions fail when the parent is moving over a certain speed

I have a room built of cubes (floor and four walls) and I’m using a character controller for my player. There are no rigid bodies involved. When everything is stationary the player collides nicely with the walls. The room is the parent and its children are the walls, floor and the player (which is also a cube at the moment with the aforementioned character controller).

I make the room move through space using it’s transform, and as the player is a child of the ship it moves through space as well. However, after I make the ship go a certain speed, collisions stop working properly and the player will eventually be able to walk through the front and back walls and/or fall through the floor. This usually happens around 80m/s.

I worked this one out for myself, it was a two part issue.

  1. I had planets, obviously each was a sphere, and I had accidently made the colliders massive, so essentially they triggered collisions with everything all the time.
  2. The Character Controller does not work well with the physics/collision engine under certain conditions. I removed the character controller and started using rigid bodies for certain objects.

Having done this I encountered issues with the rigid bodies being affected by the movement of their parent (they slid backward when the ship moved forward at speed). I overcame this by increasing their drag on the floor.