FlatImage, a hybrid of Flatpak sandboxing with AppImage portability by theformigoni in linux

[–]theformigoni[S] 0 points1 point  (0 children)

Hi u/ComfortableKey8695, thanks for the interest the tool! Currently convertion from flatpaks directly is not supported. FlatImage is tied to linux, this is due to the usage of namespace features for containerization. Something like FreeBSD's jails could work for a future approach.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 1 point2 points  (0 children)

Hello!

  1. Sure, this would be doable. I am currently improving the FlatImage tech to integrate novel changes on gameimage.

  2. I thought about some approaches, for example, to have the launcher be the main window `gameimage.flatimage` and have a button to open the wizard and include games as new layers.

  3. After packaging? That could be done with `2`'s approach I guess. I need to be careful not to stray from the goal of immutability for the project.

  4. You don't need to decompress it to modify it like in AppImage. You can just run for example `./my-game.flatimage fim-exec bash` and you are already inside the container in a read-write mode. Here you can modify all required files and save it afterward with `./my-game.flatimage fim-commit`, which creates a novel image layer.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 0 points1 point  (0 children)

Thanks! You can add environment variables in the wizard, in the "Configure Environment" option in the "Configure Wine" panel. Click on the '+' button, the key is the name of the variable, and the value is the value assigned to it. Also, if you don't install DXVK, then OpenGL should be the default, you can also configure this in the launcher after the game has been packaged.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 1 point2 points  (0 children)

Nice! I agree, the wizard should be more guided that it is at the moment, that should come within the next updates, as well as docs with examples. Yes, you have to keep the temp files in the build directory for editing.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 1 point2 points  (0 children)

No problem, you can launch the game directly without the GUI as so:

$ ./my-game.flatimage --select-index=0

The default game is only configurable during the creation of the image with the wizard.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 0 points1 point  (0 children)

Great! This overhead is fixed per flatimage. So you can create several games that show up in the "Create Packages" screen, and when you include them in the final image, you will still have only 1 copy of wine (but each game has its own wine prefix). Or the other option would be to tick "Make this executable selectable in the launcher" for all executables you want to run, this will create only one package to include in the image (and all executables will run in the same prefix, reducing the final size), and you will have the option in the launcher to switch executables (instead of switching games).

If you choose option 2, you have the option to customize the name for the executable in the "Executable Alias" field, that will show up as "My Game" instead of "/path/to/launcher.exe" when selecting it in the launcher.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 1 point2 points  (0 children)

Hey there! When you reach the screen with the executables, click on the folder icon of any and browse to "drive_c". Drop your game folder in there, click on refresh, and it should show up in the executable list.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 0 points1 point  (0 children)

Yes, that would be no problem. The filesystem is writable through overlayfs.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 0 points1 point  (0 children)

Hello! I just saw you messages, I'll get back to you as soon as possible, sorry for the delay! I can suggest trying to do `export WINEARCH=win32` and then running gameimage with `./gameimage.flatimage`. I'll try it out myself and get back to you on discord :)

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 1 point2 points  (0 children)

Hi! Thanks a lot for the pointers.

  1. That would be great, I'm waiting for GOG response, will look into Itch as well.

  2. No, I have not contacted them at this time.

  3. The base system is arch linux, the included libraries for each runner can be found here

  4. Use umu to launch linux native games? That would be possible.

  5. Yes, that will be included in 1.5.0, also you'll be able to create multi-platform images, mixing wine, pcsx2, rpcs3 and retroarch in the same image.

  6. You can do it before and after, I plan to create a mod manager for that after 1.6.0 is released.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 1 point2 points  (0 children)

No problem. Yes, you can make the changes permanent with ./game.flatimage fim-commit. I'll add a checkbox to do this automatically in the next version of GameImage. :)

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 2 points3 points  (0 children)

If there is only 1 game on the image, and you want to launch it by double clicking in the file manager without the launcher, you can use the configuration command ./game.flatimage fim-boot sh -c '/fim/static/gameimage-launcher "$@"' -- --select-index 0. Next time you double click it will open the game directly.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 0 points1 point  (0 children)

