以下是从Steam直接启动游戏的简单步骤:
技巧:
我们在《城市:天际线》及其他Paradox游戏中常用的跳过Paradox启动器的方法——在启动选项中输入“<可执行文件路径> %command%”——在Proton下无效。
你可以改用以下命令:
eval $( echo "%command%" | sed -E "s#Launcher/dowser.exe#Cities2.exe#g" )
操作方法:
1. 在Steam库中右键点击《城市:天际线2》,选择属性。
2. 在“常规”部分底部的“启动选项”中,粘贴上述命令。
3. 点击开始游戏!
工作原理:
当Steam使用Proton运行游戏时,兼容性层命令会成为游戏命令行的一部分。对我来说,它看起来类似这样:/home/outfrost/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=949230 -- /home/outfrost/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/outfrost/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper'/_v2-entry-point --verb=waitforexitandrun -- '/storage/warehouse/outfrost/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun '/storage/warehouse/outfrost/Steam/steamapps/common/Cities Skylines II/Launcher/dowser.exe'
我们不能简单地用游戏路径替换整个命令,因为这样无法正确调用Proton。
相反,我们获取整个命令行文本(%command%),并通过sed过滤它,将命令行文本中的【Launcher/dowser.exe】替换为【Cities2.exe】。然后,我们使用eval将生成的文本作为命令执行。在我的设备上,Steam最终运行的命令大致如下:
/home/outfrost/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=949230 -- /home/outfrost/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/outfrost/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper'/_v2-entry-point --verb=waitforexitandrun -- '/storage/warehouse/outfrost/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun '/storage/warehouse/outfrost/Steam/steamapps/common/Cities Skylines II/Cities2.exe'
如果你想查看完整命令的样子,可以将启动选项修改为:
eval $( echo "%command%" | sed -E "s#Launcher/dowser.exe#Cities2.exe#g" | tee ~/cities2_cmd.txt )
然后打开主目录下的cities2_cmd.txt文件。致谢