Skip to content

SethGallucci/Plain-Paper-Plane

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Plain-Paper-Plane

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

Objective

Fly through as many obstacles as you can by avoiding collisions with the crates. Each gap that you fly through gives you one point.

Controls

Splash Scene & Game Over Scene

Left-click to start a new game.

Game Scene

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.


Gymnasium Environment

Render Modes

  • Human: A standard graphics window running at the framerate the game is intended to be played.
  • None: Neither window nor graphics are displayed.

Observation Types

  • 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).

Rewards

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

About

A simple game where you try to score as many points as you can by piloting a paper plane through obstacles of stacks of crates.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages