rubato is a modern 2D engine for game developement in python built in Cython using SDL2. It is aimed to aid in rapid prototyping and educational development of games as a stepping stone towards AAA tools such as Unity. rubato is more robust than its competitors, with a more intuitive syntax, high customizability, and zippy performance.
Here are some features we're especially proud of:
- Powerful Rigidbody Physics
- Event Subscription/Listener System
- Spritesheets and Animations
- Particle Systems
- Tiled / Tilemap Support
- Multichannel Sound System
- Antialiasing + Anisotropic Filtering
- Collision Optimization with Quadtrees
- Texture-based Hardware Acceleration
- User Interface Elements
- And more!
1.0 is the latest API-stable release as of Dec. 31 2022, and we plan to maintain backwards compatibility in future releases. Please note that the alpha versions (0.x.x) are now deprecated and it is strongly recommended to update in order to get the latest features and optimizations.
Wondering about the name? rubato is a music term that indicates a phrase that should be performed expressively and freely. We aim to harness that same freedom, bringing a fresh, modern take on game developement in python to a variety of users regardless of their coding background.
Using rubato is super easy. Just install rubato through pip in a terminal:
pip install rubato
After that, getting a window up takes only 3 lines of code!
import rubato as rb
# initialize rubato
rb.init()
# launch the window
rb.begin()
Check out our tutorial to learn more about what you can do with rubato.
See CHANGELOG.md
See CONTRIBUTING.md. And join our discord!
A big thank you to all of our contributors who help make this project possible.
See CODE_OF_CONDUCT.md.