5 个版本

0.1.3 2020年5月6日
0.1.2 2020年2月10日
0.1.1 2020年2月9日
0.1.0 2020年2月9日
0.0.1 2020年2月7日

#3 in #arcade

MIT 许可证

2MB
47K SLoC

C++ 21K SLoC // 0.3% comments Prolog 13K SLoC C 8K SLoC // 0.2% comments M4 2K SLoC // 0.0% comments Java 1.5K SLoC // 0.4% comments Rust 670 SLoC // 0.1% comments Python 467 SLoC // 0.2% comments HICAD 200 SLoC Shell 159 SLoC // 0.2% comments

ale

Arcade Learning Environment 的 Rust 接口。

一些游戏,如 Breakout、Asteroids、MsPacman 和 Space Invaders,已打包到库中,以便任何使用它的人都可以运行它们。完整的列表在 https://github.com/trolleyman/ale-rs/blob/master/src/lib.rs#L353-L430

要求

Breakout 示例

要播放 Atari 的 Breakout,请运行此命令

cargo run --release --example breakout

控制键

  • P: 切换暂停
  • A/Left: 按键左移
  • D/Right: 按键右移
  • Space: "射击"键(触发球)
  • R: 重置游戏

ale-sys

Arcade Learning Environment 的 Rust 绑定,进行了一些调整。参见 https://github.com/trolleyman/Arcade-Learning-Environment

差异

  • zlib 已作为 vendored 包处理,以便更容易编译
  • C 库已静态链接

xtask

xtask 是一个用于开发的较小子项目。可以通过在存储库的根目录中运行 cargo xtask <subcommand> 来运行子命令。

有两个子命令:gen-bindingsdownload-roms

gen-bindings 生成 ale-sys/src/bindings.rs 文件,并需要安装 clang。

download-roms 下载打包的 Atari ROM 文件并输出到 roms/ 文件夹中,然后通过 include_bytes! 包含在二进制文件中。这是为了防止版权侵权。此技术类似于 atari-py 使用的技术。

依赖项