Bevy

296 readers
3 users here now

A community for discussion around the bevy game engine! https://bevyengine.org/

founded 1 year ago
MODERATORS
51
 
 

cross-posted from: https://mastodon.social/users/Shatur/statuses/112508034539087653

It's a crate for server-authoritative networking.

In this release, we have completely reworked the events. We now use an optimization similar to what Bevy does for processing event updates.

The public API for events has not changed, except that custom systems have been replaced with simple serialization and deserialization functions. It’s faster and more convenient.

In addition, all network event registration functions can be used on regular events, automatically making them network events.

πŸ“œFull changelog πŸ“¦bevy_replicon πŸ“¦bevy_replicon_renet

52
26
Object side snapping (files.mastodon.social)
submitted 10 months ago by [email protected] to c/bevy
 
 

cross-posted from: https://mastodon.social/users/Shatur/statuses/112464362803020971

Implemented a special component that allows the sides of objects to snap to others with the same component.

Bevy's gizmo was very helpful in visualizing the math.

53
13
submitted 11 months ago* (last edited 11 months ago) by [email protected] to c/bevy
 
 

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

54
9
Added vintage counter to the game (files.mastodon.social)
submitted 11 months ago by [email protected] to c/bevy
 
 

Working on a life simulator game with a working title Project Harmonia. Just added vintage counter that my wife made to the game. I think it looks quite nice in Bevy.

The same model in Blender: https://toot.garden/@YaraGardaria/112322312099954470

55
 
 

Introducing renet2, a fork of the networking library renet that implements the game-oriented netcode standard.

Highlights:
- Allow netcode servers to manage multiple data sources at once (e.g. UDP sockets and a WebTransport server).
- Add built-in in-memory sockets and WebTransport sockets. You can now run a netcode server with native AND browser clients, with the same exact authentication workflow for all clients (using ConnectTokens).

@bevy

https://github.com/UkoeHB/renet2

#bevy #networking

56
12
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/bevy
 
 

Our very first game at Snowy Road Studios!

Scavenger: Jump around and scavenge for good items! https://snowy-road-studios.itch.io/scavenger

Scavenger came from a small in-house game jam with me (SRS founder koe) and my kid brother. Check the devlog to see how it went: https://snowy-road-studios.itch.io/scavenger/devlog/711861/developing-scavenger.

@bevy

#bevy #gamejam #family

57
17
Bevy Playground (learnbevy.com)
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/bevy
 
 

We've long wanted a Bevy playground, just like the official Rust one, where you can type in code in the browser and quickly mess around with Bevy. Now, thanks to Liam, you can experience this for yourself!

The author is looking for feedback here.

58
59
35
Bevy on PinePhone Pro (files.mastodon.social)
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/bevy
 
 

Bevy can run on Android phones. But what about GNU/Linux phones?
I decided to find out using my PinePhone Pro with RK3399.

Managed to run my game using WGPU_SETTINGS_PRIO=webgl2.
But couldn't get past the main menu due to limited features of the GPU. 😒

But simple 2D games like breakout example runs!

Right now I working on networking for the game, but this evening I decided to tinker with my device a little.

60
6
submitted 1 year ago* (last edited 1 year ago) by mac to c/bevy
61
22
2024 Budget (bevyengine.org)
submitted 1 year ago by mac to c/bevy
62
20
Bevy Foundation (bevyengine.org)
submitted 1 year ago by [email protected] to c/bevy
63
9
Implemented automatic door opening (files.mastodon.social)
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/bevy
 
 

In my initial implementation, doors opened when a character approached them (using a sensor collider). But it looked creepy πŸ˜… Imagine simply walking past the doors and having them open unexpectedly.

In the current implementation, I analyze navigation paths to determine if characters pass through the door, and open it when they approach.

Additionally, I added small visual feedback for wall placement, fine-tuned navigation, adjusted controls, made a few QoL improvements, and fixed a bunch of bugs.

This is for my WIP open source life simulation game under the working title Project Harmonia.

64
 
 

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

65
34
Added windows to my game (cdn.toot.garden)
submitted 1 year ago by [email protected] to c/bevy
 
 

Glad to see that you can import the model from Blender and the transparency just works. Also the index of refraction table in the Bevy docs was very helpful! All models made by my wife πŸ˜…

66
 
 

It's a high level networking crate for the Bevy game engine.

Now we support Bevy 0.13. With this release we now use the improved Bevy's MapEntities trait instead of our custom one. This way users no longer need to define both to make mapping work for scenes and networking.

See the changelog for a full list of changes.

The crate is based on renet, but for the next release we planning to abstract out all I/O. We will continue to provide renet integration via separate bevy_replicon_renet crate. This way other messaging crates can be used by writing a thin integration crate.

πŸ“¦bevy_replicon

67
30
Bevy 0.13 (bevyengine.org)
submitted 1 year ago by mac to c/bevy
68
9
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/bevy
 
 

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_replicon

69
13
Reworked object placing (files.mastodon.social)
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/bevy
 
 

Improved logic and added visual feedback.

Also switched from bevy_rapier to bevy_xpbd. My game only needs collision detection and with bevy_xpbd I can disable unnecessary logic by toggling plugins. So convenient! It was an easy transition since the API is very similar. The author is also very active and helpful.

70
10
Implemented door placement (files.mastodon.social)
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/bevy
 
 

Boolean operations in 3D are quite heavy. But fortunately, each wall can be represented as two 2D planes.

To determine which 2D shape I need to cut from the mentioned planes, I add a special plane in Blender with "Cutout" name. This is what The Sims series do.

And for all doors located on a wall I triangulate combined vertices using earcutr. The library API doesn't fit well with Bevy, but it does the trick.

The project is open source, so if you are interested in the implementation, you can take a look at the wall module. I organize my modules as plugins, so you can copy the module and its submodules into your game with some minor edits and enable WallPlugin.

71
9
Improved wall generation (files.mastodon.social)
submitted 1 year ago by [email protected] to c/bevy
 
 

Now walls are separate meshes and take full advantage of ECS, including change detection to rebuild only changed parts.

The new approach also automatically fixed some bugs and enabled instant update of other walls that were affected by currently spawning wall.

72
73
19
Added UV for generated walls (files.mastodon.social)
submitted 1 year ago by [email protected] to c/bevy
 
 

It was an interesting task and I learned a lot about how meshes are represented internally.

Initially I used 8 vertices for each wall. But then I discovered that if I needed a different color and normal for each side, then I needed a different vertex! So I reworked the mesh generation to make 20 vertices per mesh (for each side with no bottom).

The project is open source, so if you are interested in the implementation, you can take a look at mesh_update_system. I organize my modules as plugins, so you can copy the module and its submodules into your game with some minor edits and enable WallPlugin.

74
11
Added placeable Retro TV object (files.mastodon.social)
submitted 1 year ago by [email protected] to c/bevy
 
 

The model made by @YaraGardaria, was posted before in @[email protected].

Bevy looks quite nice with normal maps and good lighting settings.

75
 
 

It's a high level networking crate for the Bevy game engine.

After quite some R&D from UkoeHB in Discord and I, the library now features entity visibility control for clients!

The new companion crate bevy_replicon_attributes extends replicon visibility with a highly ergonomic attributes-based API.

See the changelog for a full list of changes.

πŸ“¦bevy_replicon
πŸ“¦bevy_replicon_attributes

view more: β€Ή prev next β€Ί