Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes for Gymnasium API and various other improvements #80

Merged
merged 16 commits into from
Nov 28, 2023

Conversation

rk1a
Copy link

@rk1a rk1a commented Sep 16, 2023

Summary

  • Fixes remaining issues with Gymnasium API (metadata keys render_modes and render_fps, drop public seed() method, normalize mouse action space)
  • Registers base Minetest environment with the Gymnasium API
  • Fixes bug where reset would not change world seed due to wrong config write order
  • Adds useful graphics environment variables for
    • enabling Nvidia GPU rendering for minetest
    • disabling vsync -> allowing FPS > screen refreshing rate
  • Adds logic for using minetest_headless binary. For now it is used if headless=True and start_xvfb=False
  • Adds client-side dtimeargument
    • enables fixing in-game time per step
    • allows slowing down or speeding up game dynamics
    • makes dynamics (more) independent of used hardware

How to test

  • Gymnasium API: python -m minetester.scripts.gymnasium_api_check should run without errors
  • Graphics settings: python -m scripts.measure_fps should have increased FPS, especially when setting xvfb=False (with NVIDIA GeForce RTX 3050 Ti I get around 115 FPS)
  • Custom dtime:
    • ./bin/minetest --dtime 0.001 --record --go --client-address "tcp:https://*:5555" --world worlds/test for slowmo
    • ./bin/minetest --dtime 0.1 --record --go --client-address "tcp:https://*:5555" --world worlds/test for time lapse

Copy link

@JosiahWI JosiahWI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you explain this PR changes the submodules URLs from SSH to HTTP?

@rk1a
Copy link
Author

rk1a commented Nov 12, 2023

Could you explain this PR changes the submodules URLs from SSH to HTTP?

I think this made it easier to install the submodules when I set up the project on remote servers. Without changing this it required some sort of authorization with github, while http didn't need that

Copy link

@AI-WAIFU AI-WAIFU left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Everything looks good, tested on a new machine and everything works nicely. Merging

@AI-WAIFU AI-WAIFU merged commit 56fe18d into EleutherAI:develop Nov 28, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Migrate from Gym to Gymnasium
3 participants