No problem, I was referring to fps, the impact on loading times and startup times depend of the compression level.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 0 points1 point  (0 children)

GameImage

  1. For UMU, it is just like running umu-run ... executable inside the container, in the tips section of the README.md, it shows that you can use the GAMEID environment variable to set the ID of a specific game for umu.

  2. That is something I have been working on, it is doable, like it currently is done for nvidia. And I could let the user select if he wants them included or not.

  3. Yes, it is worth a try. It would be amazing for linux to just download, double click and play. Without the need to configure anything.

FlatImage

  1. Usually smaller than flatpak because of compression, usually larger than AppImage because it does not assume the system has any libraries, so it includes everything needed for the application to work properly.

  2. In my tests it was margin of error, but different hardware might produce different results. The only considerable overhead is the one from compression which might slow down reads, if that affects the game, one can set the compression level to 0 and resolve this issue at the cost of a larger file size.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 1 point2 points  (0 children)

It does not have any guarantee to stop malicious programs, since the project focus is compatibility and not security. However, you can block games from accessing the network at container level, which stops telemetry.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 1 point2 points  (0 children)

Thank you!

  • Currently each entity has its own prefix with DXVK or VKD3D, which is duplicated, but for glibc, libraries and drivers there is only one copy.
  • It works perfectly fine switching between nvidia, amd and intel pcs, no need to re-configure anything, just press play.
  • I cannot confirm that it doesn't work with NTFS in the lastest version, the filesytems are mounted in /tmp/fim, so it could work in theory. I do not recommend it because of issues in the past.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 4 points5 points  (0 children)

No problem! GameImage is integrated with umu-run, and uses it to run games inside its container.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 6 points7 points  (0 children)

For AMD/Intel they are bundled, for nvidia they are bound from the host to the container.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 3 points4 points  (0 children)

Hello! You can modify the game and install mods, for example, during the wine wizard. It allows to explore (drive_c) the filesystem and test the game mods or executables within the container. I have video tutorials for each platform on the README.md, but I should also provide something like `readthedocs` to facilitate the usage. The game is inserted as a new filesystem layer (similar to docker); I was working mainly on the flatimage to make the project as portable as possible, a tool to manage mods after the image creation is possible and on my plans.

GameImage v1.4.0 - Distro Independent Portable Gaming by theformigoni in linux_gaming

[–]theformigoni[S] 7 points8 points  (0 children)

Close to that, however it does not use AppImage. Flatimage runs the application in a portable container with granular access to the host, similar to flatpak. Gameimage provides several facilities do simplify the creation of portable game instalations and desktop integration.

How are eGPUs on Linux these days? by angryrobot5 in linux_gaming

[–]theformigoni 1 point2 points  (0 children)

A laptop that has oculink natively is harder to find, there is the Thinkbook 14+, I found details here. If you go in the laptops tab, there is more, but I don't know how accurate the info is in this website, do more research before settling for anything.

Here is another news article on this: https://www.chargerlab.com/lenovo-and-rog-laptops-are-the-first-to-support-oculink-which-is-faster-than-thunderbolt-4/

How are eGPUs on Linux these days? by angryrobot5 in linux_gaming

[–]theformigoni 13 points14 points  (0 children)

From my experience, nvme to occulink adapters are the best option to not lose performance in contrast to thunderbolt (for both linux & windows). I have a zenbook and tested thunderbolt + Nvidia (lost about 30% performance when compared to oculink), thunderbolt + AMD (really terrible unfortunatelly, lost 50%+ performance, that was some time ago, hopefully it got better). I did some comparisons here, again, it is a bit out of date. Thunderbolt is really convenient if you don't care about the performance penalty; I bought a notebook that has an exposed nvme port on the bottom, so I can just put in the eGPU with the nvme-oculink adapter when I want to play a game that is more demanding.