LINUX.ORG.RU

Беда с CS/Steam в Linux, не хочу обратно на Винду :(

 , ,


0

4

Вводные данные

Много лет я был виндузятником. Пользовался Windows 98 SE, Windows XP и Windows 7. Но политика Micrsoft и окончательное прекращение поддержки Windows 7 актуальными программами вынудили меня перейти на Linux.

Мой ПК: Core 2 Duo E4500, GeForce 7200 GS (OpenGL 2.1).

Установлена Debian 12 с драйвером Nvidia 304 (с патчами от сообещства для работы на актуальных дистрибутивах GNU/Linux; в гайде по установке было указано, что нет поддержки современного WebGL, поэтому новые версии Firefox и Chrome не работают – только Firefox 90-х версий) и X.Org 1.19 (старая версия иксов, чтобы работал драйвер Nvidia 304).

Проблема

Установил Steam (само собой, включая все зависимости – 32-битные тоже) для того, чтобы установить CS 1.6. Вот только Steam не запускается. Он выкачивает обновления, обновляется, потом секунд 30-50 всё пропадает, а затем появляется окно Steam (понятно по интервейсу) с сообщением, что Steam крашнулся, и предлагает варианты на выбор как перезапустить: без аппаратного ускорения и прочее (перепробовал всё, но безрезультатно). Запускал и через терминал, но в выоде в консоли почему-то Steam никакие ошибки не выводит. Предполагаю, что Steam под Linux со старым драйвером не работает нормально из-за того, что в старом патченном драйвере не работает WebGL. Steam ведь на базе Chromium работает.

Вот так вот. Из-за дурацкого DRM-приложения со встроенным Chromium, имея аж дважды купленную игру Counter-Strike 1.6 (один раз на диске с ключом, а второй раз – уже в игровом магазине Steam), я больше не могу в неё играть на железе, которое во много раз мощнее необходимого по рекомендуемым системным требованиям. На котором игра всегда работала безупречно со стабильными 100 FPS и максимальными настройками графики.

Попытка закрыть проблему с помощью Wine

Что ж, право играть в купленную игру у меня есть (я лицензионно её приобрел два раза). Поэтому имею не только моральное право запустить игру воспользовшись неофициальными отвязанными от DRM сборками (в народе – NoSteam).

Я скачал и установил различные виндовые сборки NoSteam CS 1.6 через Wine (Wine 9.2). Но все они работают отвратительно: 2-10 FPS при движениях мышью (даже в меню игры). При том, что на Windows 7 я пару лет назад проверял работу одной из этих сборок, когда настраивал свой игровой сервер CS 1.6 в режиме «пускать игроков, у которых не удалось выполнить проверку на Steam». Работало безупречно, как и steam-версия.

ChatGPT нагенерировал мне следующую информацию (не уверен в том, насколько это действительно относится к моему случаю, но как возможный вариант):

"В Counter-Strike 1.6 — во всех актуальных существующих билдах, 2008-2023 годов выпуска, с которых можно подключиться к нынешним серверам на 48 игровом протоколе — используется неявное поведение мыши, зависящее от MouseWarpOverride и оконного режима. Игра через Wine работает в borderless windowed с захватом мыши, а это очень нестабильный режим.

На современном мощном железе это может быть не так критично и даже почти незаметно, но не в вашем случае.

Wine через XWarpPointer вызывает асинхронный запрос к X-серверу — и тогда вы получаете лаг (просадку FPS) на каждый пиксель движения мыши. Каждый такой ивент вызывает glSwapBuffers + SetCursorPos, что может легко “утопить” весь event loop. Каждый warp вызывает задержку, ведь OpenGL X дожидается завершения X11 операции перед следующим SwapBuffers".

Запуск нативной NoSteam CS 1.6

В сборке нативной для Linux версии Counter-Strike 1.6, которую опубликовал @Kron4ek (версия 2013 года, билд 6153) с эмулятором Goldberg (эмулятор Steam в режиме оффлайн/LAN), можно лишь из консоли игры подключаться через connect IP:PORT к половине нынешних игровых серверов на протоколе 48. Т. е. к тем серверам, у которых в конфиге сервера разрешено подключение с любых актуальных (на 48 протоколе) NoSteam CS 1.6 игровых клиентов, а не только лишь с виндовым эмулятором Steam „revEmu“.

В этой сборке не работает встроенный в игру браузер серверов: невомзожно ни добавлять серверы во вкладку игры «Избранное», ни просмотривать посещённые серверы во кладке «История» (посещённые серверы просто не запоминаются и не выводятся там, а написано, что их нет), ни получать список нынешних работающих публичных серверов во вкладке «Интернет». Но да ладно, это не так критично (всё же эмулятор больше для LAN предназначен).

А самое критичное здесь – то, что в этой сборке игры (игровом клиенте с этим эмулятором Steam „Goldberg“) не работает быстрая загрузка файлов по протоколу HTTP (т. е. в нём не реализованы перехват http-обращений к Steam и загрузка через какой-нибудь libcurl). Судя по выводу в игровой консоли, клиент получает от сервера URL-адрес, с которого можно загружать файлы по HTTP, но дальше дело на заходит, клиент терпит неудачу (видимо, перенаправляет эти запросы на загрузку самому Steam, который не запущен; если точно, как я понимаю, за загрузку файлов по HTTP в нём отвечает Chromium Embedded Framework). Поэтому клиент при попытке быстрой загрузки моментально откатывается на медленную загрузку по устаревшему протоколу (на базе UDP со коростью 7KB/s).

Эмуляторы Steam (что Goldberg, что revEmu) заменяют оригинальную библиотеку libsteam_api. Так что я полез в Google и нашёл на Github’е код виндовой библиотеки libsteam_api.dll (с нуля написанная путём реверс-инжиниринга)] для GoldSrc (даижка CS 1.6). Но чтобы сделать из неё патченную libsteam_api.so (с встроенной поддержкой бвстрой загрузки по HTTP), нужно иметь хоть какие-то навыки программирования на C или C++. То есть в код придётся вносить изменения: удалять обращения к виндовому реестру и виндовым библиотекам, заменять их на линуксовое и реализовать перехват HTTP-запросов с загрузкой через libcurl. Звучит не так сложно, но я хорошо понимаю, что это наверняка лишь «звучит» для меня как обывателя, а не программиста.

