[ANN] Breakout.jl - A simple Breakout clone for fun and reinforcement learning on internal game state

This package provides a Julia implementation of the Breakout game. My motivation for creating this package is to provide an easy to install library providing the Breakout game to get started with reinforcement learning (no Python dependency, no GPU required for training on internal game state).

The main features of this package are:

  • a playable breakout clone,
  • a CommonRLInterface for reinforcement learning,
  • different representations on which game play can be learned:
    • minimal: 2 dimensional game state containing x-coordinates of paddle and ball
    • brickless: 5 dimensional game state containing x-coordinate of paddle, x- and y-coordinate of ball, x- and -y velocity of ball
    • full: 89 dimensional game state containing y-coordinate of paddle, x- and y-coordinate of ball, x- and -y velocity of ball as well as one-hot encoded bricks
    • pixels: 160 x 210 dimensional grayscale pixel values

More info on GitHub.

An example usage of this package can be found in my course on Machine Learning and Deep Learning.

15 Likes

Do you plan to also publish your RL training code as a package?

It is already available in the course materials (see link above).

using Pkg
Pkg.add(url="https://github.com/rajgoel/course-machine-learning", subdir="julia")

For (D)DQN training:

using MachineLearningCourse
Lecture08.demo()

You can also watch a trained agent playing the game:

using MachineLearningCourse
Lecture08.breakout()
1 Like

Amazing work . Thank you so much for sharing .