extro is currently being rewritten entirely in cpp and soon will no longer support python (at least for the time being). While this is being done no activity may be viewable from this repo but work is being done!
A opinionated 2D game engine for Python.
- Instance and scene management
- Built-in developer console
- Built-in profiler and performance metrics
- 2D physics and collision detection
- UI framework
- Instance hierarchy and object parenting
- Animation system supporting sprites and tweened instances
- Utility classes (timeouts, janitor, signals, etc.)
- Built-in 2D camera support
Examples can be found here.
Benchmarks can be found here.
- Python 3.14.0 (or newer)
- CMake 3.15 (or newer) *
- C++23 (or newer) compiler *
* Required only if building from source
- Windows 10/11 (x64)
- MacOS Tahoe (M series chip)
You can install extro directly from the latest release on GitHub:
pip install https://github.com/Lanred-Dev/extro/releases/download/<tag>/<file>.whlReplace
<tag>and<file>with the version and filename from the release you want to use.
For example:
pip install https://github.com/Lanred-Dev/extro/releases/download/v0.10.0-alpha/extro-0.10.0a0-cp314-cp314-win_amd64.whlIf you prefer to build from source:
git clone https://github.com/Lanred-Dev/extro.git
cd extro
pip install .This automatically builds and installs the Python package (and its C++ extensions if needed).
- Clone this repository
git clone https://github.com/Lanred-Dev/extro.git
cd extro- Create a Python virtual environment:
python -m venv .venv- Activate the virtual environment:
.venv\Scripts\activate- Install dependencies:
pip install .[dev]To create a distributable .whl file:
pip install --upgrade build
python -m buildIf you want to build the C++ extensions separately from the .whl, you can do so using CMake and nanobind.
- Install nanobind:
pip install nanobind- Then build:
sh build.sh
# or to build manually:
cmake -S . -B build
cmake --build build --config Release