Вопросы

С каким из этих двух вариантов NoSteam в контексте моего ПК должно быть проще разобраться (решить проблему): с версией Wine, либо с нативной NoSteam? Wine-версия выглядит более готовой «из коробки», но более проблемная в работе. Тогда как NoSteam работает технически лучше, но при этом требует патча libsteam_api (навыков этого у меня, увы, нет). Что посоветуете?

Также в тему приглашаются @Kron4ek и @LINUX-ORG-RU.


Ответ на: комментарий от mittorn

steam должен уметь минимальный функционал (логин и запуск игр) без какого-либо хромиума

Было бы неплохо, конечно. В консольном виде. Команды, так-то и так есть. Просто чтобы не грузило gui-интерфейс.

«попутали берега» со своим steamwebhelper

Ну борщенули чутка, гейб хочет игровую соцсеточку с магазином и шапками.

депрекейта поддержки старых windows

Ну точно. Поддерживать ос, депрекейтнутые самим разработчиком? Точно не нужно.

Еще пожалуйся, что SSE 4.2 в требованиях.

sehellion ★★★★★
()
Ответ на: комментарий от linuxuser112

Поддерживаю этот совет, даже при возможной худшей производительности, с актуальным драйвером хотя бы софт свежий нормально работать будет. Тем более, NV40 даже в amber не улетела, насколько я знаю.

Merionet
()

Я не верю что ты сидишь сегодня на таком железе и терпишь слайд-шоу в любом браузере и вообще софтине, даже старой версии.Не верю что ты не можешь купить в кредит самый дешманский комп который будет в 5 раз мощнее этого некрофильства. Эта портянка сгенерена чатгопотой?

Pr0f1t
()
Ответ на: комментарий от anonymous

Ну и ещё мне очень нравится как боготворят Габена как спасителя Линукс гейминга, но при этом ни одна его игра нативно в линуксе нормально не работает. Даже на ссаных консолях работает, а в линуксе нет, приходится костылять вайнпротоныкрончекзборочки.

Сюр.

anonymous
()
Ответ на: комментарий от anonymous

Алсо валв на днях насрал на фанатов кс, убив пользовательский мод Classic Offensive, который чуваки пилили 8 лет.

Типа ниче такого, что кс сам по себе был модом хл.

Короче говно, а не компания. Ну и оппозинг форс не они сделали, а геарбокс. По факту у валв примерно 0 (ноль) своих игр. Ну портал разве что, окей.

