При запуске нативной версии HL2 на Linux Вы можете столкнуться со следующей ошибкой:
Unable to load module vguimatsurface.so!
Всему виной отсутсвие ряда 32-х битных библиотек, необходимых для корректной работы игры. Чтобы найти каких библиотек недостает, следует выполнить команду находясь в каталоге с игрой:
LD_LIBRARY_PATH=bin ldd bin/vguimatsurface.so | grep 'not found'
В выводе будет список библиотек, которые не смог найти линковщик, их нам и надо поставить. Дальше, с помощью dpkg, ищем в составе каких пакетов лежат заветные библиотеки (помним, что исполняемый файл игры 32-х битный, проверить это можной с помощью команды file), например:
dpkg -S libplc4.so
Далее устанавливаем заветный пакет с помощью apt-get или aptitude:
apt-get install libnspr4:i386
На Linux Mint 20.3 не хватило следующих пакетов:
libfontconfig1:i386 libfreetype6:i386 libgtk2.0-0:i386 libpangocairo-1.0-0:i386 libgdk-pixbuf2.0-0:i386 libcairo2:i386 libpango-1.0-0:i386 libfreetype6:i386 libfontconfig1:i386 libglib2.0-0:i386 libxi6:i386 libasound2:i386 libxrender1:i386 libdbus-1-3:i386 libcups2:i386 libnss3:i386 libnspr4:i386
На этом проблемы не заканчиваются, не хватает двух пакетов, которых нет в репозитории дистрибутива libpng12-0_1.2.54 и libpng12-0_1.2.54, они есть, но версия библиотек не соответствует.
Первый вариант: можно скачать библиотеки с http://security.ubuntu.com/, второй собрать из исходников :D. Выбираем первый вариант:
http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_i386.deb
http://security.ubuntu.com/ubuntu/pool/main/libg/libgcrypt11/libgcrypt11_1.5.3-2ubuntu4_i386.deb
Из-за невозможности удовлетворить зависимости, распаковываем пакеты с помощью dpkg применяя "силу":
dpkg --unpack --force-all ./libpng12-0_1.2.54-1ubuntu1_i386.deb
Далее повторно проверяем найдены ли все зависимости:
LD_LIBRARY_PATH=bin ldd bin/vguimatsurface.so | grep 'not found'
Если нет, то обновляем кэш динамического линквщика вызовом ldconfig с правами root.
Когда все зависимости удовлетворены, настало время запускать, но если у Вас гибридная графика, то по умолчанию рабочий стол и др. приложения использую интегрированное ядро, понять так ли это не сложно, вызываем glxinfo -B и получаем вывод вида:
где производитель и рендер говорят о том, что у нас используется графика от Intel.
Начиная с Linux Mint 18 в состав дистрибутива входит аплет, который позволяет выбирать графический ускоритель. Минус в том, что надо перезапускать ссесию, да и второй минус аплет не всегда корректно работает (у меня на LM 20.3 иксы зависаю насмерть). Для того, чтобы запустить приложение из консоли и не только и явно сказать ему, что использовать надо GPU от Nvidia перед выполнением команды, на запуск объявляем две переменные окружения:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia
В моем случае HL2 комплектовался скриптом для запуска, в нем данную команду можно поместить непосредственно в строке, где запускается бинарник hl2_linux.
Запускаем скрипт и процесс пошел.
Чтобы убедится, что процесс работает с дискретным GPU можно запустить монитор ресурсов:
nvidia-smi -l 1
П.С.
При сохранении настроек процесс упал, но при перезапуске все настройки нормально сохранилось.
П.С.С.
Deb пакеты, если сайт ubuntu недоступен.