sail-sg / envpool

C++-based high-performance parallel environment execution engine (vectorized env) for general RL environments.
https://envpool.readthedocs.io
Apache License 2.0
1.08k stars 99 forks source link

[Feature Request] Add Atari difficulty level and a game mode option. #290

Open KPollux opened 9 months ago

KPollux commented 9 months ago

Motivation

In the realm of reinforcement learning and game simulation, the ability to adjust difficulty levels and game modes significantly enhances the flexibility and applicability of models. This feature request is motivated by the need for a more nuanced and customizable training environment in Atari games. Currently, while using the Arcade Learning Environment (ALE), I often find myself limited by the lack of options to adjust game difficulty and mode. This limitation is particularly noticeable when trying to simulate different scenarios or train models under varying conditions. This feature request is not directly related to an existing issue but is inspired by the concepts presented in Machado et al.'s paper [1] and the existing functionalities outlined in [2].

Solution

The ALE API for the gymnasium supports the adjustment of the 'mode' and 'difficulty' parameters on Atari games. If possible, you can add the corresponding parameters when using 'envpool.make'.

Alternatives

An alternative solution could be the development of separate game environments for each combination of difficulty level and mode. However, this approach will lead to unnecessary redundancy and could be less efficient compared to having a unified environment with selectable options.

Additional context

[1] Machado et al. “Revisiting the Arcade Learning Environment: Evaluation Protocols and Open Problems for General Agents” Journal of Artificial Intelligence Research (2018) URL: https://jair.org/index.php/jair/article/view/11182 [2] https://gymnasium.farama.org/environments/atari/

Checklist

Trinkle23897 commented 9 months ago

Should be relatively straight forward (less than 30 lines of code), would you like to submit a PR?

KPollux commented 9 months ago

Should be relatively straight forward (less than 30 lines of code), would you like to submit a PR?

Yes, the modification does seem quite straightforward. Unfortunately, I'm not well-versed in C++ and thus unable to submit a PR. Thank you very much for your understanding and assistance!

adi-vc commented 4 months ago

Is there an update on this?