Need to redo this with an improved object manager, to handle all game object types correctly (need to circumvent the current casts to subclasses of VisibleGameObject). Could improve collision and ...