Shatur

joined 3 years ago
MODERATOR OF
 

Not the author, but I found this nice article and wanted to share it ๐Ÿ™‚

 

It's an input manager crate for Bevy, inspired by Unreal Engine Enhanced Input. We use it for Project Harmonia, but itโ€™s general-purpose.

I love our trigger-based API, but the push-style API needed improvement. Previously, users had to read values from a resource - unergonomic and a bit confusing.

Now, contexts are components! This makes our push-style API similar to LWIM while keeping all the trigger-based ergonomics ๐Ÿ™‚

See more details in the PR.

I recently received blessing from Alice (author of LWIM) to upstream this crate as a future Bevy input abstraction. But first, we need to polish the API - it's much easier to iterate on while in a separate crate.

 

It's an input manager crate for Bevy, inspired by Unreal Engine Enhanced Input. We use it for Project Harmonia, but itโ€™s general-purpose.

I love our trigger-based API, but the push-style API needed improvement. Previously, users had to read values from a resource - unergonomic and a bit confusing.

Now, contexts are components! This makes our push-style API similar to LWIM while keeping all the trigger-based ergonomics ๐Ÿ™‚

See more details in the PR.

I recently received blessing from Alice (author of LWIM) to upstream this crate as a future Bevy input abstraction. But first, we need to polish the API - it's much easier to iterate on while in a separate crate.

 

Itโ€™s a crate for server-authoritative networking. We use it for Project Harmonia, but it's general-purpose.

A small release with improvements to the messaging backends API and ergonomics. I wanted to draft these changes before Bevy 0.16 to simplify the migration.

I also drafted a new RC release that supports Bevy 0.16 with no_std support! Nothing is feature-gated, the crate now completely no_std. Aeronet's author is working on bringing no_std support to aeronet, so you should be able to use it together with Replicon for some unusual platforms soon ๐Ÿ™‚

๐Ÿ“œFull changelog ๐Ÿ“ฆbevy_replicon

 

Itโ€™s a crate for server-authoritative networking. We use it for Project Harmonia, but it's general-purpose.

A small release with improvements to the messaging backends API and ergonomics. I wanted to draft these changes before Bevy 0.16 to simplify the migration.

I also drafted a new RC release that supports Bevy 0.16 with no_std support! Nothing is feature-gated, the crate now completely no_std. Aeronet's author is working on bringing no_std support to aeronet, so you should be able to use it together with Replicon for some unusual platforms soon ๐Ÿ™‚

๐Ÿ“œFull changelog ๐Ÿ“ฆbevy_replicon

 

It's a crate for dynamic and contextual input mappings for Bevy, inspired by Unreal Engine Enhanced Input. We use it for Project Harmonia, but it's general-purpose.

After some brainstorming with Alice (the author of LWIM), I replaced trait-based context creation with triggers. It was quite a significant refactor, but defining reloadable bindings in observers is so convenient.

There are also other minor ergonomic improvements and bugfixes. See the changelog for more details.

๐Ÿ“œFull changelog ๐Ÿ“ฆbevy_enhanced_input

 

It's a crate for dynamic and contextual input mappings for Bevy, inspired by Unreal Engine Enhanced Input. We use it for Project Harmonia, but it's general-purpose.

After some brainstorming with Alice (the author of LWIM), I replaced trait-based context creation with triggers. It was quite a significant refactor, but defining reloadable bindings in observers is so convenient.

There are also other minor ergonomic improvements and bugfixes. See the changelog for more details.

๐Ÿ“œFull changelog ๐Ÿ“ฆbevy_enhanced_input

 

Fascinating work done by a community member, which strongly suggests that the Retroid Pocket Mini may in fact just be a 3.92" 1080x1240 AMOLED panel (same as in upcoming RP Classic) but with part of the panel hidden to achieve a 4:3 aspect ratio.

 

Fascinating work done by a community member, which strongly suggests that the Retroid Pocket Mini may in fact just be a 3.92" 1080x1240 AMOLED panel (same as in upcoming RP Classic) but with part of the panel hidden to achieve a 4:3 aspect ratio.

 

Itโ€™s a crate for server-authoritative networking. We use it for Project Harmonia, but it's general-purpose.

Notable changes

  • Connected clients are now represented as entities.
    • All related APIs are now component-based.
    • Entity is used to refer to a client everywhere, but ClientId is still present as a persistent identifier across reconnects.
    • Fast iteration and O(1) lookups.
    • Users can insert their own components or even replicate these entities.
    • Simplifies messaging backend integration.
  • Switch from bincode to postcard.
    • Better varint serialization to save bandwidth.
    • Opens the door for no_std support after the 0.16 release.

