Pilot a paper plane to nimbly soar through an obstacle course of crates or train a reinforcement learning agent to do it for you with the Flight School Gymnasium environment! See how far you can fly before you inevitably crumple!
Demo.mp4
Fly through as many obstacles as you can by avoiding collisions with the crates. Each gap that you fly through gives you one point.
Left-click to start a new game.
Hold the left mouse button to cause the paper plane to pitch upward, and release the left mouse button to allow it to pitch downward.
- Human: A standard graphics window running at the framerate the game is intended to be played.
- None: Neither window nor graphics are displayed.
- Numeric: A nested collection of key-value game data pertaining to the position and velocity of the paper plane as well as the positions and gap numbers of the next two crate walls.
- RGB Array: A numpy array shaped as (3 color channels, 720 pixel rows, 1280 pixel columns) of uint8 values (integers 0 - 255).
Each step resulting in a point scored yields a reward of 1, and otherwise yields a reward of 0.
Plain Paper Plane is a remake of a game that I made as part of a friendly bet, long ago. The purpose of remaking this game was to learn about Python's multiple inheritence, the Entity-Component-System pattern, PyGame, and Gymnasium.
Made with:
- gymnasium 0.29.1
- numpy 1.26.4
- pyenv 2.3.36
- pygame 2.5.2
- pyinstaller 6.4.0
- python 3.9.18