A fast-paced, perspective-scrolling arcade game built with Python & Kivy
If you find this game fun or the code helpful, please give it a star! ⭐
It helps the project grow and motivates further development.
⭐ Click here to Star the repo ⭐
Galaxy Ship is an endless runner-style arcade game where you pilot a ship down an infinite scrolling path. Navigate through narrowing lanes, dodge obstacles, and chase your high score — all rendered in a beautiful 3D-perspective view.
- 🌌 3D Perspective Scrolling — dynamic vanishing-point rendering
- 🎨 Customizable Colors — choose from 6 color presets for lines, tiles, and ship
- ⏸️ Pause & Resume — take a breather mid-game
- 🏆 High Score Tracking — scores persist between sessions via JSON storage
- 🔊 Immersive Audio — menu music, in-game soundtrack, and sound effects
- ⌨️ Keyboard & Touch Controls — play on desktop or mobile
- ⚡ Progressive Difficulty — speed increases and lanes narrow over time
Main gameplay showing the 3D perspective scrolling and ship navigation
- Python 3.12+
- uv (recommended) or pip
# Clone the repository
git clone https://github.com/gourav-1711/Galaxy_ship_python_game.git
cd Galaxy_ship_python_game
# Install dependencies with uv
uv sync
# Run the game
uv run main.pypip install kivy[full]
python main.py| Control | Action |
|---|---|
← |
Move Left |
→ |
Move Right |
| Touch (left) | Move Left |
| Touch (right) | Move Right |
| Pause Button | Pause / Resume |
Objective: Stay on the tiles and survive as long as possible. The speed increases and the path narrows — how far can you go?
Galaxy_ship_python_game/
├── 📁 assets
│ ├── 📁 audio
│ │ ├── 🎵 begin.wav
│ │ ├── 🎵 click.wav
│ │ ├── 🎵 galaxy.wav
│ │ ├── 🎵 gameover_impact.wav
│ │ ├── 🎵 gameover_voice.wav
│ │ ├── 🎵 menu.mp3
│ │ ├── 🎵 music1.wav
│ │ └── 🎵 restart.wav
│ ├── 📁 fonts
│ │ ├── 📄 Eurostile.ttf
│ │ └── 📄 Sackers-Gothic-Std-Light.ttf
│ └── 📁 images
│ ├── 🖼️ bars.png
│ ├── 🖼️ bg1.jpg
│ ├── 🖼️ gear_icon.png
│ └── 🖼️ star_icon.png
├── 📁 src
│ ├── 📁 game_files # Core game logic
│ │ ├── 🐍 audio.py # Sound initialization
│ │ ├── 🐍 controls.py # Keyboard & touch input
│ │ ├── 🐍 game_manager.py # Game state management
│ │ ├── 🐍 land_tiles.py # Tile generation & rendering
│ │ ├── 🐍 lines_gen.py # Line generation & rendering
│ │ ├── 🐍 ship.py # Ship rendering & collision
│ │ └── 🐍 transform.py # 3D perspective transforms
│ └── 📁 screens # UI screens
│ ├── 📄 menu.kv # Menu layout
│ ├── 🐍 menu.py # Menu logic
│ ├── 📄 pause.kv # Pause screen layout
│ ├── 🐍 pause.py # Pause screen logic
│ ├── 📄 restart.kv # Game over layout
│ ├── 🐍 restart.py # Game over logic
│ ├── 📄 settings.kv # Settings layout
│ └── 🐍 settings.py # Settings & color persistence
├── 📄 galaxy.kv # Main UI layout
├── 🐍 main.py # Application entry point
├── ⚙️ pyproject.toml # Project config & dependencies
└── 📄 README.md
| Technology | Purpose |
|---|---|
| Python 3.12 | Core language |
| Kivy 2.3.1 | Cross-platform UI framework |
| Kivy KV Language | Declarative UI layouts |
| JsonStore | Persistent settings & high scores |
| uv | Package management |
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
Made with ❤️ and Python
⭐ Don't forget to star this repo if you liked it! ⭐
