Skip to main content

A lightweight, developer-first game engine built for Python.

Project description

logo
rubato

GitHub PyPI PyPI - Downloads GitHub Release Date GitHub Build Status GitHub Docs Status

Rubato is a modern 2D game engine for python. Accurate fixed-step physics simulations, robust scene and game object management, event listener system and more all come prepackaged.

Rubato is built developer-first. From intricate rigidbody simulations to 2D games, Rubato streamlines development for beginners and the poweruser. And all that finally with some legible documentation.

Rubato has now completed the transition to SDL2. The final PyGame-based release was 1.2, and is considered depricated. This has allowed us to implement more complex features not supported by PyGame such as antialiasing and hardware acceleration. If you would like to read more about PySDL2 or need to utilize its underlying functionality in your project, you can read the python wrapper documentation here and the base C++ SDL wiki here.

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.

Get started here.

Credit to @ArksDigital for the dino animation used in the demos and in the tutorial. (itch page)

Changelog

v2.0.0 - April 5, 2022

Added

  • Sound class rewritten
  • Spritesheet support
  • A full UI system
  • Text
  • Quick draw functions in Display

Changed

  • Ported to PySDL2 from pygame
  • Moved all window management from Game to Display
  • Made classes that only need one instance static classes
  • Rectangle implementation is now distinct from polygons
  • Rename sprite to game object
  • Input.key_pressed() can now take in an arbitrary number of arguments

Removed

  • Default sprite images

v1.2.0 - March 15, 2022

Added

  • Proper 2d physics without angular velocity and torque
  • Circle collision
  • Groups are back

Changed

  • Updated default image import to actually work properly
  • Hitboxes can now be colored in. This replaces the old Rectangle class
  • Hitboxes are now created like all other components (as in they use a options dictionary)
  • Collision now happen automatically

Removed

  • Rectangle class

Fixed

  • Animations are now independent from FPS

v1.1.0 - March 01, 2022

Added

  • Sound system

Changed

  • Switched to a component based system (similar to Unity)

Removed

  • Removed Groups because they were deemed useless
  • Physics for now

v1.0.0 - Feb 01, 2022

Added

  • Full Documentation through docstrings and through website
  • Loader for images. (Can load entire folders)
  • Custom errors
  • A full color implementation
  • Added continuous integration
  • Text can be drawn onto surfaces

Changed

  • A more complete color implementation
  • New time system
  • Switched to GPL-3.0 License
  • Lots of linting
  • Move default options to their own area

Fixed

  • Many many bugs

v0.0.1 - Nov 03, 2021

Added

  • Basic framework for everything
  • Sprites, Scenes, Main game object
  • Rigidbody implementation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rubato-0.2.0.zip (421.0 kB view details)

Uploaded Source

Built Distribution

rubato-0.2.0-py3-none-any.whl (414.4 kB view details)

Uploaded Python 3

File details

Details for the file rubato-0.2.0.zip.

File metadata

  • Download URL: rubato-0.2.0.zip
  • Upload date:
  • Size: 421.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for rubato-0.2.0.zip
Algorithm Hash digest
SHA256 3dac1999bb5ac296aaf6e360f90a6f95cb82e153c5beeacac900893850e75e0f
MD5 d9ee9b4fd571d8d0786dbd0bc22e71b2
BLAKE2b-256 009d2030b37fa08a395736df7c234bf634ab16173001981ca44eaa9b61bfb3b5

See more details on using hashes here.

File details

Details for the file rubato-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: rubato-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 414.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for rubato-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8a0d6bae4fbf8f22b90013ecc0a187d8baa95722c9bfcf69730b2eaa4fa84af2
MD5 6f37fb2302055d314f2f219d9077032f
BLAKE2b-256 0f3039e68b2e8841293ecbfbf46b07f1268b43fcbff83d74c3b813041bcb3ca4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page