- Free Python Games¶
- Testimonials¶
- Features¶
- Quickstart¶
- Free Games¶
- Paint¶
- Snake¶
- Pacman¶
- Cannon¶
- Connect¶
- Flappy¶
- Memory¶
- Pong¶
- Simon Says¶
- Tic Tac Toe¶
- Tiles¶
- Tron¶
- Life¶
- Maze¶
- Fidget¶
- Illusion¶
- Typing¶
- Minesweeper¶
- User Guide¶
- References¶
- Free Python Games License¶
- Open Source Python Game Engines for Linux
- openage
- GemRB Game Engine
- Doomsday Engine
- Pyxel
- Klay Game Engine
Free Python Games¶
Free Python Games is an Apache2 licensed collection of free Python games intended for education and fun. The games are written in simple Python code and designed for experimentation and changes. Simplified versions of several classic arcade games are included.
Python is one of the top-five most popular programming languages in the world and available for free from Python.org. Python includes an extensive Standard Library distributed with your installation. The Standard Library has a module called Turtle which is a popular way to introduce programming to kids. Turtle was part of the original Logo programming language developed by Wally Feurzig and Seymour Papert in 1966. All of the games in Free Python Games are implemented using Python and its Turtle module.
Starting in 2012, Free Python Games began as an after school program to teach programming to inner-city youth. The goal was to have fun as much as it was to learn. Since then the games have been improved and used in a variety of settings ranging from classrooms to summer day-camps.
The games run anywhere Python can be installed which includes desktop computers running Windows, Mac OS, or Linux and older or low-power hardware such as the Raspberry Pi. Kids across the United States in grades 6th-12th have enjoyed learning about topics such as encryption and projectile motion through games.
Each game is entirely independent from the others and includes comments along with a list of exercises to work through with students. Creativity and flexibility is important. There is no right or wrong way to implement a new feature or behavior! You never know which games students will engage with best.
Testimonials¶
“I love Free Python Games because the games are fun and they’re easy to understand and change. I like making my own games now.”
“Free Python Games inspired and introduced a new hobby to our son. Thank you so much for exposing him to coding. He is having so much fun!”
“Free Python Games are great because they really engage students and let them learn at their own pace.”
– Rick Schertle, Teacher, Steindorf STEAM School
“Free Python Games combines play and learning in a flexible environment that reduces the stress of a difficult topic like programming.”
– Brett Bymaster, Youth Pastor, The River Church Community
“Free Python Games is great for students, is highly organized and flexible, and seeks to unleash inquiry and understanding.”
– Terri Furton, Principal, Downtown College Prep
Features¶
- Fun to play!
- Simple Python code
- Easy to install
- Designed for education
- Depends only on the Python Standard Library
- Used in hundreds of hours of classroom instruction
- Fully Documented
- 100% Test Coverage
- Developed on Python 3.10
- Tested on CPython 3.6, 3.7, 3.8, 3.9, 3.10
- Tested on Linux, Mac OS X, and Windows
- Tested using GitHub Actions
Quickstart¶
Installing Free Python Games is simple with pip:
$ python3 -m pip install freegames
Free Python Games supports a command-line interface (CLI). Help for the CLI is available using:
The CLI supports three commands: list, copy, and show. For a list of all games run:
Any of the listed games may be played by executing the Python module from the command-line. To reference the Python module, combine “freegames” with the name of the game. For example, to play the “snake” game run:
Games can be modified by copying their source code. The copy command will create a Python file in your local directory which you can edit. For example, to copy and play the “snake” game run:
$ python3 -m freegames copy snake $ python3 snake.py
Python includes a built-in text editor named IDLE which can also execute Python code. To launch the editor and make changes to the “snake” game run:
$ python3 -m idlelib.idle snake.py
You can also access documentation in the interpreter with Python’s built-in help function:
>>> import freegames >>> help(freegames)
Free Python Games also provides an entry-point script for compatibility with pipx:
$ pipx install freegames $ freegames play life
Free Games¶
Paint¶
Paint – draw lines and shapes on the screen. Click to mark the start of a shape and click again to mark its end. Different shapes and colors can be selected using the keyboard.
Snake¶
Snake – classic arcade game. Use the arrow keys to navigate and eat the green food. Each time the food is consumed, the snake grows one segment longer. Avoid eating yourself or going out of bounds!
Pacman¶
Pacman – classic arcade game. Use the arrow keys to navigate and eat all the white food. Watch out for red ghosts that roam the maze.
Cannon¶
Cannon – projectile motion. Click the screen to fire your cannnonball. The cannonball pops blue balloons in its path. Pop all the balloons before they can cross the screen.
Connect¶
Connect – Connect 4 game. Click a row to drop a disc. The first player to connect four discs vertically, horizontally, or diagonally wins!
Flappy¶
Flappy – Flappy-bird inspired game. Click the screen to flap your wings. Watch out for black ravens as you fly across the screen.
Memory¶
Memory – puzzle game of number pairs. Click a tile to reveal a number. Match two numbers and the tiles will disappear to reveal an image.
Pong¶
Pong – classic arcade game. Use the keyboard to move your paddle up and down. The first player to miss the ball loses.
Simon Says¶
Simon Says – classic memory puzzle game. Click the screen to start. Watch the pattern and then click the tiles in the same order. Each time you get the sequence right the pattern gets one step longer.
Tic Tac Toe¶
Tic Tac Toe – classic game. Click the screen to place an X or O. Connect three in a row and you win!
Tiles¶
Tiles – puzzle game of sliding numbers into place. Click a tile adjacent to the empty square to swap positions. Can you make the tiles count one to fifteen from left to right and bottom to top?
Tron¶
Tron – classic arcade game. Use the keyboard to change the direction of your Tron player. Avoid touching the line drawn by your opponent.
Life¶
Life – Conway’s Game of Life. The classic, zero-player, cellular automation created in 1970 by John Conway.
Maze¶
Maze – move from one side to another. Inspired by A Universe in One Line of Code with 10 PRINT. Tap the screen to trace a path from one side to another.
Fidget¶
Fidget – fidget spinner inspired animation. Click the screen to accelerate the fidget spinner.
Illusion¶
Typing¶
Typing – practice typing while letters fall down the screen.
Minesweeper¶
Minesweeper – logic puzzle game to clear the hidden mines.
User Guide¶
For those wanting more details, this part of the documentation describes curriculum, API, and development.
References¶
Free Python Games License¶
Copyright 2017-2023 Grant Jenks
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Open Source Python Game Engines for Linux
Browse free open source Python Game Engines for Linux and projects below. Use the toggles on the left to filter open source Python Game Engines for Linux by OS, license, language, programming language, and project status.
Complex websites made easy. You can build a beautiful website with any CMS, but what will it be like to edit and manage over time?
Concrete5 has allowed individuals involved with websites to easily manage their content and their site structure. Above all else, the goal behind concrete5 has always been to make it easy for anyone to run a website!
Your single integration to industry leading, secure blockchain infrastructure for web3. Scale with ease through our end-to-end suite of blockchain technology, from dedicated nodes and APIs to easily-accessible staking and liquid staking, MPC tech, and more.
openage
openage is a free cross-platform RTS game engine that provides the mechanics of Age of Empires. Using modern technologies as C++17, OpenGL/GLSL, Python, Qt5 and CMake allows people using GNU/Linux, BSD, macOS or Windows to play the game natively. Our aim is to make openage a platform for the original Age of Empires games providing the same look and feel, but with more features for modding and multiplayer. openage uses an open API powered by our human-readable configuration language nyan. We implement a client-server architecture with dedicated servers that supports more than 8 players. The overarching system will provide matchmaking, lobbies, server discovery and other community features. openage is a community project that values every contribution, the only requirement is your enthusiasm. Don’t hesitate to get in touch with us if you want to help!
GemRB Game Engine
GemRB (Game engine made with pre-Rendered Background) is a portable open-source implementation of Bioware’s Infinity Engine. It was written to support pseudo-3D role playing games based on the Dungeons & Dragons ruleset (Baldur’s Gate and Icewind Dale series, Planescape: Torment). It should run on GNU/Linux, Microsoft Windows, OS X, possibly other UNIX derivatives and more. It is licensed under the GPL.
Doomsday Engine
A portable game engine for classic first person shooters such as DOOM, Heretic and Hexen. Lets you enjoy the original games using modern technology, including high-resolution OpenGL graphics, 3D models, and dynamic lighting effects.
Pyxel
A retro game engine for Python. Thanks to its simple specifications inspired by retro gaming consoles, such as only 16 colors can be displayed and only 4 sounds can be played back at the same time, you can feel free to enjoy making pixel art style games. The motivation for the development of Pyxel is the feedback from users. Please give Pyxel a star on GitHub! Pyxel’s specifications and APIs are inspired by PICO-8 and TIC-80. Pyxel is open source and free to use. Let’s start making a retro game with Pyxel! Runs on Windows, Mac, Linux, and Web. Using the Pyxel Web Launcher or custom elements for HTML, you can run Pyxel in a web browser without any installation work. Pyxel supports a dedicated application distribution file format (Pyxel application file) that works across platforms. 8 musics that can combine arbitrary sounds.
Universal Cloud Data Access Control Automate data access control on any cloud, using any data platform, at scale
Immuta is the universal cloud data access control platform, providing data engineering and operations teams one platform to control access to analytical data sets in the cloud. Only Immuta can automate access control for any data, on any cloud service, across all compute infrastructure. Data-driven organizations around the world rely on Immuta to speed time to data, safely share more data with more users, and mitigate the risk of data leaks and breaches. Founded in 2015, Immuta is headquartered in Boston, MA.
Klay Game Engine
KlayGE is an open source, cross-platform game engine with plugin-based architecture. It provides a framework to make game development, testing, porting as simple as possible.