Bevy Engine
- 🎮 Bevy Enhanced Input 0.1.0 is out!github.com GitHub - projectharmonia/bevy_enhanced_input: Dynamic and contextual input mappings for Bevy
Dynamic and contextual input mappings for Bevy. Contribute to projectharmonia/bevy_enhanced_input development by creating an account on GitHub.
It's a crate for dynamic and contextual input mappings for Bevy, inspired by Unreal Engine Enhanced Input.
I really like the UE approach and decided to bring it to Bevy.
Despite being the first release, it's packed with features:
- Map inputs from various sources (keyboard, gamepad, etc.) to gameplay actions like
Jump
,Move
, orAttack
. - Assign actions to different contexts like
OnFoot
orInCar
, which are regular components. - Activate or deactivate contexts by simply adding or removing components.
- Control how actions accumulate input from sources and consume it.
- Layer multiple contexts on a single entity, controlled by priority.
- Apply modifiers to inputs, such as dead zones, inversion, scaling, etc., or create custom modifiers by implementing a trait.
- Assign conditions for how and when an action is triggered, like "hold", "tap", "chord", etc. You can also create custom conditions, such as "on the ground".
- React on actions with observers.
I've implemented everything from UE and even added some extras. The crate also has ~90% test coverage.
- Map inputs from various sources (keyboard, gamepad, etc.) to gameplay actions like
- Bevy 0.14bevyengine.org Bevy 0.14
Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!
- 🧬 Bevy Replicon 0.25.0 is out!
It's a crate for server-authoritative networking.
We worked closely with the author of
bevy_bundlication
on this release to provide better abstractions for third party plugins on top of replicon. Here are some highlights:Previously, users registered a component for replication and it was replicated if its entity was marked for replication. But this approach is quite limited. Now users can define replication rules similar to queries:
rust app.replicate_group::<(Transform, Player)>() // `Transform` and `Player` components will be replicated only if both present on an entity.
And it's possible to specialize ser/de for such groups. For example, replicateTransform
in one way for players and in another way for static objects. Groups with more components take priority by default (but it's configurable). So it's also possible to haveapp.replicate::<Transform>()
, but ifPlayer
component is present,(Transform, Player)
will take precedence. In the next release we planning to supportWith
andWithout
to let define something like this:app.replicate_group::<(A, B), Without<C>>()
.Also check out 📦bevy_bundlication which is now an abstraction over replicon that provides a bundle-like API for defining replication groups.
Custom replication functions was also heavily reworked:
- Public API no longer requires any
unsafe
. - Deserialization and writing now defined separately. This allows rollback crates to define their logic without touching user-defined ser/de functions.
- Writing now based on markers for more flexibility.
- Users can customize deserialization in-place.
The author of
bevy_bundlication
also developing input queue and rollback plugins, but they require an API for disabling entities from Bevy. If you are interested in this or have other suggestions how to achieve it, feel free to comment on this issue. - Public API no longer requires any
- Bevy Foundationbevyengine.org Bevy Foundation
Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!
- 🧬 bevy_replicon v0.24.0 is out!
This release is big! We abstracted out all I/O and
renet
dependency. We will continue to provide first-party integration withrenet
viabevy_replion_renet
.But now users can write their own integration with other messaging libraries. Refer to the documentation for instructions on how to do it, the process is very simple. See
bevy_replicon_renet
as an example.This also opens up the possibility of simultaneously using multiple messaging libraries on the server, as long as the client identifiers they provide are unique.
See the changelog for a full list of changes.
- Bevy 0.13bevyengine.org Bevy 0.13
Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!
- 🧬 bevy_replicon v0.22.0 is out!
It's a high level networking crate for the Bevy game engine.
Now mapped client events will not be drained and will behave exactly like other events. But it's a small breaking change since such events now require a
Clone
impl.See the changelog for a full list of changes.
- Bevy 0.12bevyengine.org Bevy 0.12
Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!
- How can I make my game start after a certain asset has loaded?
the title says it all, but if you want a little more context, I got a 1024*6 px skybox, and the game starts before it loads, making it appear suddenly while the game is already running
- Bevy's Third Birthdaybevyengine.org Bevy's Third Birthday
Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!
- How do I use the correct licensing?
I recently made a library for bevy, and want it to be available under the same dual license as bevy. What i've done is created both licence files and copy-pasted the contents, as well as copy the license sections from another bevy project. Is this all I need to do? I'm not a lawyer and am very new to all of this.
- Bevy 0.11bevyengine.org Bevy 0.11
Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!