The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Valve продолжит поддержку Ubuntu в Steam, но начнёт сотрудни..., opennews (??), 27-Июн-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


72. "Valve продолжит поддержку Ubuntu в Steam, но начнёт сотрудни..."  +3 +/
Сообщение от Аноним (22), 28-Июн-19, 03:03 
В 2011 году вышел клиент игровой дистрибуции Desura. Там было два бинарника, Linux 32-bit и Linux 64-bit. В самом клиенте, на главной странице был значок пингвинчика 16x16. А поверх пингвинчика число либо 32, либо 64. Это позволяло пользователю узнать архитектуру.

На страницах игр тоже было написано, как значком, так и прописью, под обе ли она архитектуры, или только под одну.

Это пример хорошо написанного клиента. Они даже выложили исходники на Гитхаб. Там Chromium 13 и код самого клиента.

А Стим сразу начали писать неправильно. Я не говорю, что Стим написан плохо - чего только стоит Steam Overlay! И много чего, по-мелочи. Но кое-что, что было хорошо реализовано в Desura, было плохо реализовано в Steam

Например сохранения в играх. Ни одна игра не создавала файлы сохранений в той же директории, в которую игра была установлена. В стиме же - пожалуйста, сохраняй в ~/.local/share/Steam/SteamApps/common/AppName.

Начну издалека. Я был бета-тестером Steam для Linux, и бета была лёгкой. Она занимала мало места, и она очень хорошо привязывалась к системе, в которой запущена. Например, при попытке запустить игру SpaceChem Стим говорил, что надо выполнить apt-get install mono. И кнопки "Ок" и "Отмена". При проверке новой версии драйвера, Стим сообщал, что в основном репо более новой версии нет, но в PPA Oibaf новая версия есть. В общем, легковесный 32-битный клиент, который "подтягивает" все недостающие зависимости для игр, которые будут запущены

Ближе к релизу, появился Steam Runtime. Это папка с кучей файлов библиотек из Ubuntu 12.04. А именно, на 650 мегабайт. Причём только 32-битных. 64-битных не было. Дело в том что, со стороны разработчиков Steam, было ошибкой так сильно привязывать клиент к Ubuntu 12.04. Вышла Ubuntu 12.10, и всё развалилось. Всё как бы работало, но... Пару тем назад A.Shatl рассказывал, как при обновлении дистрибутива может исчезнуть libsomething24, а вместо неё встать libsomething26. И старой либы в репо уже нет. А теперь представьте, что у вас десятки игр, и многие из них зависят от чего-то нестандартного. В общем, разработчики Steam ошиблись с самого начала, выбрав Ubuntu 12.04. Это могло бы работать, если бы никто из юзеров не использовал более новые убунты

В качестве альтернативы можно было использовать CentOS 6. Вы спросите "а в чём разница, к версиям библиотек из какой системы привязываться - всё равно при апгрейде произойдёт то же самое!". Просто Red Hat когда-то был популярен, и на его основе создали LSB - стандарт, упрощающий создание одного бинарника так, чтобы он работал в любом дистрибутиве Linux

RHEL6 сейчас является базой для драйвера NVIDIA начиная с версии 430.xx. Работает во всех дистрах. Ранее (до версии 410.xx) его собирали в RHEL4. Flash Player до версии 11.2 собирали в каком-то RHEL - по-моему в 5. Начиная с 23.x тоже перешли на RHEL6

Есть много бинарников, которые скомпилировали в CentOS 5-7, а они работают до сих пор во всех системах. Справедливости ради, такие бинарники можно создавать и в убунте, если обладать достаточным количеством знаний, но именно при использовании CentOS в качестве билд-фермы о многих вещах можно не задумываться

CryEngine и Unreal Engine 4 в CentOS 6 компилируются прекрасно. Мне понадобилось только скачать с Khronis Group новые *.h файлы OpenGL, доустановить новый компилятор GCC из репозитория devtoolset, и скомпилировать из исходником LLVM.

Проблемы с билд-фермой CentOS у меня ровно две. Во-первых, libpcre.so.1 в RPM-based системах, и libpcre.so.3 в DEB-based. По сути, это одна библиотека, и достаточно симлинка, чтобы запустить неработающую прогу. Во-вторых это libssl.so.1.0.0 и libssl.so.10. Я решил эту проблему, положив libssl.so.10 в архив с программой, и подключив её при помощи скрипта run.sh, подключающую каталог с библиотекой при помощи PATH (вернее LD_LIBRARY_PATH)

Если бы они выбрали CentOS 6 в своё время, то не пришлось бы создавать Steam Runtime. А выпустить клиент для AMD64 было бы делом одного часа. В реальности же, ребята долго создавали 64-битный набор библиотек Steam Runtime. Они там компилируют в Ubuntu 12.04 ряд библиотек из 14.04 и 16.04 (чейнжлоги доступны в официальной группе Стима для линукс, я даже делал переводы на русский язык нескольких из них). Они не могут просто составить компиляцию из библиотек 12.04 - 18.04, закинув их в одну папку - ведь новые библиотеки хотят более нового Glibc, а стим должен работать в 12.04 и выше. Поэтому библиотеки из новых ОС пересобираются в старых. Компания Canonical помогает Valve, оказывая расширенную поддержку Ubuntu 12.04 (основная уже закончилась, сейчас идёт расширенная платная)

Ответить | Правка | Наверх | Cообщить модератору

73. "Valve продолжит поддержку Ubuntu в Steam, но начнёт сотрудни..."  +/
Сообщение от Аноним (22), 28-Июн-19, 03:07 
> Если бы они выбрали CentOS 6 в своё время, то не пришлось бы создавать Steam Runtime.

Ещё и разработчиков игр обязать компилировать в CentOS, потому что промышленный стандарт, и в убунте полученные бинарники тоже будут работать. Создали бы сборку или репозиторий для CentOS с новыми компиляторами, заголовочными файлами OpenGL, и средствами отладки и тестирования уже "из коробки". У них же уже есть специализированная сборка Linux "для гостинной", можно было бы сделать ещё одну "для разработчиков".

А то мне больно смотреть, как в моей не самой старой ОС новая игра от инди-разработчика не запускается, требуя Glibc 2.21. Чего такого нет в моей Glibc 2.19, что нужно этой простенькой игре? Понятно что разработчик никогда не пользовался линуксом, и компилировал бинарник где попало, наверняка в Ubuntu 19.04, установленной только ради компиляции этой игры. Поэтому дистрибутив для разработчиков от Valve помог бы избавиться от таких косяков неопытных программистов

Ответить | Правка | Наверх | Cообщить модератору

76. "Valve продолжит поддержку Ubuntu в Steam, но начнёт сотрудни..."  +/
Сообщение от iPony129412 (?), 28-Июн-19, 06:13 
> Ещё и разработчиков игр обязать

Тогда им проще вообще будет средний палец показать линуксоидам, чем чего-то делать.

Ответить | Правка | Наверх | Cообщить модератору

85. "Valve продолжит поддержку Ubuntu в Steam, но начнёт сотрудни..."  –1 +/
Сообщение от Аноним (124), 28-Июн-19, 08:50 
Про индустриальный стандарт - Центос вы оба правы, согласен, это логично. Но тогда лучше уходить из Стим в https://itch.io, там есть Линукс.
Ответить | Правка | К родителю #73 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру