Skip to main content

PyGuara Engine

PyGuara is a production-grade, 2D game engine for Python 3.12+. It combines the clean architecture of enterprise software with the fun of game development, featuring a high-performance Entity-Component-System (ECS), a native Dependency Injection (DI) container, and a suite of professional tools.

Status: Alpha (Feature Complete Core). APIs are stable but subject to refinement.

CI codecov Python versions Ruff License

🌟 Why PyGuara?

Most Python game libraries (like Pygame) give you a window and a loop, leaving you to build the "engine" yourself. PyGuara provides that structure out of the box.

  • Structure, not Spaghetti: Built on Dependency Injection and ECS, your code remains decoupled and testable, even as your project grows.
  • Batteries Included: Physics, UI, Pathfinding, Behavior Trees, Tweening, and Tilemaps are all built-in.
  • Developer Experience: Includes a live in-game editor, hot-reloadable config, and robust logging.

🚀 Key Features

  • ⚡ Performance-First ECS:
    • Optimized EntityManager using Inverted Indexes for $O(1)$ queries.
    • Memory-efficient component storage.
  • 🛠️ Professional Tooling:
    • Live Editor: Press F12 to open the hierarchy inspector, modify components in real-time, and save scenes.
    • Debug Tools: Visual gizmos, performance profilers, and event monitors.
  • 🎨 Advanced Rendering:
    • Backend-agnostic pipeline (currently pygame-ce) with automatic Batching and Z-sorting.
    • Camera system with zoom, shake, and multiple viewports.
  • ⚛️ Physics & AI:
    • Native Pymunk integration for rigid bodies, joints, and raycasting.
    • Behavior Trees, Finite State Machines (FSM), and A Pathfinding*.
  • 🖥️ UI System:
    • Constraint-based layout engine (Flexbox-like).
    • Declarative widget composition with theming support.
  • 🎬 Animation & Scripting:
    • Powerful Tweening engine for smooth value transitions.
    • Coroutine system for writing sequential, timed game logic.

📚 Documentation

🛠️ Installation

PyGuara requires Python 3.12 or higher.

# Clone the repository
git clone https://github.com/Wedeueis/pyguara
cd pyguara

# Sync dependencies and install
uv sync

Using make

# Clone and enter the repository
git clone https://github.com/Wedeueis/pyguara
cd pyguara

# One command to sync everything (core, dev, docs, benchmarks)
make install

Using pip

pip install -e .[dev]

🎮 Quick Start

To run the engine sandbox and see the features in action:

python main.py

Code Example: A Simple Scene

from pyguara.scene.base import Scene
from pyguara.common.components import Transform
from pyguara.graphics.components import Sprite
from pyguara.physics.components import RigidBody, Collider
from pyguara.common.types import Vector2
from pyguara.graphics.components import Texture

class GameScene(Scene):
    def on_enter(self) -> None:
        # 1. Load Assets
        texture = self.resource_manager.load("player.png", Texture)

        # 2. Create Entity
        player = self.entity_manager.create_entity("Hero")

        # 3. Add Components (Data)
        player.add_component(Transform(position=Vector2(100, 100)))
        player.add_component(Sprite(texture=texture))

        # 4. Add Physics
        player.add_component(RigidBody(body_type=BodyType.DYNAMIC))
        player.add_component(Collider(shape_type=ShapeType.BOX, dimensions=[32, 32]))

🤝 Contributing

Contributions are welcome! Please ensure you adhere to the project's code quality standards.

  1. Run tests: pytest
  2. Lint: ruff check .
  3. Type Check: mypy pyguara

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

✍️ Author

Developed by Wedeueis Braz.

Metadata

Release files for pyguara 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyguara 0.5.0
File Size Uploaded Provenance Actions
pyguara-0.5.0.tar.gz 318.4 kB Without provenance Details for pyguara-0.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pyguara 0.5.0
File Interpreter ABI Platform Actions
pyguara-0.5.0-py3-none-any.whl Python 3 none any Details for pyguara-0.5.0-py3-none-any.whl

Total release size: 752.3 kB

Release files / pyguara-0.5.0.tar.gz

Download URL pyguara-0.5.0.tar.gz
Size 318.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e9b4e424f474b061f7b7f9570e1435e16505d17c8fd575785fd96fcf45de3b8c
BLAKE2b-256 checksum
How to use checksums
eb297352f103f294278f961e5e8c239e98ab43e649634ad488e49185469354b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.14

Release files / pyguara-0.5.0-py3-none-any.whl

Download URL pyguara-0.5.0-py3-none-any.whl
Size 433.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
36efdf10816cf21c42a37609a742840c10ae4e9d673a51638a59596b2bcb074f
BLAKE2b-256 checksum
How to use checksums
40af13fd6595304726be09b201446b9ba079d8ad7fb977609d78d8f41bb9d980
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.14

Security for pyguara 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page