I also rewrote the quick start guide. My recent talk at Bevy Meetup #9 helped me with this. It now contains much more information, including details on how to write a messaging backend or implement client-side prediction. I also tried to make it as user-friendly as possible. Feedback about it is highly appreciated!

๐Ÿ“œFull changelog ๐Ÿ“ฆbevy_replicon

 

Itโ€™s a crate for server-authoritative networking. We use it for Project Harmonia, but it's general-purpose.

Notable changes

  • Connected clients are now represented as entities.
    • All related APIs are now component-based.
    • Entity is used to refer to a client everywhere, but ClientId is still present as a persistent identifier across reconnects.
    • Fast iteration and O(1) lookups.
    • Users can insert their own components or even replicate these entities.
    • Simplifies messaging backend integration.
  • Switch from bincode to postcard.
    • Better varint serialization to save bandwidth.
    • Opens the door for no_std support after the 0.16 release.

I also rewrote the quick start guide. My recent talk at Bevy Meetup #9 helped me with this. It now contains much more information, including details on how to write a messaging backend or implement client-side prediction. I also tried to make it as user-friendly as possible. Feedback about it is highly appreciated!

๐Ÿ“œFull changelog ๐Ÿ“ฆbevy_replicon

 

For the past few days, I've been working on the ultimate quick-start guide for bevy_replicon.

It now contains much more information, including details on how to write a messaging backend or implement client-side prediction. My talk at the last Bevy meetup helped me with this. Any feedback is appreciated ๐Ÿ™‚

[โ€“] [email protected] 12 points 4 weeks ago

I couldn't wait, so read all available comics on the website ๐Ÿ™‚

[โ€“] [email protected] 6 points 1 month ago

Ah, I thought it's about Valve's Proton ๐Ÿ˜…

[โ€“] [email protected] 2 points 1 month ago* (last edited 1 month ago)

Sims

No promises, but I actually working on one ๐Ÿ˜… See this comment.

[โ€“] [email protected] 4 points 1 month ago* (last edited 1 month ago)

Same! There are almost no proprietary alternatives either!

It's funny that the first comment is about The Sims ๐Ÿ˜… My wife and I are working on a life simulation game in Rust using Bevy. I've been working on it for almost a year, and feeling a we are feeling a bit demotivated recently. So right now I took a small "break" and focus on improving crates that I used inside the game (input management and networking). I know the project is quite ambitious, but I've always wanted to create something like this. Seeing this many upvotes on your comment is quite encouraging ๐Ÿ™‚

I post my progress at [email protected] and here is the GitHub page. The project name is a placeholder. I haven't managed to come up with a nice name yet.

[โ€“] [email protected] 9 points 1 month ago (2 children)

A federated MMO would be interesting! But cheating might be a concern. Anyone could create a server with fully-equipped character and just federate.

But maybe servers could whitelist trusted servers? ๐Ÿค”

[โ€“] [email protected] 2 points 1 month ago (1 children)

Never heard about it, but looks cool!

[โ€“] [email protected] 3 points 1 month ago

A president simulator? This sounds great! Never heard about these games, thanks for sharing!

[โ€“] [email protected] 1 points 1 month ago

I have a special trait that generates a reverse command. And store a stack of commands. Here is the source.

I presume you donโ€™t delete the entities on undo but hide them instead?

No, I do a full despawn. Just remember it's data to spawn again thanks to the mentioned trait.

[โ€“] [email protected] 4 points 1 month ago (1 children)

How do the buttons feel?

[โ€“] [email protected] 5 points 2 months ago

The difference is the same as between Bevy's regular triggers and events. We aim to mirror the Bevy API and simply make it networked.

Events are buffered and pull-style, while triggers are called on commands flush and can target entities and components. Triggers were introduced in Bevy 0.14. Generally, you should use triggers for events that happen rarely and events for things that need to be processed in batches.

[โ€“] [email protected] 1 points 2 months ago (1 children)

Ah, you are right. But I didn't know where to upload them. What would you use for files?

[โ€“] [email protected] 2 points 2 months ago

Just additional supported platform for the engine. This also showcases how flexible Bevy is - I don't think you can port Unreal Engine, Unity or even Godot to GBA.

It's possible thanks to the ongoing work on no_std support for Bevy. This simplifies porting to other platforms.

view more: next โ€บ