[BETA] runner4deck - una herramienta para crear accesos directos de juegos en launchers oficiales

Hola a todos,

Comparto con vosotros otra herramienta que he diseñado (además de ASON y otras que podéis ver en mi github), esta vez para crear ficheros personalizados (.runner) de acceso directo a juegos de tiendas oficiales: Epic, GOG, Origin, ... e incluso Lutris.

Algunos lo verán útil, otros no le verán utilidad porque están contentos con Heroic, Lutris o incluso Protón "a pelo". Esta herramienta la utilizo para agilizar los enlaces a juegos en Steam y al verlo útil, he decidido compartirlo. Pero bueno, por si alguien quiere también aprender. Por mi parte, huyo de más programas como Heroic, ... intento usar el 90% de la veces Proton y como última instancia Lutris.

Su URL en github: https://github.com/FranjeGueje/runner4deck

Esta utilidad:
Imagen

buscará por los compatdata de nuestro disco interno juegos de un determinado launcher oficial y creará un acceso directo personalizado ".runner". Ese fichero es funcional como script Linux: si hacemos doble clic en ese fichero se nos ejecutará el juego.
El siguiente paso sería añadir ese .runner a Steam como juego no Steam de forma manual o automáticamente usando Steam Rom Manager (necesario para esta función) con la configuración que indico en la documentación.

Pienso que tiene más ventajas que desventajas, pero podéis analizarlo vosotros.

Por no guarrear esta entrada, os pongo un acceso directo por si estáis interesados: Readme

Tened en cuenta que está en una versión muy muy temprana v0.1 [BETA], pero espero cualquier comentario constructivo.
Un saludo!

Edito: si los administradores veis conveniente mover el hilo o mensaje a otro foro/hilo, adelante :)
Espero no sonar que echo tierra a tu trabajo, pero no me queda muy clara la ventaja respecto a Lutris que también te crea perfiles por juego y te los añade a Steam como un acceso directo más además de tener ventajas añadidas.
Hola!

Para nada @drumtronicpw01011110, para nada echas tierra al trabajo. Por lo menos al final, siempre servirá para fines didácticos :)
runner4deck no pretende sustituir a Lutris, el cual también tengo instalado. Es una herramienta fantástica.

Lutris es una herramienta "All in one" que instala launcher, descarga e instala juego, y añade a Steam Deck. runner4deck utiliza los launcher oficiales añadidos a Steam (como compatibilidad proton) para buscar los juegos ya instalados y te los añade, es decir:

Para la descarga:
- Lutris --> el propio Lutris descarga el launcher + el juego. A veces 1 launcher + 1 juego. Y esto hace aumentar el espacio en disco. Tiene otras ventajas y desventajas, pero es otro tema.
- runner4deck --> Necesita que el usuario instale una única vez el launcher oficial de forma manual como compatibilidad proton como "Juego no Steam". Al ser oficial tiene una serie de ventajas. Se usará este launcher sólo para descargar, actualizar y sincronizar saves de juegos. No sé si Lutris es capaz de sincronizar saves.

A bajo nivel:
- runner4deck puede utilizar la compatibilidad proton que queramos: Oficial, GE, Experimental, Easy Anticheat, ...
- Lutris utiliza su runtime o WineGE.

- runner4deck usará un sólo compatdata y un sólo prefijo Wine por launcher que es el generado en la instalación de este manualmente. Recomendación: hacer copia de seguridad de este :)
- Lutris en muchas ocasiones crea un prefijo Wine por juego.

Yo los veo complementarios, en mi caso prefiero usar siempre proton y si no puedo hacerlo correr, entonces me apoyo en las plantillas de la comunidad de Lutris para instalarlo en Lutris. Yo también colaboro en Lutris :)
Este último caso, por ejemplo, me ocurrió con "Dead Space".

En la documentación del proyecto, aunque está en construcción, escribo unos indicadores de si esta herramienta es útil para el usuario o no. Por ejemplo, NO es útil si estás contento con tu forma de trabajar con Heroic, Lutris, ... La herramienta no viene cambiar la forma con la que el usuario trabaja.

Una ventaja añadida es que lo he diseñado de forma escalable. Es decir, se pueden añadir nuevos plugins a futuro. Por ejemplo, un plugin para los juegos portables: se podría tener un sólo COMPATDATA (un disco C) donde tendría instalado VC++, ... y los juegos portables se añadan a Steam usando este COMPATDATA.

Al final, no quiero convencer a nadie de usar esto o no. Digamos que es lo que utilizo "en casa" y he querido compartirlo con la comunidad.

