integrated camera and player handling from camera branch