Example #1
0
 def reset(self):
     """Reset environment for a new episode using a given config."""
     self._episode_start = timeit.default_timer()
     self._action_set = football_action_set.get_action_set(self._config)
     self._trace = observation_processor.ObservationProcessor(self._config)
     self._cumulative_reward = 0
     self._step_count = 0
     self._env.reset(self._trace)
     self._env_state = 'game_started'
Example #2
0
 def dump_to_video(self, dump_file):
     dump = self.load_dump(dump_file)
     cfg = config.Config(dump[0]['debug']['config'])
     cfg['dump_full_episodes'] = True
     cfg['write_video'] = True
     cfg['display_game_stats'] = True
     processor = observation_processor.ObservationProcessor(cfg)
     processor.write_dump('episode_done')
     for frame in dump:
         processor.update(frame)
 def dump_to_video(self, dump_file):
     with open(dump_file, 'rb') as f:
         dump = six.moves.cPickle.load(f)
     cfg = config.Config(dump[0]['debug']['config'])
     cfg['dump_full_episodes'] = True
     cfg['write_video'] = True
     cfg['display_game_stats'] = True
     processor = observation_processor.ObservationProcessor(cfg)
     for frame in dump:
         processor.update(frame)
     processor.write_dump('episode_done')
Example #4
0
def main(_):
    cfg = config.Config()
    cfg['dump_full_episodes'] = True
    cfg['write_video'] = True
    cfg['display_game_stats'] = True
    with open(FLAGS.file, 'rb') as f:
        dump = six.moves.cPickle.load(f)
    processor = observation_processor.ObservationProcessor(cfg)
    for frame in dump:
        processor.update(frame)
    processor.write_dump('episode_done')
Example #5
0
 def set_state(self, state):
   assert (self._env.state == GameState.game_running or
           self._env.state == GameState.game_done), (
               'reset() must be called before set_state()')
   res = self._env.set_state(state)
   assert self._retrieve_observation()
   from_picle = six.moves.cPickle.loads(res)
   self._state = from_picle['FootballEnvCore']
   if self._trace is None:
     self._trace = observation_processor.ObservationProcessor(self._config)
   return from_picle
Example #6
0
 def reset(self, inc=1):
     """Reset environment for a new episode using a given config."""
     self._episode_start = timeit.default_timer()
     self._action_set = football_action_set.get_action_set(self._config)
     trace = observation_processor.ObservationProcessor(self._config)
     self._cumulative_reward = 0
     self._step_count = 0
     self._trace = trace
     self._reset(self._env.game_config.render, inc=inc)
     while not self._retrieve_observation():
         self._env.step()
     return True
    def restore_state(self, state):
        assert state.size == self.state_size, (
            f'State size does not match: {state.size} != {self.state_size}')

        # First 3 bytes encodes size of state.
        size_decoded = int.from_bytes(list(state[:3]), byteorder='big')
        raw_state = state[3:(size_decoded + 3)]
        assert (state[(size_decoded + 3):] == 0).all()

        self._env.set_state(bytes(raw_state))

        # Temporary fix for a bug in Football related to restoring state after
        # done. Proper fix is on the way:
        # https://github.com/google-research/football/pull/135
        # pylint: disable=protected-access,import-outside-toplevel,no-name-in-module,import-error
        from gfootball.env import observation_processor
        env = self._env.unwrapped._env
        if env._trace is None:
            env._trace = observation_processor.ObservationProcessor(
                env._config)

        return self._observation