En resumen, a nivel de usuario que quiere instalar juego de forma rápida sin preocuparse de configuraciones, de saber cómo está montado, le dé igual el espacio generado al crear varios compatdata/pfx de wine, ... Lutris sería su opción y puede obviar runner4deck.
Si queremos usar un único compatdata por launcher, queremos usar los launcher oficiales con sus bonanzas (y desventajas), además de querer un perfil de juego, tdp y mandos, creo que runner4deck es una buena ayuda.

Saludos!
Muchas gracias por la explicación, @Pakico. La mayor ventaja sería un único launcher para todos los juegos y tenerlos estos separados en diferentes accesos directos. Yo personalmente prefiero tener cada juego en una botella. No sería la primera vez que tengo que borrar una para que se genere nuevamente. Sería una putada si hay más juegos ahí

Lutris antiguamente tenía opción de usar Proton, pero lo quitaron porque mucha gente se volvía loca a la hora de modificar o buscar partidas guardadas y al fin y al cabo, Proton no es más que Wine + DXVK + una especie de puente entre Wine y Steam para Linux.
Pues es exactamente lo que andaba buscando.

Mis diez

Al arrancar los juegos sin compatibilidad, si quiero cambiar la versión de proton ¿Lo haría cambiando las opciones de compatibilidad del launcher? Por ejemplo de Epic o Uplay.
Hola chicos,

He actualizado algunos plugins y añadido el plugin de Ubisoft Connect.

Próxima parada (además de solucionar problemas que se vayan reportando): instalar un plugin para juegos portables. La idea de este plugin es tener en un único COMPATDATA lo esencial: vc++, ... y poder ejecutar todos los juegos portables sobre ese COMPATDATA (un mismo disco C para todos los juegos portables). No duplicamos/triplicamos espacio para diferentes juegos y podríamos ganar compatibilidad (si un juego instala vc++2012 y a otro juego futuro le hiciera falta correría directamente el juego ya que está instalado por el anterior). Bueno, esa es la teoría...

Si alguien prueba la herramienta, que por favor, reporte fallos o erratas que se vaya encontrando. Al ser una versión beta aparecerán unos cuantos :)

@drumtronicpw01011110 Totalmente de acuerdo en todo lo que indicas. Al principio utilizaba Bottles también, pero hará sobre un mes que en dos actualizaciones se le iba la pinza y encontré fallos graves (pj: al clonar un prefijo se llevaba los gigas que tenía en Documentos, Downloads, ...) Además, tenía la percepción de que iban para atrás en cada actualización. De verdad que era "fan"... Soy un sysadmin y los contenedores y vms son el mejor punto de este mundo. Así que para el uso de prefix me pasé a Lutris. Controlando lo que haces, es "prácticamente" lo mismo (aunque más feo). Luego en Lutris me decepcioné con la forma en la que trata varios launchers (este es el motivo por el que prefiero los launchers oficiales + Proton). Lutris lo dejo para "cacharrear" y para los juegos antiguos o raros. Las plantillas de la comunidad te salvan de algún apuro para estos... ; respecto a lo que comentas de tener que borrar un pfx y todos los huevos en la misma cesta, estoy de acuerdo, para runner4deck es su mayor ventaja y su mayor desventaja. En la doc de github recomiendo ir haciendo copias de estos COMPATDATA, al final sería como tener copia completa de la unidad C del PC Windows. Si ya encima tienes la Deck en formato btrfs como yo y lanzas snapshopts de los COMPATDATA la cosa se queda "redondita".

Saludos

Edito:
@donleo Los juegos se lanzan sobre un script por juego. Se encuentra en /home/deck/runner4deck/games/"nombredeljuego".runner ; si lo editas con un editor de texto verás que una de las líneas tiene una variable llamada PROTON. Esa variable indica el proton que usará el juego. Da igual si el launcher lo tienes en un proton, un juego A en otro y otro juego B en otro: Steam al lanzar el que toque sobreescribirá los ficheros correspondientes. Mi recomendación es que cuantos menos proton distintos hayan para el mismo launcher mejor. En principio, como estos launchers no contienen juegos de Steam, yo recomendaría tanto para los launcher como para los juegos utilizar los GE. Además, puedes utilizar también en el asistente la variable DXVK_ASYNC=1 que seguramente mejorará el rendimiento. Si es un juego online NO USES GE, podrían banearte al no ser oficial.
@donleo No lo he dicho, también puedes volver a lanzar runner4deck y volver a generar el acceso al juego seleccionando otro Proton. Tanto la opción de modificar el fichero de texto como lanzar el asistente de nuevo son válidas.
@Pakico BTRFS es la auténtica salud. Conocí el formato hace 3 años y quedé enamorado casi al instante entre la compresión, la deduplicación y los snapshots de disco por no hablar del tema de volúmenes que es para tocarse XD

Existe otro sistema mejor que BTRFS: XFS pero por entonces no tenía control de redundancia. Ignoro si a día de hoy ya la tiene, pero me he vuelto vago y me he quedado en este formato.

pakico escribió:Si es un juego online NO USES GE, podrían banearte al no ser oficial.


No hay ningún problema con GE que la llevo usando desde que se lanzó su primera release. Está mantenido por un ingeniero de Red Hat en contacto con Valve constantemente. Tiene algunos parches extra aplicados a Wine que luego Valve mete en la estable de Proton o a la inversa cogiendo los parches de la experimental para su release estable además de mantener DXVK más actualizado que Proton. La mayor diferencia es que meten cosas que entran en conflicto con copyright por ser privativos y por eso Valve no puede distribuir ni dar soporte directo a esta versión
drumtronicpw01011110 escribió:@Pakico BTRFS es la auténtica salud. Conocí el formato hace 3 años y quedé enamorado casi al instante entre la compresión, la deduplicación y los snapshots de disco por no hablar del tema de volúmenes que es para tocarse XD

Existe otro sistema mejor que BTRFS: XFS pero por entonces no tenía control de redundancia. Ignoro si a día de hoy ya la tiene, pero me he vuelto vago y me he quedado en este formato.



Aunque sea un poco offtopic... Cremita de la buena:
(deck@guerredeck runner4deck)$ sudo compsize /home/deck/
[sudo] password for deck:
Processed 159572 files, 211930 regular extents (232641 refs), 59811 inline.
Type Perc Disk Usage Uncompressed Referenced
TOTAL 60% 14G 24G 26G
none 100% 8.7G 8.7G 8.9G
zstd 37% 5.6G 15G 17G
prealloc 100% 24M 24M 35M
(deck@guerredeck runner4deck)$ btrfs filesystem usage /home/deck
WARNING: cannot read detailed chunk info, per-device usage will not be shown, run as root
Overall:
Device size: 203.85GiB
Device allocated: 18.02GiB
Device unallocated: 185.83GiB
Device missing: 0.00B
Used: 14.82GiB
Free (estimated): 187.40GiB (min: 94.49GiB)
Free (statfs, df): 187.40GiB
Data ratio: 1.00
Metadata ratio: 2.00
Global reserve: 38.02MiB (used: 0.00B)
Multiple profiles: no

Data,single: Size:16.01GiB, Used:14.43GiB (90.16%)

Metadata,DUP: Size:1.00GiB, Used:197.73MiB (19.31%)

System,DUP: Size:8.00MiB, Used:16.00KiB (0.20%)

(deck@guerredeck runner4deck)$ sudo btrfs subvolume list /home/deck
ID 256 gen 4093 top level 5 path .local
ID 257 gen 3887 top level 256 path .local/share/Steam/steamapps/common
ID 258 gen 4100 top level 256 path .local/share/Steam/steamapps/compatdata
ID 259 gen 3870 top level 5 path Games
(deck@guerredeck runner4deck)$

Ahora sí, buenas noches! Seguimos por estos lares...

Edito:
@drumtronicpw01011110 Yo no juego online la verdad... Pero el propio autor de GE indica que si utilizas DXVK_ASYNC puedes tener problemas de anticheat:

Fuente:
DXVK_ASYNC Allows Async to be used with DXVK. This can help with stutter in some games, however it is recommended not to be used with games that have sensitive anti-cheats. Use at your own risk.
pakico escribió:Edito:
@drumtronicpw01011110 Yo no juego online la verdad... Pero el propio autor de GE indica que si utilizas DXVK_ASYNC puedes tener problemas de anticheat:

Fuente:
DXVK_ASYNC Allows Async to be used with DXVK. This can help with stutter in some games, however it is recommended not to be used with games that have sensitive anti-cheats. Use at your own risk.


El uso de esa variable puede ser que interfiera con los anticheat (sólo la tengo en Payday 2 que es P2P y no tiene ningún sistema antitrampas), pero por usar Proton GE no pasa nada. Lo he utilizado en varios juegos sin ningún problema. Simplemente no se pone la variable y ya está.
@drumtronicpw01011110 Yo soy fan de GE y de DXVK_ASYNC. Es el proton que uso por defecto. Para mí el mejor... Los proton oficiales para los juegos de Steam XD

PD: y en Lutris --> Wine-GE [sonrisa]
Pues lo llevo pensando tiempo, que para que narices se crean chorricientasmil carpetas para cada juego
Muy buena idea.
10 respuestas