Comments (7)
On my Kaboom! rom add, I came upon this issue, because the game freezes when you reach the max score (999,999).
Without having seen this issue, I decided that termination was the logical choice.
Now that I think about it, just checking ">= 999999" is not sufficient, because in that game, the maximum reward you can get is 8 (AFAICS from the manual), so I should check "> 999991". However, since this particular game just hangs, I assume it will eventually hit a timeout of sorts (does it? if not, that should at least be some kind of option, perhaps based on the time since the last reward).
Right now each game can do that individually, but it is preferred to have a unified method, as you suggest. such a unified method would need the maximum score and the maximum reward passed from each game.
These values can be determined manually, or at least a good first approximation could be automated, by writing successively larger values into the score memory until something happens (and a better-than-nothing first approximation of "highest possible reward" could be obtained by running a few decent agents, perhaps adding a safety margin).
Incidentally, it would be a good idea to generalize the concept of "score memory" and "lives memory", because then many new (and existing) roms could simply be supported by providing those two sets of values as parameters, rather than duplicating all the code that does the reading, extracting reward, etc.
from arcade-learning-environment.
However, since this particular game just hangs, I assume it will eventually hit a timeout of sorts
This has been confirmed since; for Kaboom! it is sufficient to check for == 999,999.
from arcade-learning-environment.
@nczempin Answering your suggestions in order:
-
The most ALE-ical solution is to allow players to score higher than the maximum provided, and keep track of the cumulative score. This is fine from an evaluation perspective because there should still be a time limit on all games, and you may be able to accumulate reward faster than another agent that also loops the score. However, in most cases if you can loop the score then you almost certainly can play the game indefinitely; and this should be reported somewhere.
-
Re: score and lives memory, the ALE is reasonably stable now and there's probably little advantage to a major refactoring. But it's something to keep in mind.
from arcade-learning-environment.
I agree with everything in 1).
- Re: score and lives memory, the ALE is reasonably stable now and there's probably little advantage to a major refactoring. But it's something to keep in mind.
Don't fully agree; I think there's a huge advantage, but of course I'm fine with risking that my changes might not get pulled.
See #193 and master...nczempin:simplify-roms if you want to check my progress.
I will try to keep it as painless as possible, no interfaces breakages. (and of course I will clean up my convenience changes such as in ale.cfg before I do a PR)
from arcade-learning-environment.
I also think that I may not have explained well what my plans are for 2). Will try do so eventually...
from arcade-learning-environment.
If you want to drop me an email, I'd be happy to hear more about them :)
from arcade-learning-environment.
No, it's fine, they are not secret, once I get round to trying to clarify myself, I can just post them here.
from arcade-learning-environment.
Related Issues (20)
- Small question about gym defaults HOT 2
- [BUG] Atari envs don't define `self.render_mode` for compatibility with gym 0.26 HOT 2
- Ability to import roms to different path HOT 2
- Environment Breakout doesn't exist in namespace ALE. HOT 1
- Speed-up rendering HOT 1
- Recording video no longer works when using Gym with ALE HOT 1
- python 3.9.13 pip install gym[accept-rom-license] error HOT 1
- Can't install on CentOS 7 HOT 2
- Python3 not found in cmake configure process even though it is installed HOT 3
- Videochess, Videocube and TicTacToe3D don't work HOT 1
- Support for Linux ARM64 HOT 3
- Not building under arch
- Removing plugin system from gymnasium HOT 2
- Strict TDQM requirement HOT 2
- Got RuntimeError when running command-line tool ale-import-roms
- Use `sys.exit` instead of `exit` HOT 1
- Roadmap HOT 5
- Modes not working in Breakout HOT 1
- Closing environment causes a crash
- Render window size too large and cannot be closed
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arcade-learning-environment.