GitHub
logo SHORiNのARCH
玩游戏

玩游戏

目录


这里有这部分内容的视频教程:「Linux游戏指南」关于Linux玩游戏的一切

如何确认一款游戏能不能玩

想确认一款游戏能不能在 Linux 上玩,可以参考以下网站的信息:

Steam

Proton (软件) - 维基百科,自由的百科全书 | Steam - ArchWiki

  1. 安装 steam

    sudo pacman -S steam
    
  2. 禁用 btrfs 写时复制

    禁用游戏存放目录的 btrfs 的写时复制(CoW),否则会下载速度异常。默认目录是 ~/.local/share/Steam/,通常禁用 steamapps 目录的 CoW 就行了。

    sudo chattr +C ~/.local/share/Steam/steamapps
    
  • 卸载 steam

    sudo pacman -R steam
    sudo rm -rfv ~/.steam ~/.local/share/Steam
    

Minecraft

从 AUR 安装启动器,推荐使用 xmcl、Prism Launcher、hmcl。

安装 waygl 模组可以用 Wayland 运行 Minecraft。

Wine兼容层运行

Wine 是在 Linux 下运行 Windows 程序的兼容层,Proton 是 Steam 的母公司 V 社基于 Wine 开发的专门用来玩游戏的兼容层。原理是把 Windows 程序发出的请求翻译成 Linux 系统下的等效请求。通常使用最新的 Wine 或者 Proton 版本即可,或者使用 GE-proton,这是 GE 大佬修改的 Proton。另外还有基于 proton-cachyos 制作,专门为二游进行优化的 DW-Proton

Wine、Proton 这些兼容层有一大特点叫 prefix,相当于一个虚拟的 C 盘环境,程序的所有操作都在这个 prefix 中进行,完全不会影响到主机的 Linux。当你想卸载软件的时候,可以直接把这个 prefix 扬了,相当于用删除 C 盘的方式卸载软件,相当干净。为了更好地利用 prefix 的优势,可以选择给每个应用单独创建一个 prefix,但用命令行创建会相当繁琐,于是就有了专门用来管理 prefix 的工具。

Lutris

Download Lutris

Lutris 是一个专为玩游戏设计的管理工具,可以完全取代 Steam 的"添加非 Steam 游戏"功能。当然也可以用来管理普通软件。

  1. 安装

    sudo pacman -S lutris
    

    第一次打开会自动下载各种需要的组件,点击左上角的加号可以看到主要功能。

  2. 下载 ge-proton

    右上角三道杠进入 首选项,进入 update 页面,点击 下载 xxxxx(大概是这个名字),此时下载最新版本的 ge-proton。

  3. 设置 Wine 默认使用 GE-Proton

    主页面,单击左下角 Wine 右边的齿轮。设置 Wine 默认使用 ge-proton。

  • 卸载 lutris

    sudo pacman -Rns lutris
    
    sudo rm -rfv ~/.config/lutris  ~/.local/share/lutris
    

可选:ProtonPlus

yay -S protonplus

这是一个专门管理不同版本的 Proton 的软件。

可选:类似微星小飞机的帧数、资源监控软件

yay -S gamescope mangohud mangojuice

gamescope 是一个专门用来玩游戏的合成器。mangohud 是类似微星小飞机的监控软件,mangojuice 用来配置 mangohud。

  • mangohud 使用方法

    mangojuice 设置要显示的项目,然后在 lutris 右键想要监控的软件 > 系统选项 > Display > 激活显示帧率(MangoHud)。Steam 的话设置启动参数 mangohud %command%

如果要玩Epic的游戏

yay -S heroic-games-launcher

用显卡直通玩游戏

经过前面显卡直通的操作,我已经有了一台 4060 显卡的 Win11,并且配置了 looking glass,理论上所有 Win11 能干的事情我都能在这台虚拟机上干。具体的就不用再往下说了吧🤓☝️

小黄鸭补帧

https://github.com/PancakeTAS/lsfg-vk

