update game states with internal state handling