FPS — количество отображаемых фреймов (кадров) в секунду. Современные видеокарты могут справляться с сотнями ценой высокой нагрузки и теплоотдачи. Но значение это не постоянное и, в зависимости от того, на сколько плоха оптимизация в большинстве современных игр для PC, цифры могут варьироваться от ~700-800 fps до 15-20 fps за очень короткие промежутки времени.
Нередко можно наблюдать что в заставке у вас 800 fps, в самой игре не больше сорока и то если на экране мало движущихся объектов. При этом высоких значений можно добиться лишь в том случае, если отключить вертикальную синхронизацию для игры. На LCD мониторах из-за разницы между частотой монитора и FPS, выводимыми на него видеокартой картинка отображается с разрывами и артефактами. Именно из-за скачков в несколько сотен fps за считанные секунды. Проблему решает вертикальная синхронизация (vSync) «подгоняющая» fps под частоту монитора. Если частота вашего монитора — 60 Hz, то значение FPS будет в пределах 60-ти. То есть не выше, так как большее количество фреймов ваш монитор всё равно не обработает и будет пропускать. Но это не мешает им сваливаться до 20-ти. При этом видеокарта пытается удержать их на значении равном частоте монитора. В результате нагрузка на видеокарту возрастает, теплоотдача увеличивается, производительность падает. В некоторых играх производительность может быть даже ниже, чем при отключённой опции vSync.
Кроме того факта, что монитору в 60 Hz всё равно сколько сотен FPS передаёт ему видеокарта и больше 60-ти он не обработает, лишние FPS заметно перегружают старые карты, из-за чего они сильно греются.
В некоторых игра в настройках можно выбрать значение 60 или 30 fps. Иногда эти настройки спрятаны в конфигурационный файл и в меню не отображаются. Но чаще всего игра оставляет это на усмотрение опции vSync, включённой либо в самой игре, либо на стороне драйвера видеокарты. В настройках же видеокарты от производителя нет опции, позволяющей указать произвольное значение FPS, хотя технически никаких видимых препятствий этому нет. В видеокартах nVidia под Windows есть опция «Adaptive V-Sync», которая устанавливает значение FPS в половину значения частоты монитора (60 Hz — 30 FPS, 120 Hz — 60 FPS), но при этом отключается контроль разрывов и картинка выглядит практически так же, как и при отключённой vSync. Средствами стороннего плагина можно установить значение в 30 FPS и избавиться от разрывов. К сожалению плагин не обновлялся с 2016-го года. В версии драйвера 3ХХ оно ещё работало. В новой линейке 4ХХ нет видимых изменений в панели nVidia, так что плагин может по-прежнему работать, но кто знает, как долго ещё.
Под Linux есть стороннее решение «libstrangle». По словам автора, работает как с OpenGL, так и с Vulkan. Работает с любыми играми, в том числе и с играми, установленными через Wine. Так же работает со Steam-играми, но не работает со Steam-играм, установленными с использованием Proton. Официальная поддержка коих на сегодня слишком мала, чтоб это было проблемой.
Для работы в Debian / Ubuntu потребуются следующие пакеты:
libc6-dev-i386
gcc-multilib
ia32-libs
OpenSUSE:
glibc-devel-32bit
gcc
gcc-32bit
Скачиваем и распаковываем исходники в любую удобную директорию. Переходим в эту директорию, собираем и устанавливаем:
cd /путь_до_папки_с_исходниками
make
sudo make install
На момент написания этой статьи, для Arch / Manjaro уже собранный пакет есть в AUR и назывется «libstrangle-git». Так что установить его со всеми зависимостями можно с помощью следующей команды:
yaourt -S libstrangle-git
Для запуска игры с произвольным лимитом нужно запустить её следующей командой:
strangle 30 /path/to/game
Где «/path/to/game» - путь до файла, с которого запускается игра. Игра будет запущена с лимитов в 30 fps. Вы можете указать любое значение, не превышающее частоту вашего монитора. Равное значение тоже не имеет смысла, так как vSync итак это делает. Если игра установлена через Wine, то команда будет иметь следующей вид:
strangle 30 wine /path/to/game.exe
Если игра установлена через Wine, но с помощью какой-то вспомогательной программы, то смотрите куда ссылается ярлык игры. В случае с PlayOnLinux, создайте через него ярлык на .exe файл, запускающий игру и посмотрите в его свойствах команду, которой запускается игра. Например:
strangle 30 /usr/share/playonlinux/playonlinux --run "The Sims 3"
PoL установлен стандартно, "The Sims 3" — имя созданного ярлыка игры. То есть первая часть всегда будет неизменной, тогда как имя ярлыка будет зависеть от установленной игры. Тот же подход должен работать и в случае с коммерческим CrossOver.
Напишите .sh скрипт под каждую игру, чтоб не запускать их через терминал.
В Steam выберите игру в свой библиотеке, правым кликом откройте «свойства» и в открывшемся окне выберите «опции запуска» (Set Launch Options). Смотрите скриншот, так как в русскоязычном интерфейсе опция может называться как угодно. В поле вписываем следующее значение:
strangle 30 %command%
Где 30 — количество FPS. Таким образом игра, запущенная из любого места в Steam, или с созданного им ярлыка будет запущена с указанным лимитом на FPS.
Из личного опыта могу заметить, что в играх с хорошей оптимизацией 30 fps выглядят лучше, чем 60 с постоянным сваливанием, а в играх, в которых оптимизация оставляет желать лучшего, коих большинство, лимит в 30 fps увеличивает производительность. Во всех случаях лимит в половину от возможностей монитора снижает нагрузку на видеокарту и значительно снижает теплоотдачу, что особенно заметно на устаревших ПК и ноутбуках.
nVidia. Вертикальная синхронизация в Linux.Linux.Если вы используете современную видеокарту nVidia с проприетарными драйверами в Linux, то наверняка сталкивались с так называемым «разрывом картинки».
Android: Удаление вшитых приложений без Root.Linux.Так называемое Bloatware - беда любого устройства, купленного в ритейле. Если на устройстве есть операционная система и предусмотрен выход в Интернет, производитель обязательно напихает туда кучу всякого “жизненно необходимого” дерьма, в лучшем случае о существовании которого пользователь может и не знать. Иначе же оно постоянно предлагает купить “полную версию”, дать ему разрешение на всё для “улучшения качества” и “удобства использования”.
Lutris.Linux.Если вы используете операционную систему на ядре Linux на протяжении последних лет десяти, то наверняка заметили, что за последнюю пару лет Linux стал более привлекателен в плене игр, чем за все предыдущие годы своего развития. Не в последнюю очередь это заслуга компании Valve с их Steam, а так же Steam Play для запуска Windows игр «в один клик». Вклад же команды, стоящей за разработкой Wine, просто сложно переоценить, несмотря на то, что Wine в первую очередь нацелен на запуск Windows приложений. Простота портирования игр из Windows в мир Linux, а так же удобство самих дистрибутивов на ядре Linux и их способность удовлетворить всё более широкий круг пользователей — это то, что делает эту платформу привлекательной для разработчиков игр. Раньше же вложения в разработку игр под Linux автоматически считались коммерчески неоправданными из-за отсутствия спроса.
OpenVPN Access Server. Установка и настройка.Linux / Связь.OpenVPN Access Server – полнофункциональное SSL VPN программное решение, включающее в себя непосредственно OpenVPN сервер, административный веб интерфейс и клиентские программы под различные платформы (Windows, Mac, Linux) для соединения с сервером. Базовая (бесплатная) лицензия рассчитана на двух клиентов, и этого вполне достаточно, если использовать OpenVPN AS в личных целях.