Breakout Environments from Schema Network ICML '17 Paper

This repository contains the Breakout environments used to evaluate Schema Networks against A3C and Progressive Networks, as described in our ICML '17 paper.

How to play

Clone the repository:

git clone https://github.com/vicariousinc/schema_games.git schema_games

Install (setting up a virtual environment beforehand is recommended):

cd schema_games
pip install -r requirements.txt

You may then play games in interactive mode:

python schema_games/breakout/play.py StandardBreakout
python schema_games/breakout/play.py MiddleWallBreakout
python schema_games/breakout/play.py HalfNegativeBreakout
python schema_games/breakout/play.py OffsetPaddleBreakout
python schema_games/breakout/play.py RandomTargetBreakout
python schema_games/breakout/play.py JugglingBreakout
python schema_games/breakout/play.py MovingObstaclesBreakout

Breakout Variations

Breakout variations

a) Standard Breakout

Control the paddle to move left and right. Get points when the ball hits a brick. Lose points when the ball goes below the paddle.

python schema_games/breakout/play.py StandardBreakout

b) Middle Wall Breakout

When the ball hits the wall in the middle, it rebounds. To hit bricks, the wall must be avoided.

python schema_games/breakout/play.py MiddleWallBreakout

c) Half Negative Breakout

The yellow bricks give negative points when struck by the ball.

python schema_games/breakout/play.py HalfNegativeBreakout

d) Offset Paddle Breakout

The paddle is slightly raised with respect to the standard version.

python schema_games/breakout/play.py OffsetPaddleBreakout

e) Random Target Breakout

The block of bricks randomly moves every time it is struck by the ball.

python schema_games/breakout/play.py RandomTargetBreakout

f) Juggling Breakout

There are three balls and no bricks. The maximum possible score is zero.

python schema_games/breakout/play.py JugglingBreakout

References