Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check all systems #447

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 38 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,23 +14,58 @@
[<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/f8/LinkedIn_icon_circle.svg/2048px-LinkedIn_icon_circle.svg.png" alt="Linkedin Page" width="25"/>](https://www.linkedin.com/company/rubatopy/)
&nbsp;

<!-- If you update this README again update the GitHub profile of rubatopy README -->

### Get started [here](https://rubato.app/).

rubato is a modern 2D engine for game developement in python. Dynamic physics simulations, robust scene management, event listener system and more all come prepackaged. Built in Cython using SDL2, rubato offers great performance without compromising on the intuitive nature of python code. It is currently in the final stages of beta, and a first stable release is planned for December 31st, 2022.
### About rubato

As of release 0.3.0, the transition to SDL2 and Cython was completed. DLLs and wheels for the household-name platforms come prebundled, making rubato plug-and-play on most machines. This transition has enabled more complex functionality such as antialiasing and hardware acceleration, as well as a backend of C classes to reduce overhead. Older versions of rubato, such as PyGame-based 0.1.2, are now completely deprecated and it is highly recommended for users of those versions to upgrade. 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](https://pysdl2.readthedocs.io/en/latest/) and the base C++ SDL wiki [here](https://wiki.libsdl.org).
rubato is a modern 2D engine for game developement in python built in Cython using SDL2. With hardware acceleration, rigidbody support, easy tile map and animations and more, rubato finally gives you the fast development and performance you needed of your python games and prototypes. Moving past 1.0, we plan to maintain complete backwards compatibility with other post-1.0 versions.

_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._
<br>

## Help

Check out how easy it is to start a project in rubato with 3 simple lines of code:

```python
import rubato as rb

# initialize rubato
rb.init()

# launch the window
rb.begin()
```

Check out the rubato website for [Installation instructions](https://docs.rubato.app/latest/intro/) and a [Basic tutorial](https://docs.rubato.app/latest/tutorials/platformer/) to get you going.

### backend

As of release 1.0.0, we have a final ordering and functionality of all our main functions. We no longer rely on sdlgfx using our own optimized rendering. Rubato also fully supports Tiled map files that can be directly placed into your game. Also check out the new Particles system for special effects.

If you really want to use the underlying parts of the rubato project read more about PySDL2 [here](https://pysdl2.readthedocs.io/en/latest/), or the C++ SDL library it is wrapping [here](https://wiki.libsdl.org).

A big thank you to all of our [contributors](https://github.com/rubatopy/rubato/blob/main/CONTRIBUTORS.md) who help make this project possible.

### Dependencies

rubato is build on SDL2 and python as well as some other simpler things, here is a comprehensive list:

- CPython >= 3.10
- PySDL2 == 0.9.\*
- Cython == 3.0.0a11
- pysdl2-dll == 2.24.\*
- pytiled-parser == 2.2.\*

#### Changelog

See [CHANGELOG.md](https://github.com/rubatopy/rubato/blob/main/CHANGELOG.md)

#### Looking to contribute to Rubato?

See [CONTRIBUTING.md](https://github.com/rubatopy/rubato/blob/main/CONTRIBUTING.md).
See [CONTRIBUTING.md](https://github.com/rubatopy/rubato/blob/main/CONTRIBUTING.md). And join our [discord](https://discord.gg/rdce5GXRrC)!

#### Code of Conduct

Expand Down
3 changes: 2 additions & 1 deletion rubato/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,8 @@ def init(
physics_fps: The physics simulation's frames per second. Defaults to 50.
hidden: Whether the window should be hidden. Defaults to False.
"""
sdl2.SDL_Init(sdl2.SDL_INIT_EVERYTHING)
if sdl2.SDL_Init(sdl2.SDL_INIT_EVERYTHING) != 0:
raise (Exception("SDL2 failed in initialization: " + sdl2.error.SDL_GetError().decode("ascii")))

Game._initialized = True

Expand Down