code: def init_camera(
        self, feature_dimensions, map_size, camera_width_world_units):
      
      if not map_size or not camera_width_world_units:
        raise ValueError(
            "Either pass the game_info with raw enabled, or map_size and "
            "camera_width_world_units in order to use feature_units or camera"
            "position.")
      map_size = point.Point.build(map_size)
      self._world_to_world_tl = transform.Linear(point.Point(1, -1),
                                                 point.Point(0, map_size.y))
      self._world_tl_to_world_camera_rel = transform.Linear(offset=-map_size / 4)
      world_camera_rel_to_feature_screen = transform.Linear(
          feature_dimensions.screen / camera_width_world_units,
          feature_dimensions.screen / 2)
      self._world_to_feature_screen_px = transform.Chain(
          self._world_to_world_tl,
          self._world_tl_to_world_camera_rel,
          world_camera_rel_to_feature_screen,
          transform.PixelToCoord())
docs: Initialize the camera (especially for feature_units).
  
      This is called in the constructor and may be called repeatedly after
      `Features` is constructed, since it deals with rescaling coordinates and not
      changing environment/action specs.
  
      Args:
        feature_dimensions: See the documentation in `AgentInterfaceFormat`.
        map_size: The size of the map in world units.
        camera_width_world_units: See the documentation in `AgentInterfaceFormat`.
  
      Raises:
        ValueError: If map_size or camera_width_world_units are falsey (which
            should mainly happen if called by the constructor).