def setup_mission_spec(self, params): """ Generates and setups the first MissionSpec as generated by :meth:`render_mission_spec`. :param params: Marlo Game Parameters as described in :meth:`default_base_params` :type params: dict """ ############################################################ # Instantiate Mission Spec ############################################################ mission_xml = self.render_mission_spec() self.mission_spec = MalmoPython.MissionSpec(mission_xml, True)
def setupEnv(mission='MarLo-FindTheGoal-v0', videoResolution = [800, 600], port=10000): # Sets up marlo environment client_pool = [('127.0.0.1', port)] # Step sleep at to 0.2 to handle lag between marlo and Malmo join_tokens = marlo.make(mission, params={ "client_pool": client_pool, 'suppress_info': False, 'videoResolution': videoResolution, 'tick_length': 50, 'step_sleep': 0.2}) # As this is a single agent scenario, # there will just be a single token assert len(join_tokens) == 1 join_token = join_tokens[0] env = marlo.init(join_token) # Change the spec of the mission by loading xml from file # This is necessary to use our custom XML files missionXML= loadMissionFile(mission+'.xml') env.mission_spec = MalmoPython.MissionSpec(missionXML, True) return env
Crouch Attack Use Rewards: nil """ def __init__(self, extra_params={}): super(MarloEnvBuilder, self).__init__( templates_folder=os.path.join(Path(__file__).parent, "templates")) self.params = self._default_params() # You can do something with the extra_params if you wish self.params.update(extra_params) print(self.params["maze_height"]) print(extra_params) def _default_params(self): _default_params = super(MarloEnvBuilder, self).default_base_params _default_params.update( dict(tick_length=50, agent_names=["MarLo-agent0"], maze_height=2)) return _default_params if __name__ == "__main__": env_builder = MarloEnvBuilder() print(env_builder.params) print(env_builder.params.experiment_id) mission_xml = env_builder.render_mission_spec() mission_spec = MalmoPython.MissionSpec(mission_xml, True) print(mission_spec.getSummary())