NeuralMMO / environment

Neural MMO - A Massively Multiagent Environment for Artificial Intelligence Research
https://neuralmmo.github.io
MIT License
508 stars 67 forks source link

[Bug Report] Rollout.run() doesn't work with render=True #64

Open KarolisRam opened 2 years ago

KarolisRam commented 2 years ago

I can run the minimal example with render=True just fine, but doing the same using RollOut.run() gives the following error:

  File "/home/karolis/k/neuralMMO/nmmo-neurips-2022-submission/neurips2022-nmmo-starter-kit-test/tmp.py", line 18, in <module>
    ro.run(n_episode=1, render=True)
  File "/home/karolis/k/neuralMMO/nmmo-neurips-2022-submission/neurips2022-nmmo-starter-kit-test/venv/lib/python3.9/site-packages/neurips2022nmmo/evaluation/rollout.py", line 90, in run
    self.env.render()
  File "/home/karolis/k/neuralMMO/nmmo-neurips-2022-submission/neurips2022-nmmo-starter-kit-test/venv/lib/python3.9/site-packages/nmmo/core/env.py", line 737, in render
    packet = self.packet
AttributeError: 'Env' object has no attribute 'packet'

The code used comes from the starter kit, with render=True added by me in the last line of code:

from neurips2022nmmo import CompetitionConfig, scripted, submission, RollOut

config = CompetitionConfig()

my_team = submission.get_team_from_submission(
    submission_path="my-submission/",
    team_id="MyTeam",
    env_config=config,
)
# Or initialize the team directly
# my_team = MyTeam("Myteam", config, ...)

teams = [scripted.CombatTeam(f"Combat-{i}", config) for i in range(5)]
teams.extend([scripted.MixtureTeam(f"Mixture-{i}", config) for i in range(10)])
teams.append(my_team)

ro = RollOut(config, teams, parallel=True, show_progress=True)
ro.run(n_episode=1, render=True)