/**
   * Cleans up the keyboard and game state system.
   *
   * @see AbstractGame#cleanup()
   */
  protected void cleanup() {
    logger.info("Cleaning up resources.");

    // Performs cleanup on all loaded game states.
    GameStateManager.getInstance().cleanup();

    KeyInput.destroyIfInitalized();
    MouseInput.destroyIfInitalized();
    JoystickInput.destroyIfInitalized();
  }