-
Notifications
You must be signed in to change notification settings - Fork 140
Description
Hello,
I'm trying to understand how the view sizes in Overcooked V2 are calculated, and there's something that strikes me out as odd.
This is the shape function from the environment:
def _get_obs_shape(self) -> Tuple[int]:
if self.agent_view_size:
view_size = self.agent_view_size * 2 + 1
view_width = min(self.width, view_size)
view_height = min(self.height, view_size)
It seems to take the smallest between (1) the agent's view size, and (2) the map's total size, and use that as the observation size.
I don't understand why that is? Why would the agent's view size be limited by the size of the layout? If an agent has view size of 2, it should have a view-size of 5. Even in a grid of size 4, there are situations (e.g., the agent being near the edge of the map) where the agent is unable to see the entire map. If the goal here was to take the smallest necessary viewsize, I think it should be min(2 * self.width, view_size) or something like that, but I'm not sure that's the intent here, and in general I think it's risky to overwrite a configured quantity like the agent view size anyway.
Is there any documentation on the design process of the overcooked v2 observations? both in terms of the sizes and the actual contents?