this post was submitted on 05 Jun 2024
177 points (96.3% liked)

Steam Deck

14892 readers
81 users here now

A place to discuss and support all things Steam Deck.

Replacement for r/steamdeck_linux.

As Lemmy doesn't have flairs yet, you can use these prefixes to indicate what type of post you have made, eg:
[Flair] My post title

The following is a list of suggested flairs:
[Discussion] - General discussion.
[Help] - A request for help or support.
[News] - News about the deck.
[PSA] - Sharing important information.
[Game] - News / info about a game on the deck.
[Update] - An update to a previous post.
[Meta] - Discussion about this community.

Some more Steam Deck specific flairs:
[Boot Screen] - Custom boot screens/videos.
[Selling] - If you are selling your deck.

These are not enforced, but they are encouraged.

Rules:

Link to our Matrix Space

founded 3 years ago
MODERATORS
 

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 πŸ₯°

top 10 comments
sorted by: hot top controversial new old
[–] SirMino@feddit.it 15 points 5 months ago (1 children)

that's interesting, never tried distrobox I have to look into it. thank you for sharing!

[–] Telorand@reddthat.com 5 points 5 months ago

It's a practical necessity on immutabile systems. I would also recommend Flatseal and BoxBuddy to manage your various containers, both of which you can get on Flathub.

[–] drdiddlybadger@pawb.social 9 points 5 months ago

Hell yeah man. That's cool.

[–] xnx@slrpnk.net 8 points 5 months ago (1 children)

Whats Bevy development like so far? Really interested in the engine but until theres a gui way to make games I don’t think it will get nearly as much love as Godot has been getting

[–] Shatur@lemmy.ml 1 points 5 months ago

It's fun if you like Rust and ECS. API design is very ergonomic and gives you a lot of control.

But the engine is a bit immature. So I would generally suggest to stick with Godot for now, it's a great engine as well.

[–] LucidNightmare@lemm.ee 7 points 5 months ago

Thanks for the in depth post! We definitely need more competition in the Sims-like area of indie games!

[–] Fubarberry@sopuli.xyz 6 points 5 months ago (1 children)

In addition to distrobox, the Deck now supports the nix package manager which might be another good option.

Although tbh, I haven't actually tried nix yet.

[–] Shatur@lemmy.ml 4 points 5 months ago

Ah, I didn't know!

[–] refalo@programming.dev 3 points 5 months ago (1 children)

protip: drop the word Project from the game title, sounds cooler without it

[–] Shatur@lemmy.ml 4 points 5 months ago

I used "Project" to emphasis the the name is temporary. Yes, I also like "Harmonia", but such game already exists 😒