172
submitted 1 month ago by [email protected] to c/[email protected]

Bought the device a few days ago and wanted to share the experience of running a Bevy game on it. I developing an open source life simulation game called Project Harmonia. The game is at the prototype stage: you can build walls, place objects and move around, but no no actual gameplay loop.

Bevy engine supports it natively since it's just a regular x86 with GNU/Linux. So nothing special was needed! I compiled the game via Cargo and it works.

The game runs great. I get stable 90 FPS (90Hz is the refresh rate of the device) consuming only 13.1 W. The UI is a little big and controls aren't adapted well for gamepads, but I will fix it later.

The console itself is also a nice machine for development. Next I will write about the setup I use.

As you may know, it runs SteamOS with KDE and based on ArchLinux.

Packages mostly mirror official ArchLinux repositories, but there are some additions and everything is compiled by Valve. So you can even install SuperTuxKart or GNOME πŸ˜ƒ

Another difference from vanilla ArchLinux is immutable file system. You can make it writable via a single command in terminal, but each update wipes all changes made to the system. Home directory remains untouched.

Because of the immutable filesystem, I decided to try Flatpak. It installs packages into the user's home directory. Therefore, such apps won't be removed after an update.

But I faced some limitations due to containerization. For example, the Firefox extension for KeePassXC does not work because apps can't interact with each other. And it's not suited for installing stuff like compilers or libraries. So I decided to explore other options.

Next, I tried to create a script that I planned to run after each update. It installs all the packages I need through the system package manager.

But packages on SteamOS are older then in Archlinux. For example, Neovim on SteamOS is 0.9, but on ArchLinux it's 0.10, so I had to downgrade my configuration. And it causes incompatibilities with AUR. For example, I couldn't install Crow Translate because of it.

Another problem with such script is that Valve nuked /usr/include directory to free space. All packages are present, but the folder is missing. It makes sense for a gaming device, but I need it to compile packages from AUR.

It can be solved by reinstalling all packages that put files into /usr/include. But it causes another problem πŸ˜ƒ Allocated space for / is limited and you quickly run out of space after restoring headers and installing a couple of packages.

Then I decided to try Distrobox. It creates containers that tightly integrated with the host system. It even comes pre-installed on the Steam Deck.

And I like it a lot! It is very easy to use and combines the advantages of both approaches. All packages will persist across updates and I have access to all packages that I have on my regular PC. Graphical apps look native and can interact with each other.

The game on photos was compiled on the Steam Deck πŸ₯°

54
submitted 1 month ago by [email protected] to c/[email protected]

Bought the device a few days ago and wanted to share the experience of running a Bevy game on it. I developing an open source life simulation game called Project Harmonia. The game is at the prototype stage: you can build walls, place objects and move around, but no no actual gameplay loop.

Bevy engine supports it natively since it's just a regular x86 with GNU/Linux. So nothing special was needed! I compiled the game via Cargo and it works.

The game runs great. I get stable 90 FPS (90Hz is the refresh rate of the device) consuming only 13.1 W. The UI is a little big and controls aren't adapted well for gamepads, but I will fix it later.

The console itself is also a nice machine for development. Next I will write about the setup I use.

As you may know, it runs SteamOS with KDE and based on ArchLinux.

Packages mostly mirror official ArchLinux repositories, but there are some additions and everything is compiled by Valve. So you can even install SuperTuxKart or GNOME πŸ˜ƒ

Another difference from vanilla ArchLinux is immutable file system. You can make it writable via a single command in terminal, but each update wipes all changes made to the system. Home directory remains untouched.

Because of the immutable filesystem, I decided to try Flatpak. It installs packages into the user's home directory. Therefore, such apps won't be removed after an update.

But I faced some limitations due to containerization. For example, the Firefox extension for KeePassXC does not work because apps can't interact with each other. And it's not suited for installing stuff like compilers or libraries. So I decided to explore other options.

Next, I tried to create a script that I planned to run after each update. It installs all the packages I need through the system package manager.

But packages on SteamOS are older then in Archlinux. For example, Neovim on SteamOS is 0.9, but on ArchLinux it's 0.10, so I had to downgrade my configuration. And it causes incompatibilities with AUR. For example, I couldn't install Crow Translate because of it.

Another problem with such script is that Valve nuked /usr/include directory to free space. All packages are present, but the folder is missing. It makes sense for a gaming device, but I need it to compile packages from AUR.