视频教程:90s 学会在 Linux 用小黄鸭补帧

需要先下载 Steam 正版的小黄鸭。也许盗版也可以,有兴趣的可以自己试试,手动指定一下 lossless.dll 的路径说不定能运行。

  • 从 yay 安装 lsfg-vk
yay -S lsfg-vk-bin

使用方法

具体的使用方法可以去看官方文档 Home · PancakeTAS/lsfg-vk Wiki

我只演示一个方法。

打开 lsfg-vk-ui,新建一个 profile,任意取一个名字(profile name)。常见用途有两个,看视频和玩游戏。

  1. 看视频

    mpv 的兼容性最好。打开终端,使用 LSFG_PROCESS 变量指定 profile。比如:

    LSFG_PROCESS="miyu" mpv /home/shorin/Videos/test.mkv
    
  2. 玩游戏

    Steam 右键想要运行的游戏,启动参数填入刚刚的变量 LSFG_PROCESS="miyu",比如:

    LSFG_PROCESS="miyu" %command%
    
  3. 其他

    同理,lutris 之类的也可以像 Steam 那样设置启动参数。可以在终端输入 LSFG_PROCESS="miyu" 程序启动命令 尝试对任意程序开启补帧,但是不一定生效。

lsfg 一旦生效,就可以修改 profile,实时更改补帧倍率。

安卓手游

Waydroid

Install Instructions | Waydroid

Waydroid - Arch Linux 中文维基

安卓系统也是 Linux 内核,那 Linux 发行版自然也能运行安卓,并且性能还是接近原生的。Waydroid 是 Linux 上的安卓容器,相当于一个完整的安卓系统。

  1. 安装

    yay -S waydroid
    

    可选:从 archlinuxcn 安装 waydroid-image(要求添加 CN 仓库,按照流程,在本文档的 yay 安装部分已经添加)。

    sudo pacman -S waydroid-image
    
  2. 初始化

    sudo waydroid init
    
  3. 启动服务

    sudo systemctl enable --now waydroid-container
    
  4. 安装 ARM 转译

    GitHub - casualsnek/waydroid_script: Python Script to add OpenGapps, Magisk, libhoudini translation library and libndk translation library to waydroid !

    我们的 CPU 架构是 x86_64,要运行 ARM 应用需要安装 ARM 转译,AMD 装 libndk,Intel 装 libhoudini。

    git clone https://github.com/casualsnek/waydroid_script
    cd waydroid_script
    python3 -m venv venv
    venv/bin/pip install -r requirements.txt
    sudo venv/bin/python3 main.py
    

    按照窗口的指引进行安装。

  5. 可选:如果启用了防火墙还需要执行如下命令

    # 查询当前防火墙状态
    sudo ufw status # Status: active 则代表开启,inactive则代表关闭(最简单的方法是直接关闭防火墙,如果不愿意进行下一步)
    
    # 添加规则
    # 方向选 in(Waydroid容器向宿主请求),按接口限定,避免影响 wlan0/eth0
    sudo ufw allow in on waydroid0 to any port 67 proto udp
    sudo ufw allow in on waydroid0 to any port 53 proto udp
    sudo ufw allow in on waydroid0 to any port 53 proto tcp
    
    # 容器↔外网转发:显式路由规则,而不是放开整个 FORWARD 链
    sudo ufw route allow in on waydroid0
    sudo ufw route allow out on waydroid0
    
  6. 开启会话

    waydroid session start
    

    然后应该就能在桌面看到一大堆图标了。

  7. 可选:软件默认是全屏打开,可以设置窗口化打开软件,F11 切换全屏和窗口化。

    waydroid prop set persist.waydroid.multi_windows true
    

    然后用命令重启会话,这一步会隐藏桌面的 Waydroid 图标,可以设置显示。如果开启不了的话可以 stop 之后再尝试用桌面快捷方式开启。

    waydroid session stop
    waydroid session start
    
  • 安装软件

    waydroid app install /apk/的/路径
    

