Ad

bevy_mod_scripting: Enables scripting in Bevy

Implement scripting in Bevy by providing a flexible and extensible system for Lua, Rhai, and Luau. Allows game logic updates without recompilation and modding.
Screenshot of makspll/bevy_mod_scripting homepage

Bevy Scripting provides a framework for incorporating scripting capabilities into the Bevy game engine. It aims to facilitate dynamic game logic updates and enable modding by allowing developers to define game behaviors in scripting languages. The crate uses Rust as its core language and provides bindings for various scripting languages, offering a flexible and extensible system for integrating scripts into Bevy.

A key distinction of Bevy Scripting is its ability to generate bindings for any Bevy reflect-implementing type. This allows scripts to interact with essentially any part of the Bevy engine. The system also provides customizable event-driven communication, making it straightforward to integrate scripts with existing Rust systems. Additionally, it features hot-loading for rapid iteration and a modular design for improved maintainability.

  • Language Support: Supports Lua, Lua51, Lua52, Lua53, Lua54, Luajit, Luajit52, Luau, and Rhai.
  • Dynamic Systems: Enables registration of dynamic systems and components from within scripts.
  • Event Communication: Offers customizable event-driven communication between Bevy and scripts via on_update, on_init, etc.
  • Flexible Bindings: Generates bindings for any Bevy reflect-implementing type including foreign types.
  • Hot Reloading: Supports hot-reloading scripts for quick iteration during development.
  • Documentation Generation: Provides tools for generating documentation from script code.
  • Benchmarking: Includes benchmarks to measure the performance impact of script execution.

Bevy Scripting is an evolving project with active development and regular updates. The crate has a growing community and ongoing maintenance. While documentation generation and Rune support are temporarily on hold, the core scripting functionality is stable and well-tested. The project demonstrates a commitment to code quality by enforcing strict linting rules.

Bevy Scripting benefits game developers by providing a convenient way to add scripting to Bevy projects, enabling rapid prototyping, modding capabilities, and dynamic game logic. It offers a compelling alternative to manual scripting or recompilation-based approaches, improving development efficiency and enabling broader accessibility to non-programmers. This simplifies updating game mechanics and allows modders to create custom content easily.

Summarize:
Share:
Stars
631
Forks
57
Issues
45
Created
4 years ago
Commit
27 days ago
License
APACHE-2.0
Archived
No
Updated 16 days ago

Similar Repositories