The OpenNET Project / Index page

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



"Valve продолжит поддержку Ubuntu в Steam, но начнёт сотрудни..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Отдельный RSS теперь доступен для каждого обсуждения в форуме и каждого минипортала.
. "Valve продолжит поддержку Ubuntu в Steam, но начнёт сотрудни..." +3 +/
Сообщение от Аноним (72), 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ообщить модератору

Оглавление
Valve продолжит поддержку Ubuntu в Steam, но начнёт сотрудни..., opennews, 27-Июн-19, 18:55  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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