It can be solved by reinstalling all packages that put files into /usr/include. But it causes another problem πŸ˜ƒ Allocated space for / is limited and you quickly run out of space after restoring headers and installing a couple of packages.

Then I decided to try Distrobox. It creates containers that tightly integrated with the host system. It even comes pre-installed on the Steam Deck.

And I like it a lot! It is very easy to use and combines the advantages of both approaches. All packages will persist across updates and I have access to all packages that I have on my regular PC. Graphical apps look native and can interact with each other.

The game on photos was compiled on the Steam Deck πŸ₯°

17
submitted 1 month ago by [email protected] to c/[email protected]

I recently received a Steam Deck and I love it!

I also planning to use it for development. On my PC I get used to Fish shell and usually use it instead of Bash. I can install it on Steam Deck and set it to the default shell, but after a system update it will be wiped. I can create a script and run it after each update, will I be able to login if my user points to /usr/bin/fish that doesn't exist in the system?..

7
submitted 1 month ago by [email protected] to c/[email protected]

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

25
Object side snapping (files.mastodon.social)
submitted 1 month ago by [email protected] to c/[email protected]

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.

150
submitted 2 months ago by [email protected] to c/[email protected]
13
submitted 2 months ago* (last edited 2 months ago) by [email protected] to c/[email protected]

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

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

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

17
Bevy Playground (learnbevy.com)
submitted 3 months ago* (last edited 3 months ago) by [email protected] to c/[email protected]

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.

111
Bevy on PinePhone Pro (files.mastodon.social)
submitted 3 months ago by [email protected] to c/[email protected]

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.

32
Bevy on PinePhone Pro (files.mastodon.social)
submitted 3 months ago* (last edited 3 months ago) by [email protected] to c/[email protected]

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.

19
Bevy Foundation (bevyengine.org)
submitted 4 months ago by [email protected] to c/[email protected]
[-] [email protected] 10 points 4 months ago

Can't wait to review PRs from my Mastodon or Lemmy account 😁

[-] [email protected] 14 points 4 months ago

Why did half the world decide SMS needed to be replaced with a proprietary app

SMS is even worse in terms of openness. You won't find a modem that runs open source baseband firmware. It's because the radios are subject to several regulations which means customers can't be able to modify that firmware.

[-] [email protected] 12 points 5 months ago* (last edited 5 months ago)

Yes, I just kept the original title of the video.

[-] [email protected] 9 points 5 months ago* (last edited 5 months ago)

Screen sharing is different thing, there is no fragmentation there.

But in order to take screenshot I had to write different code:

For Gnome.

For KDE. It also requires special line in desktop file for security reasons.

For all other DEs.

Global shortcuts are even worse. It also DE specific and users have to manually register them in DE settings. In order for your application to support this, it should export such functions via the Dbus interface. And all this incompatible with Windows (my app is cross-platform), so I had to provide in-app interface for global shortcuts too that works for Windows and X11 users.

[-] [email protected] 14 points 5 months ago

Didn't know about Sponsorblock, cool!

[-] [email protected] 9 points 8 months ago

I never reinstall and always recover. Even when migrating from notebook to PC I just dd-ed it and fixed fstab. My current system is 5 years old :)

[-] [email protected] 9 points 8 months ago* (last edited 8 months ago)

I see how it can be convenient for some distros to get the latest version or install something that is not in the official repo.

But I use ArchLinux and we always have latest versions and big repo + AUR, so I never used universal packages.

[-] [email protected] 12 points 10 months ago

Probably one of the best games for NES with co-op. Played with my firends when I was a child, so much fun.

[-] [email protected] 13 points 10 months ago

I'm not American, so I curious why they have only two parties?

[-] [email protected] 13 points 11 months ago

Sorry, forgot that I need to use exclamation mark: [email protected]

[-] [email protected] 14 points 11 months ago* (last edited 11 months ago)

See @linuxphones. I have PP and PPP. I run ArchLinux. PP is slow, but the battery lasts a bit better then PPP. PPP is more powerful, but CPU is too hungry and the phone heats a lot. If you need long battery life or you type a lot, then buy with the Pine keyboard. It's chunky and have some quality issues, but I would say it worth it. Software currently immature. I would recommend buying only if you are a very experienced user.

[-] [email protected] 9 points 11 months ago

End of the article mentions the following:

Android was not mentioned by either Arm or Collobora, so I’d assume Arm will still focus their resources and provide closed-source Mali GPU drivers for Android, while expanding their support for Panfrost on Linux.

view more: β€Ή prev next β€Ί

Shatur

joined 2 years ago