anonymous
()
Ответ на: комментарий от sehellion

Поддерживать ос, депрекейтнутые самим разработчиком?

Это не просто какая-то погроммулина, а DRM, без которой игры нефункциональны. Потому его системные требования должны сопоставляться с требованиями игр. Не хотят поддерживать в актуальном стиме? Значит должна быть возможность скачать старый стим, который будет авторизовываться и запускать только старые игры - уж поддержать свой же протокол в ограниченном режиме они точно могут

mittorn ★★★★★
()
Ответ на: комментарий от MagicMirror

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

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

То же самое касается депрекейта поддержки старых windows т.к люди покупали игру, которая работает на windows 98/2000/xp и должны иметь возможность в них играть не удаляя DRM из игры

Steam не обеспечивает возможность работы старых игр на новых версиях Windows?

anonymous
()
Ответ на: комментарий от anonymous

Нет, он этим не занимается. Даже steam runtime выбирает между системными и своими библиотеками те, что новее, так что если игра на новой версии ОС не работает - он здесь ничем не поможет. Особенно на windows.

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

Обнова, принудительно требующая vrwebhelper обрушила репутацию valve с репутации игродела и дистрибьютора до репутации обосравшегося фронтендера

Вообще не пользуюсь Steam, но всё же нигде в новостях не видел ничего про этот катастрофический провал и массовый уход пользователей к конкурентам. Есть ссылка?

anonymous
()
Ответ на: комментарий от anonymous

Не следил за реакцией стима в целом, но для меня на этом обновления steam закончились - просто заморозил версию.
Но навскидку могу дать эту ссылку, негодования там хватает:
https://steamcommunity.com/groups/SteamClientBeta/discussions/3/3710433479207...
Так же есть довольно много бурлений говн когда steam перестал работать на XP

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

они этот ToS могут поменять в любой момент, а старым подтереться

Кажется ты начинаешь понимать.

Обнова, принудительно требующая vrwebhelper обрушила репутацию valve с репутации игродела и дистрибьютора до репутации обосравшегося фронтендера

Только среди каких-то фриков, которые только требуют, не занося ни доллара.

MagicMirror ★★★
()
Ответ на: комментарий от mittorn

По-разному. Патчи, библиотеки, обёртки, иногда даже меняют движок на опенсорсный. Жаль, что вся эта роскошь только для Windows. На Linux и даже Mac им не то чтобы совсем плевать, но это скорее граждане второго сорта. Так что иногда нужно позаботиться о наличии какой-нибудь старой библиотеки типа libssl или вообще дичи вроде libgconf. А для граждан первого сорта у них есть и такое: https://www.gog.com/en/gog-preservation-program

anonymous
()
Ответ на: комментарий от MagicMirror

Так-то этим фрикам не хватает возраста не то что работать, а даже чтобы играть. И потерять аудиторию можно, в итоге уйти уже на пенсию вместе со своим eula и ретроградскими законами которые не работают.

fucpsy
()
Ответ на: комментарий от mittorn

Потому его системные требования должны сопоставляться с требованиями игр.

Я тоже считаю, что пора депрекейтнуть 32х битный клиент в 2025 году то, а до сих пор мультилиб под него надо. Все давно уже на 64 бита переползли, и стиму пора.

sehellion ★★★★★
()

Мой ПК: Core 2 Duo E4500, GeForce 7200 GS (OpenGL 2.1).

В чём проблема слить это железо на авито (или где ты там живёшь), докинуть немного денег, и купить что-то более новое?

SurpriseCat
()
Ответ на: комментарий от mittorn

попробуй собрать xash3d и cs16client. С недавних пор он работает с оригинальным протоколом

Большое спасибо! Всё великолепно работает. Проблема полностью решена установкой Xash3D FGWS + CS16Client

Stub
() автор топика
Ответ на: комментарий от Stub

Там пока что войсчата нет с оригинальными серверами. Впрочем, может это даже и плюс - наверно не сильно то хотелось слушать крики школотронов про мамку...

mittorn ★★★★★
()

Проблема глубже. Официально Windows запрещен в нашей стране(читайте офф сайт), и компаниям самим по себе придется смещаться в сторону альтернатив.Я предлагаю перейти на сетевые игры их очень много.

nicholas_ru
()

Может хоть на какой-нибудь помойке поискать более актуальное железо, чем вот это вот все? На авито б/у там. Больно смотреть на эти страдания.

masa ★★
()