Yesterday

Лагает/вылетает Euro Truck Simulator 2 на Linux

Почему Euro Truck Simulator 2 тормозит, зависает и вылетает на Linux (и как это исправить раз и навсегда).

Бывает, встречаешь проблему, которую без специальных знаний не решить. Обычно на помощь приходят открытые источники, где авторы делятся своим опытом, помогая другим. Но иногда проблема настолько редкая, что ещё никто не опубликовал её решение.

В данной статье мы расскажем:

1. Почему в ETS2 мало FPS на Linux и как это решать
2. Почему ETS2 на Linux вылетает спустя пару часов игры и как это связанно

Спойлер: всё упирается в то, как игра общается с видеокартой.

1. API и что это такое

Для начала расскажем про интерфейсы программирования (API), через которые программы общаются с видеокартой, чтобы рисовать изображение и выполнять графические вычисления. На данный момент существует несколько таких, одни из самых популярных:

  • DirectX — разработан в стенах Microsoft, создавался с целью сделать Windows игровой платформой. Данный API нацелен на высокую производительность и возможность создавать сложную графику для красивой картинки в играх. Именно его используют многие игры, которые вы знаете: Forza Horizon, GTA5, RDR2, Battlefield, Call of Duty, Fortnite и прочие.
  • OpenGL — создавался в Khronos Group с целью дать разработчикам простой способ работать с графикой. Он кроссплатформенный и работает на любой популярной ОС, включая Linux. Однако он частично устарел и не использует современные возможности видеокарт.
  • Vulcan — новичок среди API, быстро набравший популярность. В Khronos Group поставили новую цель — сделать более сложный и производительный API, но сохранить преймущества OpenGL — кроссплатформенность и унивирсальность.

А теперь стоит обратить внимание на поддерживаемые API в ETS2. Среди них всего два: OpenGL и DirectX. Выше мы уже отметили, что DirectX создавался под Windows и не имеет поддержки других операционных систем. Это влияет не только на поддержку игр в Linux, но и в других системах. Например, вы задумывались, почему говорят "MacOS не для игр"? Именно поэтому — в Apple изначально делали упор на OpenGL и офисные/мультимедийные задачи, а не игры. И это прямое следствие отсутствия кроссплатформенности DirectX, аналогов которому небыло.

2. Суть проблемы

Что происходит, кода вы запускаете ETS2 на Linux: игра выбирает единственный поддерживаемый API на этой платформе — OpenGL. В сравнении с DirectX разница в FPS составляет иногда в два, а иногда даже в три раза. Вместо 100+ FPS на высоких вы получаете 75 FPS и просадки до 50-60 FPS на средних.

Мы разобрались с низким FPS в игре. Но откуда вылеты? Всё просто — обычно разработчики языков программирования адаптируют их работу под самые разные платформы и стремятся повысить эффективность управления паматью ОЗУ. Однако ETS2 написан на C++ — это сложный язык, где программист управляет памятью вручную. Это позволяет добиться максимальной производительности, однако ответственность за управление памятью ложится на плечи программиста. И разработчики ETS2 не проделали должную работу и не учли особенности Linux'а. Из-за этого память используется неэффективно, а иногда не очищается от ненужных данных. Это приводит к тому, что эти данные накапливаются в ОЗУ и забивают его. В лучшем случае игра подвиснит, система выделит ещё больше памяти и игра возобновится на некоторое время. В худшем — ОЗУ не хватит, чтобы система могла нормально функционировать и ОС зависнет.

Обе проблемы вызывают замешательство и в то же время решаемы. ETS2 необходимо запускать через Proton от Valve, он встроен в Steam и содержит в себе всё необходимое для плавной игры.

3. Решение проблемы и что такое Proton

Proton — это не эмулятор, а совместимый слой, который перенаправляет вызовы DirectX в Vulkan (через DXVK) и системные вызовы Windows в Linux (через Wine). Это позволяет запускать игры без потери производительности.

Чтобы его включить для ETS2, перейдите в "библиотеку", нажмите ПКМ по игре в меню, далее "Свойства...", выберите "Совместимость", поставьте галочку на пункте "Принудительно использовать выбранный инструмент совместимости Steam Play". В спике выберите последнюю стабильную версию. На момент написания статьи это 9.0-4. Выбирайте Beta версию (на момент написания статьи это 10.0-2), если не боитесь возможных вылетов и Experimental, если хотите самые новые и не проверенные функции. После выполненных действий дождитесь завершения обновления и при запуске выбирайте запуск игры с DirectX 11.

Здесь вы не нашли готовое решение. Но теперь у вас не только возможность нормально поиграть, а реальное понимание, из-за чего была проблема. А это позволит вам не просто пользоваться компьютером, но ещё и наделять использование осознанностью своих действий.

Небольшой бонус

Возможно, вы сталкнулись ещё с одной проблемой — FPS вроде много, но иногда возникают фризы. Едете, проезжаете мост — и микрозависание. Если ситуация знакомая — дело в том, что игра стоит на медленном диске. Вероятно, вы сами используете SSD, но игры устанавливаете на старый HDD. С HDD компьютер часто не успевает подгружать ресурсы современных игр. Так вот, в 2025 году SSD — это не только про дополнительную скорость, но и про комфортное использование. Теперь этот тип памяти не уступает HDD по долговечности, а иногда даже обгоняет. Именно поэтому купите себе хороший SSD на 512 гб или 1 тб. Если вы не используете свой ПК только для игр — вам этого хватит (если вы вообще не играете или в 1-2 игры, то идеально подойдёт и 256 гб). А HDD оставьте в покое — не нужно возлагать на него такие нагрузки. Пусть станет вашим нажёжным хранилищем для файлов (можете перенести каталог home на него) и резервных копий (Déjà Dup Backups).

Хочешь обсудить эту или другую тему, или просто написать? Всегда рад пообщаться в Telegram (https://t.me/agentvadimz) или других соцсетях (http://agentvadim.xyz).