Spyke
bevy·Bevy EnginebyShatur

Bevy running on Playdate

Thanks to ongoing work on no_std, people continue to try running Bevy on unusual platforms.

Today, @Mathspy from Discord managed to run it on the Playdate:

For what it's worth, Bevy's app, ECS, math, state work on the playdate with no patches
And Bevy's time works with a minor patch https://github.com/bevyengine/bevy/pull/17577

For rendering they're making playdate render calls in PostUpdate: https://github.com/Mathspy/bevydate/blob/1b4f02adcde079cf9757fd3c7d20331c9ab04513/src/lib.rs#L429-L441

https://imgur.com/a/owTdN99Open linkView original on lemmy.ml
bevy·Bevy EnginebyShatur

Bevy running on GameBoy Advance

Post from @bushRAT in Discord:

Thanks to the ever growing support for no_std in Bevy, I'm now able to use Bevy on the GameBoy Advance! Using the current main branch (which will be included for 0.16!) you can use a crate like agb (and some boilerplate I'm hiding) to write GameBoy Advance games almost as easily as you would for any other Bevy platform. Systems, plugins, resources, queries, the gamepad input API, it all just works. See the attached ROM if you have a GameBoy Advance emulator handy, but I recommend the MGBA emulator as it can also show debug logs (yes, even all the logging just works)

Links to GBA files:

If you have a real GBA or an FPGA console, the author will appreciate if you try :)

Repository: https://github.com/bushrat011899/bevy_agb_test

https://imgur.com/a/bevy-running-on-gameboy-advance-A8JNBuzOpen linkView original on lemmy.ml
bevy·Bevy EnginebyShatur

🎮 Bevy Enhanced Input 0.1.0 is out!

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, or Attack.
  • Assign actions to different contexts like OnFoot or InCar, 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.

📦bevy_enhanced_replicon

🎮 Bevy Enhanced Input 0.1.0 is out!https://github.com/projectharmonia/bevy_enhanced_inputOpen linkView original on lemmy.ml
bevy·Bevy EnginebyShatur

🧬 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:

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, replicate Transform 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 have app.replicate::<Transform>(), but if Player component is present, (Transform, Player) will take precedence. In the next release we planning to support With and Without 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.

📜Full changelog 📦bevy_replicon 📦bevy_replicon_renet

View original on lemmy.ml
bevy·Bevy EnginebyShatur

🧬 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 with renet via bevy_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_replicon 📦bevy_replicon_renet

View original on lemmy.ml
bevy | Spyke