Unipress Documentation
Welcome to the Unipress documentation! Unipress is a collection of one-button games built with Python and the Arcade framework.
Note: This documentation is also available on Read the Docs and GitHub Pages.
🎮 What is Unipress?
Unipress is a professional-grade game development framework that focuses on one-button games - games where players can only send binary signals (click/press) without cursor positioning or element selection. All interactions use timing-based or automatic cycling mechanics.
Key Features
One-Button Constraint: All games work with single button input only
Professional Architecture: Modern Python development with best practices
Extensible Framework: Easy to add new games with consistent structure
Comprehensive Systems: Settings, sound, logging, internationalization
Container Support: Docker-based deployment with audio/GPU support
HTTP Server: API-based game management for scalable deployment
📚 Documentation Sections
Getting Started
Installation Guide - How to install and set up Unipress
Quick Start - Run your first game in minutes
Development Setup - Set up development environment
Game Development
Creating Your First Game - Step-by-step guide to creating a new game
API Reference
Complete API Reference - Full API documentation with all modules
BaseGame Class - Core game framework class
Architecture
System Overview - High-level architecture
Architecture Decision Records - ADR collection and rationale
UML Diagrams - Visual architecture documentation
🚀 Quick Start
# Install dependencies
uv sync
# Run demo game
uv run python main.py
# Run specific game with difficulty
uv run python -m unipress.games.jumper.game 5
🎯 Available Games
Demo Jump
Simple jumping game demonstrating core mechanics.
Jumper
Enhanced sprite-based game with animations and parallax backgrounds.
🛠️ Development Tools
uv: Fast Python package manager
arcade: Modern 2D game framework
ruff: Fast Python linter and formatter
pytest: Testing framework
mypy: Static type checking
Sphinx: Documentation generation
📖 Contributing
See our Contributing Guide for information on how to contribute to Unipress.
📄 License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Need help? Check out our FAQ or open an issue on GitHub.