如果游戏出现摇杆无法左键移动的问题的话可以试试运行 waydroid prop set persist.waydroid.fake_touch "*"

安装谷歌框架

依旧是使用这个脚本安装 gapps casualsnek/waydroid_script: Python Script to add OpenGapps, Magisk, libhoudini translation library and libndk translation library to waydroid !,安装完成后用以下命令获取设备 ID。

Google Play Certification | Waydroid

sudo waydroid shell -- sh -c "sqlite3 /data/data/*/*/gservices.db 'select * from main where name = \"android_id\";'"

复制 ID 之后去这个网站注册设备:

https://www.google.com/android/uncertified

然后重启会话:

waydroid session stop

软件渲染

N 卡用户用不了 Waydroid,可以用软件渲染,但是性能很差,勉强玩 2D 游戏。

新出了一个 Waydroid Nvidia 项目,让 N 卡也能加速 Waydroid 了,可以试试

  1. 编辑配置文件

    sudo vim /var/lib/waydroid/waydroid.cfg
    
    [properties]
    ro.hardware.gralloc=default
    ro.hardware.egl=swiftshader
    
  2. 本地更新应用一下更改后的配置

    sudo waydroid upgrade --offline
    
  3. 重启服务

    systemctl restart waydroid-container
    

卸载Waydroid

waydroid session stop
sudo systemctl disable --now waydroid-container.service
yay -Rns waydroid

如果下载了 waydroid-image 的话需要用 yay 一并卸载。

卸载完后清理残留文件:

sudo rm -rf /var/lib/waydroid ~/.local/share/waydroid ~/.local/share/applications/waydroid*

使用Proton破解运行D加密游戏

Bringing DenuvOwO releases to Linux

使用 DenuvOwO 团队的定制 Proton 即可运行 D 加密游戏。

  1. 确认 CPU 是否支持 cpuid_fault

    grep -o cpuid_fault /proc/cpuinfo
    

    grep 是文本搜索工具;-ogrep的选项,代表只输出匹配到的内容;cpuid_fault是用于匹配的关键词;/proc/cpuinfo是存放了 CPU 相关的信息的文件。

    如果有输出,说明 CPU 支持 cpuid_fault,可以继续往下看,如果没输出说明不支持。通常 9 代 Intel / AM4(7000系)及以后的 CPU 会有这个功能。如果不支持的话需要编译内核模块,通过虚拟化技术模拟此功能。因为我没有设备无法测试,所以没有写入教程,有需要的话可以自己看原帖。

  2. 关闭 CPU 的 UMIP 功能

    运行下面这段命令读取 /proc/cpuinfo 中 cpu 的信息并尝试过滤出 UMIP 相关内容

    grep -o umip /proc/cpuinfo
    

    如果有输出的话说明 CPU 启用了 UMIP ,需要编辑内核参数写上 clearcpuid=514 禁用此功能。

    sudo vim /etc/default/grub
    
    GRUB_CMDLINE_LINUX="clearcpuid=514"
    
    grub-mkconfig -o /boot/grub/grub.cfg
    
    reboot
    

    重启电脑后重新运行命令,应该没有任何输出

    grep -o umip /proc/cpuinfo
    
  3. 下载 LinUwUx 定制 Proton

    Google Drive:点击下载

    下载后解压到 ~/.local/share/Steam/compatibilitytools.d

  4. 下载游戏本体和 Hypervisor 破解补丁

    靠你自己了。

  5. 破解游戏

    解压破解补丁后找到 DenuvOwO.ini 或者 Reflex.ini,将里面的 AutoLoadAutoLoadHV 的值设置为 false

    AutoLoad=false
    

    然后观察一下破解补丁目录和游戏目录的目录结构,将破解补丁覆盖到游戏目录

  6. 启动游戏

    使用任意 Proton 管理工具,例如 lutris,导入前面下载的游戏,Proton 选择 LinUwUx 定制的 Proton。

    至此,Proton 破解运行 D 加密游戏成功。

下一节:性能优化