def METHOD_NAME(self, agent, world):
    # goal color
    goal_color = [np.zeros(world.dim_color), np.zeros(world.dim_color)]
    if agent.goal_b is not None:
        goal_color[1] = agent.goal_b.color
    # get positions of all entities in this agent's reference frame
    entity_pos = []
    for entity in world.landmarks:
        entity_pos.append(entity.state.p_pos - agent.state.p_pos)
    # entity colors
    entity_color = []
    for entity in world.landmarks:
        entity_color.append(entity.color)
    # communication of all other agents
    comm = []
    for other in world.agents:
        if other is agent:
            continue
        comm.append(other.state.c)
    return np.concatenate([agent.state.p_vel] + entity_pos + [goal_color[1]] + comm)