Проблема существует давно, но как-то всё не доходили руки зафиксить, т.к. на компе всё-равно есть Win 10 второй системой, а играю крайне редко.
Проблема и решение не специфичны для Arch Linux, и решение должно работать на любой Linux-системе.
Собственно ошибки при запуске выглядят так:
...
Game update: AppID 8930 "", ProcID 1463098, IP 0.0.0.0:0
Starting app 8930
>>> Adding process 1463098 for game ID 8930
GameAction [AppID 8930, ActionID 2] : LaunchApp changed task to WaitingGameWindow with ""
ERROR: ld.so: object '/home/setevoy/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/setevoy/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
GameAction [AppID 8930, ActionID 2] : LaunchApp changed task to Completed with ""
>>> Adding process 1463099 for game ID 8930
...
[0427/121055.396740:ERROR:frame_sink_video_capturer_impl.cc(206)] Invalid resolutions constraints: 0x0 must not be greater than 0x0; and also within media::limits.
Game removed: AppID 8930 "", ProcID 1463099
...
Uploaded AppInterfaceStats to Steam
Exiting app 8930
Помню, что когда пытался запустить её в первый раз, ещё только после установки Steam — гуглил ошибки «from LD_PRELOAD cannot be preloaded«, и гугление ни к чему не привело.
Но сегодня вдруг обратил таки внимание на строку:
[0427/121055.396740:ERROR:frame_sink_video_capturer_impl.cc(206)] Invalid resolutions constraints: 0x0 must not be greater than 0x0; and also within media::limits.
Собственно решение — просто убрать видеоролик, который запускается заставкой при загрузке игры, так как из-за того, что ядер всего 4, и у каждого один поток — падает BinkPlayer, см. Civ5-LinuxPatch.md:
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 39 bits physical, 48 bits virtual
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
...
Переходим в каталог игры:
cd .local/share/Steam/steamapps/common/Sid\ Meier\'s\ Civilization\ V
Переименовываем все файлы видео .mov в .mov_bak:
for m in `find . -name \*.mov -type f`; do mv "$m" "$m"_bak; done