Giter VIP home page Giter VIP logo

Comments (7)

nczempin avatar nczempin commented on May 31, 2024

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.

nczempin avatar nczempin commented on May 31, 2024

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.

mgbellemare avatar mgbellemare commented on May 31, 2024

@nczempin Answering your suggestions in order:

  1. 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.

  2. 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.

nczempin avatar nczempin commented on May 31, 2024

I agree with everything in 1).

  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.

nczempin avatar nczempin commented on May 31, 2024

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.

mgbellemare avatar mgbellemare commented on May 31, 2024

If you want to drop me an email, I'd be happy to hear more about them :)

from arcade-learning-environment.

nczempin avatar nczempin commented on May 31, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.