A procedural tile-based endless runner written entirely in Python using Pygame. The game draws all visual elements procedurally using standard Pygame shape commands as layered rectangles, lines, and dots to simulate a pixel block aesthetic without any external image files. It includes procedurally generated sound effects using pygame.mixer arrays.
- Python 3.8+
- Pygame (
pip install pygame) - Standard library (
json,os,configparser,random,math,datetime,array)
- Launch from Terminal: Open your terminal (PowerShell, CMD, or VS Code Terminal), navigate to the project directory, and run the game using Python:
python main.py
- The game will launch in a new 800x600 graphical window. Make sure the window is selected to capture your keyboard inputs!
- Movement: WASD or Arrow Keys (configurable via config file)
- Menu Selection: Left/Right Arrows, Enter
- Pause Game: ESC
Initialization configuration is written to config.ini in the root directory upon first run.
Available options under the [Settings] block:
sound_on:TrueorFalse.preferred_character: String name of the unlocked character (e.g.Default,Tank).up,down,left,right: Movement keys bound (e.g.w,s,a,d).
Player progress, scores, unlocks, and recorded replays are stored in save.json in the root directory alongside the executable. Deleting this file will reset all progression and daily challenge histories.
- Alpha channel rendering for the Ghost player uses a secondary surface blit which can be performance intensive on extremely weak hardware.
- Procedural audio waveforms rely on a continuous buffer write. Very high frame drops could occasionally desync the beep playback duration.
Please note that this is a fan-made educational terminal/Pygame clone. The creator does not own any copyright, trademarks, or intellectual property pertaining to the official "Crossy Road" brand produced by Hipster Whale. All code logic and pixel assets were generated natively for fair use.