Skip Navigation
Posts
151
Comments
249
Joined
3 yr. ago
Project Harmonia @lemmy.ml
Shatur @lemmy.ml

Immutable components support in bevy_replicon

Bevy 0.16 is around the corner with many exciting features!

I'm currently working on adding support for some of them in my networking crate, bevy_replicon.

I just finished implementing immutable component support.

Next up: relations! I outlined the idea in this comment. Hope I can get it implemented before the 0.16 release 🙂

As for my game, I'm considering making an interesting announcement about it soon.

Project Harmonia @lemmy.ml
Shatur @lemmy.ml

🎮 Bevy Enhanced Input 0.9.0 is out!

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 🙂

📜Full changelog 📦bevy_enhanced_input

Project Harmonia @lemmy.ml
Shatur @lemmy.ml

🎮 Bevy Enhanced Input 0.9.0 is out!

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 🙂

📜Full changelog 📦bevy_enhanced_input

Project Harmonia @lemmy.ml
Shatur @lemmy.ml

Component-style API for bevy_enhanced_input

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.

Project Harmonia @lemmy.ml
Shatur @lemmy.ml

🧬 Bevy Replicon 0.32.0 is out!

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

Project Harmonia @lemmy.ml
Shatur @lemmy.ml

🎮 Bevy Enhanced Input 0.8.0 is out!

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

Retro Handhelds @sh.itjust.works
Shatur @lemmy.ml

Investigating the Retroid Pocket Mini's Display

bitbuilt.net Discussion - Investigating the Retroid Pocket Mini's Display

A few months ago, some Retroid Pocket Mini users began reporting issues with the Mini's display. Apparently, when using high density CRT shaders, content was not reflecting the advertised 1280x960 resolution of the 3.7" AMOLED panel. Instead, people were seeing an effective vertical resolution...

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.

SBC Gaming @lemmy.ml
Shatur @lemmy.ml

Investigating the Retroid Pocket Mini's Display

bitbuilt.net Discussion - Investigating the Retroid Pocket Mini's Display

A few months ago, some Retroid Pocket Mini users began reporting issues with the Mini's display. Apparently, when using high density CRT shaders, content was not reflecting the advertised 1280x960 resolution of the 3.7" AMOLED panel. Instead, people were seeing an effective vertical resolution...

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.

Project Harmonia @lemmy.ml
Shatur @lemmy.ml

🧬 Bevy Replicon 0.31.0 is out!

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 p

Project Harmonia @lemmy.ml
Shatur @lemmy.ml

The ultimate quick start guide for 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 🙂

  • I couldn't wait, so read all available comics on the website 🙂

  • Game Development @lemmy.ml
    Shatur @lemmy.ml

    Exposing The Scummiest Game Publisher...

    Some people steal games from itch.io, add some AI crap to them, and put them on console stores.

  • Ah, I thought it's about Valve's Proton 😅

  • Project Harmonia @lemmy.ml
    Shatur @lemmy.ml

    Reworked the bevy_replicon API for connections

    Previously, I used a special ClientId type to refer to connected clients and stored their data in several resources.

    I wasn't satisfied with this API and decided to try turning them into entities. Now, Entity is the identifier, and components store related data. I'm quite happy with the results, but waiting for a review from the second maintainer: https://github.com/projectharmonia/bevy_replicon/pull/423

    If you have any suggestions or ideas, feel free to comment 🙂

    Just preparing the crate to the upcoming talk at Bevy Meetup #9. Still in a break from actual game development.

    RetroGaming @lemmy.world
    Shatur @lemmy.ml

    Vice City NextGen Edition - A Port Against All Odds

    Terraria @lemmy.ml
    Shatur @lemmy.ml

    RetroAchievements adds Terraria support

    RetroAchievements @retrolemmy.com
    Shatur @lemmy.ml

    RetroAchievements adds Terraria support

    Project Harmonia @lemmy.ml
    Shatur @lemmy.ml

    Bevy Meetup #9

    It's a virtual meetup about Bevy, and I will be one of the speakers!

    My topic will be Networking in Bevy with ECS replication, where I'll talk about bevy_replicon and networking in general.

    I'm currently focused on crates that I use in the game, just to take a small break from the project. But I hope to get back to it soon :)

  • I heard good things about Veloren. It's not a classical MMO, but I think it qualifies as one.

  • Sims

    No promises, but I actually working on one 😅 See this comment.

  • 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.

  • 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? 🤔

  • Never heard about it, but looks cool!

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

  • Also wanted something like this! Maybe for MMO it will be easier to create a re-implementation 🤔 Because it's not only hard to develop, but also hard to fill with content.

  • OpenSourceGames @lemmy.ml
    Shatur @lemmy.ml

    For which game would you most like to see a FOSS alternative?

    Just curious 🙂

  • How do the buttons feel?

  • Europe @lemmy.ml
    Shatur @lemmy.ml
    Project Harmonia @lemmy.ml
    Shatur @lemmy.ml

    🧬 Bevy Replicon 0.30.0 is out!

    It’s 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’s a quick showcase for client triggers:

     rust
        
    app.add_client_trigger::<DummyEvent>(ChannelKind::Ordered)
        .add_observer(receive_events)
        .add_systems(Update, send_events.run_if(client_connected));
    
    fn send_events(mut commands: Commands) {
        commands.client_trigger(DummyEvent);
    }
    
    fn receive_events(trigger: Trigger<FromClient<DummyEvent>>) {
        info!("received event {:?} from {:?}", trigger.event, trigger.client_id);
    }
    
    
      

    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.

    📜[Full changelog](https://github.com/projectharmonia/bevy_rep

    Project Harmonia @lemmy.ml
    Shatur @lemmy.ml

    Refined the bindings menu

    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’re planning to refine it further to create the ultimate input manager 🙂

  • That's sad 😢

    I heard that the antenna issue can be fixed manually, but it's not an easy fix.

  • This is weird. I saw an announcement on Discord that they finished shipping all devices in November 2024.

  • Yes, this managed to ship all devices in November 2024.

  • You can run Droidian, which is galium-based (special Android compatibility layer to talk to hardware).

    Running on mainline is also possible, but the support is not great. Here is the PMOS page.

  • Yeah, I heard that many units have antenna issue. Before buying I asked the seller to test it for me. My unit was unaffected by the issue.

    Yeah, the situation with the company is not great.

    Big thanks to the guy keeping lineage working on it!

    There actually 4 maintainers for this device! It was a surprise for me. Usually it's 1 guy.

  • I considered their Astra or Communicator, but they don’t support LineageOS, which is important to me.

  • True 😥 Did you broke yours?

  • Yeah...

    I wish companies produce more phones like this.

  • Try looking at their unofficial Discord server. It's usually cheaper then on eBay. But ask to test the antenna, some units have issues with that.

  • Same. But recently I managed to buy almost new for 300 EUR.

    I only recently started using it, so maybe later I will make a post about it :)