I've been learning Bevy and LOVING IT, there's only one thing confusing me. Many components appear to be created magically even if not specified in the Bundle passed to commants.spawn.
For example, when I spawn just a Sprite component, the entity seems to automatically get a Transform component, even if I didn't give it one.
Similarly, this example spawns a Screenshot component, which apparently results in a Capturing component that can be queried later.
Are these "implicit" components documented somewhere? I took a short look at the TransformPlugin for example but I can't seem to figure out where these components come from.
Added
Support for no_std.
Relationships networking. Use SyncRelatedAppExt::sync_related_entities<C> to ensure that entities related by C are replicated in sync.
Seamless support for immutable comp...
Link Actions
It鈥檚 a crate for server-authoritative networking. We use it for Project Harmonia, but it's general-purpose.
Highlights:
Relationships networking. Use relationships to specify which entities should be replicated in a single message.
Immutable components support. Replication is automatically applied via insertion for them.
replicate_mapped now deprecated. Regular replicate now works for all components.
Support for no_std and environments without atomic CAS, such as thumbv6m.
Added
InputContext::Schedule to control the schedule in which the context will be evaluated.
Changed
Update to Bevy 0.16.
Link Actions
It's an input manager for Bevy, inspired by Unreal Engine Enhanced Input.
We use it for Project Harmonia, but it's general-purpose.
This is a double release to make migrating to Bevy 0.16 easier for users:
v0.10.0 targets Bevy 0.15. It replaces the confusing GamepadStick preset with the much more flexible Axial preset, and introduces Clamp modifier.
v0.11.0 updates to Bevy 0.16 with no breaking changes. It adds support for no_std and per-context schedule configuration (useful for networking), which wasn't possible to implement in 0.15.
Added
ActionSources resource to control which input sources are visible to actions.
Changed
Rename InputContext into Actions<C> with its module. Now it's a component. Since a single entity could...
Link Actions
It's an input manager for Bevy, inspired by Unreal Engine Enhanced Input.
We use it for Project Harmonia, but it's general-purpose.
This release contains many changes, most notably the component-based API for contexts.
We've also reworked the documentation, now including a quick-start guide that walks you through the API.
We would appreciate your feedback 馃檪
I've been playing around with Bevy for a while and finally thought it worth sharing the progress I've made.
Konstruo is a standalone scenario based town building game giving you the freedom to build villages, towns, and cities with intuitive urban planning tools.
You'll need to overcome complex constraints to plan an optimal community for different sites.
Right now it only has the absolute basics of a prototype.
A straightforward stateful input manager for the Bevy game engine. - Leafwing-Studios/leafwing-input-manager
Link Actions
It's an input manager crate for Bevy, inspired by Unreal Engine Enhanced Input. We use it for Project Harmonia, but it鈥檚 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.
Added
RemoteEventRegistry to get channels for remote triggers and events.
ConditionerConfig for bevy_replicon_example_backend to simulate various network conditions.
Changed
Rename ChannelKind i...
Link Actions
It鈥檚 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 馃檪
Added
Implement Display for Input and ModKeys.
ModKeys::pressed to get currently active modifiers.
Changed
Rename ContextInstance into InputContext. InputContext is no longer a trait. Bindings n...
Link Actions
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.
Added
Derive Debug for FnsId.
Derive Deref and DerefMut to underlying event in ToClients and FromClient.
Derive PartialEq for RepliconClientStatus.
SerializeCtx::type_registry and WriteCtx::type_r...
Link Actions
It鈥檚 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 p
It鈥檚 a crate for server-authoritative networking. We use it for Project Harmonia, but it's general-purpose.
Kinda our 30th anniversary 馃槄 This release introduces remote triggers. The API is similar to our networked events. Here鈥檚 a quick showcase for client triggers:
Server triggers have a similar API. Targeting entities is also supported.
We now also provide an example backend and examples that directly from the bevy_replicon repo.
The examples have also been re-written to take advantage of the latest Bevy and Replicon features.
Refined the bindings menu for my game and ported it into a standalone example for bevy_enhanced_input.
Alice (the author of LWIM) and I quite like the main concepts of the crate, and we鈥檙e planning to refine it further to create the ultimate input manager 馃檪
Discover the magic of the internet at Imgur, a community powered entertainment destination. Lift your spirits with funny jokes, trending memes, entertaining gifs, inspiring stories, viral videos, and so much more from users.
Link Actions
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:
undefined
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
I decided to implement remote triggers on top of events to reuse existing logic.
Unlike events, we can't simply observe and re-trigger, as we need
access to all targets. To address this, we pro...
Link Actions
Spend last week working on remote triggers for bevy_replicon.
Tried many approaches and finally satisfied with the implementation and public API.
Discover the magic of the internet at Imgur, a community powered entertainment destination. Lift your spirits with funny jokes, trending memes, entertaining gifs, inspiring stories, viral videos, and so much more from users.
Link Actions
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)
Added
InputAction::REQUIRE_RESET switch to require inputs to be zero before the first activation and continue to consume them even after context removal until inputs become zero again. Previously,...
Link Actions
It's a crate for dynamic and contextual input mappings for Bevy, inspired by Unreal Engine Enhanced Input.
Actions now have a parameter that requires inputs to reset to zero before activation and continue consumption after context removal until they return to zero. This is very useful if you want to use the same input to toggle between contexts.
Changed
Replace SmoothDelta modifier with SmoothNudge. It uses StableInterpolate::smooth_nudge, which properly interpolates inputs across frames.
Rename InputContext::get into InputContext::get_co...
Link Actions
It's a crate for dynamic and contextual input mappings for Bevy, inspired by Unreal Engine Enhanced Input.
It's a small release. I'm quite happy with the API, just wanted to make a few adjustments.
Here are some highlights:
Replace SmoothDelta modifier with SmoothNudge. It uses StableInterpolate::smooth_nudge, which properly interpolates inputs across frames.
Remove InputContext::MODE. All contexts now work like InputContext::Exclusive (the default). If you want to share the same input across multiple entities, use a separate "controller" entity for a context and apply inputs to the desired entities. This approach is more efficient and explicit, so it's not worth having a special case in the crate for it.