LINUX.ORG.RU
ФорумTalks

Мотивировка для разработчиков портировать игры на Linux

 , ,


2

1

КОМУ “МНОГА БУКАФ” - читать со слов TL;DR. Если все еще скучно, читать со слов “СУТЬ” Если что-то не нравится - напишите. ___

Для простого пользователя-обывателя в Linux традиционно существовали три главные проблемы, вызывающие отторжение в пользу Windows или Mac OS. Первая проблема - сложность установки. Достаточно давно решена: пользователь скачивает образ диска, без особых проблем делает загрузочную флешку, после чего в интуитивно понятном интерфейсе ставит систему. До сих пор проблему вызывает лишь понятие точки монтирования (обычно при первой установке) и иногда, в случае нежелания внимательно читать, потеря данных, но это касается не Linux, а в принципе перехода. Современные устанвщики не имеют даже этих проблем.

Вторая проблема - Windows отказывается признавать Linux. Так, например, в WIndows нет поддержки линуксовых файловых систем. Но если это превратили в плюс (до файлов не дотянется вирус), то затирание загрузочного раздела при установке Windows (точнее, восстановление после) представляет для новичка (коим являюсь и я) некоторую проблему. Самый легкий способ решить эту проблему - иметь два жестких диска, но можно повозиться с настройкой GRUB, что не очень сложно.

TL;DR Третья проблема до сих пор предстает перед всеми пользователями Linux во всей красе. Это почти монополия Windows в отношении большого количества приложений. Монополия является порочным кругом. На Windows сидит множество пользователей, поэтому под Windows пишут много приложений. Из-за приложений многие пользователи выбирают Windows, и так далее. Есть несколько направлений решения данной проблемы.

Первое направление - использование эмуляторов Windows. Часть приложений в них вообще не работает, часть работает убого. Эмуляторы еще далеки от совершенства. Это связано со многими вещами. Основные причины - разобщенность сообщества создателей эмуляторов: часть сообщества пытается на этом заработать, закрывая код, вместо того, чтобы, объединив усилия, писать что-то одно, а также тонкая грань между фичей и багом в Windows.

Второе - использование двух установленных систем, одна из которых держится только для запуска некоторых приложений. Сюда же относится использование виртуальных машин. Первый вариант - пожалуй, самый адекватный на данный момент. Второй вряд ли можно назвать таким. Но в любом случае, это уход от проблемы, а не ее решение - Linux не удовлетворяет потребности пользователя, если он делает так.

А вот третий вариант я и хочу обсудить подробно. Это разработка аналогов Win-приложений для Linux. Плюс этого в том, что написанная специально под Linux программа работает очень быстро, гораздо быстрее, чем аналог под Windows. Кое-где это было сделано самим сообществом - например, бесплатные OpenOffice и его идейные продолжатели давно обогнали по удобству обращения и производительности платный Microsoft Office. Но, как ни крути, в области свободного ПО сложно взяться деньгам, которые позволят создать качественный аналог Photoshop или подобного. Особенно это касается ИГР. Долгое время ситуация была плачевна, и играть на Linux в игры можно было в основном только ради лулзов. Сейчас многие старые игры уже переписаны сообществом (например, переписаны Герои Меча и Магии 3). Интересно ситуация обстоит с новыми игрыми и приложениями. Valve впервые официально стали портировать игры на Linux, зная, что деньги так заработать можно. Многие игры на движках Source и Unreal, доступные в Steam, играбельны на Linux. Но основная часть, например, стратегий (Civilization, Total War) не портированы - у разработчиков нет стимула этим заниматься. Также стимула нет у разработчиков игр в промежутке между инди и культовыми. Затраты на портирование достаточно большие, и они вряд ли окупятся для игры с небольшим тиражом.

СУТЬ Для этого предлагается два возможных невзаимоисключающих решения.

Первое - в Steam создается специальный сервис. Участвовать в голосовании в нем могут только пользователи, имеющие хотя бы одну платную игру, чтобы нельзя было наделать ненастоящих голосов. Если пользователь запускает Steam-клиент для Linux, и игра для его ОС недоступна, он может нажать на кнопку “Поиграл бы” - название, конечно, рабочее, но суть именно такая. Разработчик игры получает уведомление о количестве нажавших на кнопку. Когда их количество станет достаточно большим, разработчик может, прикинув стоимость разработки, решить, что портирование имеет смысл и таки решиться на него. Минусы очевидны - во-первых, нужно договариваться со Steam, а до тех, от кого действительно будет зависеть принятие такого решения, очень сложно достучаться; во-вторых, игра с вероятностью 99% будет платной. Плюс - “подпись” осуществляется в одну кнопку, пользователю не нужно регистрироваться в нужном месте, чтобы ее поставить. Аудитория Steam настолько велика, что хотя бы попробовать договориться лучше.

Второе предлагаемое решение - специальный сайт для этих целей. Если ребята из Steam согласятся, можно сделать его только для нестимовских игр. Сначала проводится долгая и муторная работа по созданию базы данных компьютерных игр, вышедших за все время под Windows. Возможно создание этого сайта совместно с разработчиками Wine, чтобы не делать базу. Вход на сайт должен быть возможен без регистрации непосредственно на нем, при помощи чего-то вроде Google-Account, Facebook, ВКонтакте. Принцип далее почти тот же. Пользователь ищет недоступную на Linux игру, после чего ставит галочку, что он бы поиграл в нее. Когда набирается определенное количество подписей, разработчику игры направляется шаблонное письмо об этом и предложение об обсуждении условий портирования - метода монетизации проекта и формы распространения игры.

Монетизация возможна двумя основными способами: единоразовая оплата выполнения работы и оплата копий. В первом случае пользователи копят определенную заранее оговоренную сумму денег для однократной оплаты полностью свободного к моменту выхода порта. Когда она наберется, разработчик начинает портирование. Когда игра выйдет в свободный бесплатный доступ, разработчик немедленно получает деньги. Минус - разработчик не заинтересован в том, чтобы в игре не было багов, в их исправлении. Плюс - игра бесплатна для сообщества, которому, скорее всего, и придется исправлять баги.

Второй путь - оплата каждой копии. Плюсы - разработчику выгоднее не налажать, чтобы продажи не были почти нулевыми. Одним из условий должна являться возможность оплатить игру из каждой страны, в которой установлен Linux.

Выбирается и способ распространения игры:

1) В сеть выкладывается открытый исходный код 2) Выпускаются установочные пакеты вроде .deb или .rpm 3) Если это возможно, игра публикуется в Steam (но это не зависит от сообщества)

По выходу игры все подписавшие “петицию о портировании” получают уведомление об этом. Если человек не купил три игры, которые он подписал, прежде чем он сможет подписывать дальше, ему нужно купить хотя бы одну из них.

Если это случится, вендекапец будет ну вот совсем не за горами. Что думаете?

Перемещено tazhate из games

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

Такое ощущение что девелопер - святой человек, который не ошибается. Что ещё за Батя, которого ты мне постоянно пиаришь?

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

Такое ощущение что девелопер - святой человек, который не ошибается.

куда уж ему (человеку с опытом, если что) до теоретиков с лора

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

>> Все прочие библиотеки Steam таскает с собой

> ты хоть бы посмотрел на вывод ldd, прежде чем такое писать.

Смотрел. А ты в свою очередь тогда посмотри на вывод «cd ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu && ls»

>> Хоть в Ubuntu 7.04 его запускай, предварительно обновив GLIBC и установив новый драйвер видео - заработает и не засбоит.

> как запустишь - приходи.

Уже.

> расскажешь, как обновить glibc в убунте 7.04,

sudo apt-get build-dep libc glibc, затем скачать это, это и это, собрать, установить, перезагрузиться.

> вместе с видеодрайвером.

«sudo sh NVIDIA-Linux-x86_64-325.08.run». Только я ещё ядро обновлял, чтобы получить ext4.

> только учти, что там далеко не только glibc в зависимостях.

Ответ на это я вынес в следующий коммент (не влазит). Главное - GLIBC, а обо всём остальном позаботится Steam.

> ну и, собсно, незачем все это мне разъяснять. бинарная сборка моего проекта также работает на rhel, centos, debian lenny, и всем что выше. но, в отличие от тебя, я знаю, какая у этого цена, и как сложно этого было добиться. у зоопарка дистров гораздо больше отличий, чем тебе кажется.

Когда я собирал Wine, OpenJDK и Chromium, я видел что в старой системе может потребоваться DBUS, UDISKS вместо HAL, и X Input 2. Действительно, не всё так гладко в CentOS, как я говорил. Тем не менее, стандарт LSB избавляет от проблем: полученные бинарники действительно запускаются тупо везде. 5-мегабайтный каталог lib, скрипт запуска run.sh. Всё.

В Lenny же GCC 4.3? Я предпочитаю 4.1. Вернее, предпочитал: слишком многое в нём не собирается. Обновил до 4.5 и кладу в lib ещё и libstdc++.so.6.0.15.

>> И вовсе не потому что их протестировали в каждом линуксе

> именно потому, что они получали багрепорты от юзеров разных линуксов, и допиливали постепенно. либо тестировали в разных линуксах. это единственный способ.

Maya for Linux тестировалась только в RHEL и SLES, тем не менее успешно запускается в Ubuntu и не глючит. Потому что стандартизация, и она работает.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от waker
zenitur@athlon64x2 ~ $ cd ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu && ls
alsa-lib                            liblcms2.so.2.0.2
dri                                 libldap-2.4.so.2
gdk-pixbuf-2.0                      libldap_r-2.4.so.2
gio                                 libldap_r-2.4.so.2.8.1
glib-2.0                            libltdl.so.7
gstreamer-0.10                      libltdl.so.7.3.0
gstreamer0.10                       libmad.so.0
gtk-2.0                             libmad.so.0.2.1
i686                                libmenuw.so.5
krb5                                libmenuw.so.5.9
libasn1.so.8                        libmikmod.so.2
libasn1.so.8.0.0                    libmikmod.so.2.0.4
libasound.so.2                      libnotify.so.4
libasound.so.2.0.0                  libnotify.so.4.0.0
libasyncns.so.0                     libnspr4.so
libasyncns.so.0.3.1                 libnss3.so
libatk-1.0.so.0                     libnssutil3.so
libatk-1.0.so.0.20409.1             libogg.so.0
libavahi-client.so.3                libogg.so.0.7.1
libavahi-client.so.3.2.9            libopenal.so.1
libavahi-common.so.3                libopenal.so.1.13.0
libavahi-common.so.3.5.3            liborc-0.4.so.0
libavcodec.so.53                    liborc-0.4.so.0.16.0
libavcodec.so.53.35.0               liborc-test-0.4.so.0
libavfilter.so.2                    liborc-test-0.4.so.0.16.0
libavfilter.so.2.15.0               libp11-kit.so.0
libavformat.so.53                   libp11-kit.so.0.0.0
libavformat.so.53.21.1              libpanelw.so.5
libavutil.so.51                     libpanelw.so.5.9
libavutil.so.51.22.1                libpango-1.0.so.0
libcairo.so.2                       libpango-1.0.so.0.3000.0
libcairo.so.2.11000.2               libpangocairo-1.0.so.0
libcanberra-0.28                    libpangocairo-1.0.so.0.3000.0
libcanberra-gtk.so.0                libpangoft2-1.0.so.0
libcanberra-gtk.so.0.1.8            libpangoft2-1.0.so.0.3000.0
libcanberra.so.0                    libpangox-1.0.so.0
libcanberra.so.0.2.5                libpangox-1.0.so.0.3000.0
libCgGL.so                          libpangoxft-1.0.so.0
libCg.so                            libpangoxft-1.0.so.0.3000.0
libcups.so.2                        libpcrecpp.so.0
libcurl-gnutls.so.3                 libpcrecpp.so.0.0.0
libcurl-gnutls.so.4                 libpcreposix.so.3
libcurl-gnutls.so.4.2.0             libpcreposix.so.3.12.1
libcurl.so.3                        libpixman-1.so.0
libcurl.so.4                        libpixman-1.so.0.24.4
libcurl.so.4.2.0                    libplc4.so
libdbus-glib-1.so.2                 libplds4.so
libdbus-glib-1.so.2.2.2             libpulsecommon-1.1.so
libdbusmenu-glib.so.4               libpulse-simple.so.0
libdbusmenu-glib.so.4.0.13          libpulse-simple.so.0.0.3
libdbusmenu-gtk.so.4                libpulse.so.0
libdbusmenu-gtk.so.4.0.13           libpulse.so.0.13.5
libexif.so.12                       libroken.so.18
libexif.so.12.3.2                   libroken.so.18.1.0
libexpatw.so.1                      librtmp.so.0
libexpatw.so.1.5.2                  libsamplerate.so.0
libffi.so.6                         libsamplerate.so.0.1.8
libffi.so.6.0.0                     libsasl2.so.2
libFLAC.so.8                        libsasl2.so.2.0.25
libFLAC.so.8.2.0                    libSDL-1.2.so.0
libfltk_forms.so.1.1                libSDL-1.2.so.0.11.4
libfltk_gl.so.1.1                   libSDL2-2.0.so.0
libfltk_images.so.1.1               libSDL2-2.0.so.0.0.0
libfltk.so.1.1                      libSDL2_image-2.0.so.0
libfontconfig.so.1                  libSDL2_image-2.0.so.0.0.0
libfontconfig.so.1.4.4              libSDL2_mixer-2.0.so.0
libformw.so.5                       libSDL2_mixer-2.0.so.0.0.0
libformw.so.5.9                     libSDL2_net-2.0.so.0
libfreetype.so.6                    libSDL2_net-2.0.so.0.0.0
libfreetype.so.6.8.0                libSDL2_ttf-2.0.so.0
libgdk_pixbuf-2.0.so.0              libSDL2_ttf-2.0.so.0.10.2
libgdk_pixbuf-2.0.so.0.2600.1       libSDL_image-1.2.so.0
libgdk_pixbuf_xlib-2.0.so.0         libSDL_image-1.2.so.0.8.2
libgdk_pixbuf_xlib-2.0.so.0.2600.1  libSDL_mixer-1.2.so.0
libgdk-x11-2.0.so.0                 libSDL_mixer-1.2.so.0.10.1
libgdk-x11-2.0.so.0.2400.10         libSDL_ttf-2.0.so.0
libgio-2.0.so.0                     libSDL_ttf-2.0.so.0.6.3
libgio-2.0.so.0.3200.3              libsmime3.so
libGLEW.so.1.6                      libsmpeg-0.4.so.0
libGLEW.so.1.6.0                    libsmpeg-0.4.so.0.1.4
libGLU.so.1                         libSM.so.6
libGLU.so.1.3.08004                 libSM.so.6.0.1
libglut.so.3                        libsndfile.so.1
libglut.so.3.9.0                    libsndfile.so.1.0.25
libgmodule-2.0.so.0                 libspeexdsp.so.1
libgmodule-2.0.so.0.3200.3          libspeexdsp.so.1.5.0
libgmp.so.10                        libspeex.so.1
libgmp.so.10.0.2                    libspeex.so.1.5.0
libgnutls-extra.so.26               libsqlite3.so.0
libgnutls-extra.so.26.21.8          libsqlite3.so.0.8.6
libgnutls.so.26                     libssl3.so
libgnutls.so.26.21.8                libstdc++.so.6
libgobject-2.0.so.0                 libstdc++.so.6.0.16
libgobject-2.0.so.0.3200.3          libswscale.so.2
libgomp.so.1                        libswscale.so.2.1.0
libgomp.so.1.0.0                    libtasn1.so.3
libgssapi_krb5.so.2                 libtasn1.so.3.1.12
libgssapi_krb5.so.2.2               libtdb.so.1
libgssapi.so.3                      libtdb.so.1.2.9
libgssapi.so.3.0.0                  libtheoradec.so.1
libgstapp-0.10.so.0                 libtheoradec.so.1.1.4
libgstapp-0.10.so.0.25.0            libtheoraenc.so.1
libgstaudio-0.10.so.0               libtheoraenc.so.1.1.2
libgstaudio-0.10.so.0.25.0          libtheora.so.0
libgstbase-0.10.so.0                libtheora.so.0.3.10
libgstbase-0.10.so.0.30.0           libtic.so.5
libgstcdda-0.10.so.0                libtic.so.5.9
libgstcdda-0.10.so.0.25.0           libtiff.so.4
libgstcheck-0.10.so.0               libtiff.so.4.3.4
libgstcheck-0.10.so.0.30.0          libusb-1.0.so.0
libgstcontroller-0.10.so.0          libva.so.1
libgstcontroller-0.10.so.0.30.0     libva.so.1.3200.0
libgstdataprotocol-0.10.so.0        libvorbisenc.so.2
libgstdataprotocol-0.10.so.0.30.0   libvorbisenc.so.2.0.8
libgstfft-0.10.so.0                 libvorbisfile.so.3
libgstfft-0.10.so.0.25.0            libvorbisfile.so.3.3.4
libgstinterfaces-0.10.so.0          libvorbis.so.0
libgstinterfaces-0.10.so.0.25.0     libvorbis.so.0.4.5
ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion
libgstinterfaces-0.10.so.0.25.0     libvorbis.so.0.4.5
libgstnet-0.10.so.0                 libwind.so.0
libgstnet-0.10.so.0.30.0            libwind.so.0.0.0
libgstnetbuffer-0.10.so.0           libX11.so.6
libgstnetbuffer-0.10.so.0.25.0      libX11.so.6.3.0
libgstpbutils-0.10.so.0             libX11-xcb.so.1
libgstpbutils-0.10.so.0.25.0        libX11-xcb.so.1.0.0
libgstreamer-0.10.so.0              libXau.so.6
libgstreamer-0.10.so.0.30.0         libXau.so.6.0.0
libgstriff-0.10.so.0                libXaw7.so.7
libgstriff-0.10.so.0.25.0           libXaw7.so.7.0.0
libgstrtp-0.10.so.0                 libXaw.so.7
libgstrtp-0.10.so.0.25.0            libxcb-glx.so.0
libgstrtsp-0.10.so.0                libxcb-glx.so.0.0.0
libgstrtsp-0.10.so.0.25.0           libxcb-render.so.0
libgstsdp-0.10.so.0                 libxcb-render.so.0.0.0
libgstsdp-0.10.so.0.25.0            libxcb-shm.so.0
libgsttag-0.10.so.0                 libxcb-shm.so.0.0.0
libgsttag-0.10.so.0.25.0            libxcb.so.1
libgstvideo-0.10.so.0               libxcb.so.1.1.0
libgstvideo-0.10.so.0.25.0          libXcomposite.so.1
libgthread-2.0.so.0                 libXcomposite.so.1.0.0
libgthread-2.0.so.0.3200.3          libXcursor.so.1
libgtk2.0-0                         libXcursor.so.1.0.2
libgtk-x11-2.0.so.0                 libXdamage.so.1
libgtk-x11-2.0.so.0.2400.10         libXdamage.so.1.1.0
libgudev-1.0.so.0                   libXdmcp.so.6
libgudev-1.0.so.0.1.1               libXdmcp.so.6.0.0
libhcrypto.so.4                     libXext.so.6
libhcrypto.so.4.1.0                 libXext.so.6.4.0
libheimbase.so.1                    libXfixes.so.3
libheimbase.so.1.0.0                libXfixes.so.3.1.0
libheimntlm.so.0                    libXft.so.2
libheimntlm.so.0.1.0                libXft.so.2.2.0
libhx509.so.5                       libXinerama.so.1
libhx509.so.5.0.0                   libXinerama.so.1.0.0
libICE.so.6                         libXi.so.6
libICE.so.6.3.0                     libXi.so.6.1.0
libidn.so.11                        libxml2.so.2
libidn.so.11.6.6                    libxml2.so.2.7.8
libjack.so.0                        libXmu.so.6
libjack.so.0.0.28                   libXmu.so.6.2.0
libjasper.so.1                      libXpm.so.4
libjasper.so.1.0.0                  libXpm.so.4.11.0
libjpeg.so.62                       libXrandr.so.2
libjpeg.so.62.0.0                   libXrandr.so.2.2.0
libjpeg.so.8                        libXrender.so.1
libjpeg.so.8.0.2                    libXrender.so.1.3.0
libjson.so.0                        libXss.so.1
libjson.so.0.0.1                    libXss.so.1.0.0
libk5crypto.so.3                    libXt.so.6
libk5crypto.so.3.1                  libXt.so.6.0.0
libkrb5.so.26                       libXtst.so.6
libkrb5.so.26.0.0                   libXtst.so.6.1.0
libkrb5.so.3                        libXxf86vm.so.1
libkrb5.so.3.3                      libXxf86vm.so.1.0.0
libkrb5support.so.0                 nss
libkrb5support.so.0.1               openssl-1.0.0
liblber-2.4.so.2                    pango
liblber-2.4.so.2.8.1                sasl2
liblcms2.so.2                       sse2
zenitur@athlon64x2 ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu $
ZenitharChampion ★★★★★ ()
Ответ на: комментарий от proud_anon

То есть либо Стим рискует деньгами, либо кто-то другой открывает сервис, для которого это будет основной бизнес, и рискует всем капиталом.

Во-первых, какими деньгами рискуют разработчики сайта или Steam? Кроме денег на, собственно, его разработку, особенно больших вложений не нужно. Он может окупить себя, например, рекламой или пожертвованиями.

Прям никакой игрой? Если что, первая Final Fantasy, например, вышла в 1987 году, а последний её ремейк (для Android) — в 2012.

Какая игра позволяет ее сделать, после чего, не поддерживая, получать деньги 10 лет?

Baskakov_Dima ()
Ответ на: комментарий от ranka-lee

Читайте текст внимательно. Пиратство будет в принципе неактуальано, так как игра уже будет выкуплена заранее собранной суммой денег.

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

Человек не купит три игры - не сможет голосовать. МБ даже две.

И что? Ничто не мешает нажать кнопку «я бы поиграл» и не купить порт когда его зарелизят

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

Еще раз. Человек проголосовал за порт один раз, не купил. Второй раз проголосовал, не купил. Хочет в третий раз - хрен ему, пока один из портов не купит. А в принципе голосовать можно только при покупке хотя бы одной платной игры.

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

Ну давай хоть ты ответь. Вот смотри. 1). GLIBC обратно совместим и нормально запускает старые программы, а сбои в обратной совместимости остались в 90-х 2). Все остальные библиотеки программа таскает с собой. 3). Что может пойти не так?

Наверное, ты спросишь «в чём отличия от статической линковки». А вот в чём. Если мы собираем программу в CentOS 5 (база стандарта LSB), то если мы скопируем ВСЕ зависимости программы в «lib», а потом вычтем эти библиотеки:

libdl.so.2		libcrypt.so.1
libz.so.1		libncurses.so.5
libutil.so.1		libpthread.so.0
librt.so.1		libpam.so.0
libgcc_s.so.1		libstdc++.so.6
libX11.so.6		libXt.so.6
libGL.so.1		libXext.so.6
libICE.so.6		libSM.so.6
libXi.so.6		libGLU.so.1
libXtst.so.6		libglib-2.0.so.0
libgobject-2.0.so.0	libgmodule-2.0.so.0
libgthread-2.0.so.0	libatk-1.0.so.0
libpango-1.0.so.0	libpangoxft-1.0.so.0
libpangoft2-1.0.so.0	libgdk_pixbuf-2.0.so.0
libgdk_pixbuf_xlib-2.0.so.0	libgdk-x11-2.0.so.0
libgtk-x11-2.0.so.0	libpangocairo-1.0.so.0
libQtCore.so.4		libQtGui.so.4
libQtNetwork.so.4	libQtXml.so.4
libQtOpenGL.so.4	libQtSql.so.4
libQtSvg.so.4		libfontconfig.so.1
libpng12.so.0		libjpeg.so.62
libXrender.so.1		libfreetype.so.6
libXft.so.2		libcairo.so.2
libxml2.so.2		libqt-mt.so.3
libasound.so.2		libcups.so.2
libcupsimage.so.2

То в итоге останется 5 Мб зависимостей. При этом в Ubuntu 13.04 программа запустится, потому что там поддерживается LSB (пруф). А если вместо CentOS скомпилируем в Ubuntu 13.04, то останется 50 Мб зависимостей. Потому что вместо этих версий библиотек компилятор задействует более новые и не совместимые со старыми. Дистрибутивы Linux не таскают в своих /usr/lib по 15 версий одних и тех же библиотек - только две: вон те из списка, и текущие последние версии.

Что может пойти не так? Где в работе программы могут появиться глюки и сбои?

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от Baskakov_Dima

Человек проголосовал за порт один раз, не купил. Второй раз проголосовал, не купил. Хочет в третий раз - хрен ему, пока один из портов не купит.

В третий раз никто уже портировать не будет, потому что не окупилось.

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

Ну давай хоть ты ответь.

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

Разработчики игр: мы не будем выпускать игры для linux, слишком геморройно тестировать.
Зенитур: мне становится смешно.

xtraeft ★★☆☆ ()
Ответ на: комментарий от ranka-lee

>> Я говорю о них потому что мне сказали «разработчики не хуже тебя знают всё о портировании игры на линукс», и тут же «необходимо тестировать на огромном количестве дистрибутивов Linux».

> Они прекрасно знают, именно потому и говорят про тестирование.

>> И делает по стандартам, чтобы всё сразу везде заработало.

> Какие стандарты? Их по факут нет.

Да, их нет, ты прав! Но их нет только для открытого ПО. А для проприетарщиков они есть, и здорово упрощают дистрибьюцию под линукс. А ты продолжай тратить недели на хождение по граблям в тумане: компилировать софт в домашней убунту, чтобы он запускался только у тебя одного, а потом заставлять его работать в других дистрибутивах Linux.

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

Тогда подождём ответа waker. Самое смешное что есть примеры нормально работающего линуксового софта, который никто не стремился проверять абсолютно везде. Например Humble Bundle прошлых лет. Никто не пересобирал бинарники для современных систем, а они работают. Десятки игр, да. Или вот такой пример: NVIDIA CUDA: http://developer.download.nvidia.com/compute/cuda/5_5/rel/installers/cuda_5.5... Cg: http://developer.download.nvidia.com/cg/Cg_3.1/Cg-3.1_April2012_x86_64.tgz не важно какой у тебя линукс - это у тебя заработает.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 1)
Ответ на: комментарий от Baskakov_Dima

Для маленького разработчика даже прецедент может стать серьёзным ударом по бюджету, особенно если они не собираются выбрасывать порт в открытое плаванье как это делалось во времена loki games, а осуществлять поддержку тех, кто его всё-таки купил. Здесь имеет смысл только предзаказ/краудфундинг, только линуксойды на это вряд ли готовы пойти.

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

Самое смешное

самое смешное, что у тебя нет никакого представления о тестировании и поддержке коммерческих продуктов.

и смысл тут далеко не только в возможности запуска бинарника.

xtraeft ★★☆☆ ()
Последнее исправление: xtraeft (всего исправлений: 1)
Ответ на: комментарий от xtraeft

Ну а что может пойти не так-то?! Приложение использует СВОИ библиотеки! Из которых вычтены стабильные из списка выше. Никакой патченный костыльный GTK от Васи из Canonical не используется.

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

Приложение использует СВОИ библиотеки!
Ну а что может пойти не так-то?!

что угодно.
видеодрайвер, иксы

xtraeft ★★☆☆ ()

можно читать со слов «как итог» (=

предложение крутое, но:

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

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

более того, социальная активность среди стим-пользователей не так уж и высока: сколько из 5 млн активных пользователей голосуют на greenlight? а какой процент от пользователей «не виндовс» будут голосовать за портирование? Сомневаюсь, что новые пользователи сразу полезут в голосования. сомневаюсь, что пользователи, которые используют стим для запуска пары игр будут думать о том, что там запустить. тех же, у кого игр много и без того - явление не такое уж и частое. Не следует ли добавить возможность голосовать за имеющиеся игры тем, у кого, скажем, за 100 игр в коллекции?

как итог:

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

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

вывод: пользователи либо не станут голосовать, либо не смогут.

// ага, весь ответ написал лежа на диване. эталонный диванный аналитик.

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

С чего вы взяли что этой суммы будет достаточно хотя бы на то чтобы окупить связанную с всем этим бюрократию?

ranka-lee ()
Ответ на: комментарий от xtraeft

А, это. Ну, тут всё просто. Драйвер закрытый, и какой бы линукс ни использовался пользователями, у блобов даже контрольная сумма не будет отличаться. Иксы? Маловероятно. На самом деле если у одного юзера проприетартного Flash Player появился сбой, то это не потому что BolgenOS, а ошибка в самом Флеше. Следовательно пользователи других линуксов и техподдержка тоже смогут воспроизвести сбой. То же самое если Nero заглючил, или Oracle Java, или Crossover Wine. А вот если наплевать на стандарты, то да: причина может оказаться в костыльном патче на GTK и Cairo, в сырости libpng17... Не говоря уже о том что у конечных пользователей программа вообще не захочет запускаться, требуя 5-10 библиотек.

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

А для проприетарщиков они есть, и здорово упрощают дистрибьюцию под линукс.

Да, они есть. Называются они вроде бы «RedHat». Игры же будут делать только под Убунту, если у вас что то другое то все вопросы и претензии будут отправлять в /dev/null.

ranka-lee ()
Ответ на: комментарий от ZenitharChampion

Драйвер закрытый, и какой бы линукс ни использовался пользователями, у блобов даже контрольная сумма не будет отличаться. Иксы? Маловероятно. На самом деле если у одного юзера проприетартного Flash Player появился сбой, то это не потому что BolgenOS, а ошибка в самом Флеше.

с чего ты решил, что у всех пользователей будет одна и та же версия иксов, блоба (кстати, а может блоба то у них и вовсе нет)?
как ты собрался решать такие моменты без саппорта и тестирования?

xtraeft ★★☆☆ ()

Тут важный момент что PC есть маргинальная платформа. Более-менее живёт только на переходе между поколениями консолей. Линукс в свою очередь маргинальная платформа внутри другой маргинальной платформы.

ranka-lee ()
Ответ на: комментарий от Baskakov_Dima

Прочитал. Поток сознания кухонного теоретика, не знакомого с тонкостями области, щедро приправленный слепым фанатизмом в отношении Linux на десктопе.

Kor03d ★★ ()
Ответ на: комментарий от ranka-lee

Неправильно. RH позаботился о совместимости для всех, а не только для себя. Примеры я неоднократно приводил. И где была бы твоя убунта, если бы не RH? http://packages.ubuntu.com/raring/lsb-desktop В то время как у самой убунты нет совместимости между двумя версиями, поэтому Valve таскает с собой 200 Мб библиотек изUbuntu 12.04 (Список выше).

ZenitharChampion ★★★★★ ()

Мотивировка

Монтировка

Мультиварка

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

Разница между тем что в стандарте написано и тем что есть на самом деле часто огромная. Гарантировать их более-менее можно только на одной системе.

ranka-lee ()

Зашёл пошутить про монтировку, а тут уже.

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

Никакой патченный костыльный GTK от Васи из Canonical не используется.

бери выше! игру распространять в комплекте с едром и дровами на образе флешки.

зы: остальное еще не дочитал, щас попробую ответить.

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

Смотрел. А ты в свою очередь тогда посмотри на вывод «cd ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu && ls»

ок. т.е. в арче вся эта бодяга не запускается по какой-то иной причине? а ты пробовал бинарный гуглчром запускать в не-убунте? проблем с зависимостями не было? у меня были. файрфокс? то же самое. да, запускается, только это не называется «работает везде». это называется «юзер может накостылить и запустить». не будем путать понятия, ок?

$ cd ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
bash: cd: /home/waker/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu: No such file or directory

убунта 12.04 i686, стим установлен. ЧЯДНТ?

впрочем, я его (стим) не запускал полтора месяца, может они всю эту байду, что ты пишешь, за это время накостылили. проверять влом.

«sudo sh NVIDIA-Linux-x86_64-325.08.run». Только я ещё ядро обновлял

во-во. у меня в арче как раз на этом затык был, когда я пытался новые дрова поставить, которые зависят от нового ядра, а новое ядро хочет обновить полсистемы :D пришлось весь арч обновить, он и сдох. поставил с нуля — стим обновился, но запускаться так и не захотел. в итоге пришлось убунту поставить. вот вам и LSB.

Тем не менее, стандарт LSB избавляет от проблем

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

В Lenny же GCC 4.3? Я предпочитаю 4.1. Вернее, предпочитал: слишком многое в нём не собирается. Обновил до 4.5 и кладу в lib ещё и libstdc++.so.6.0.15.

а я вообще не в курсе, что за GCC в lenny. неинтересно мне. я даж не устанавливал в нем компилятор. собираю компилятором, который стоит щас на загруженой системе, будь то арч (в прошлом), дебиан, убунта, или что угодно другое. а работает и в lenny, и в centos, и т.д. невероятно, да?

Maya for Linux тестировалась только в RHEL и SLES, тем не менее успешно запускается в Ubuntu и не глючит.

у тебя, как я понимаю, есть какие-то инсайды в бывшем Alias|Wavefront, а ныне автодеске? или откуда такая инфа? что за стандартизация? откуда она взялась? если стандартизация так крута — могу ли я теперь писать код вообще не запуская для проверки?

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

не могу еще раз на это не ответить :D

Никакой патченный костыльный GTK от Васи из Canonical не используется.

а что, если ты, например, положил, gtk в свою игру.... а тут бац — и в новой убунте иксов нет, а вместо них Mir. как твоя игра работать будет? а во всех остальных дистрах иксы, ога.. ну и может еще где-то wayland для прикола. а ты понадеялся на LSB, и проверил только с иксами на своей убунточке LTS. че делать тогда?

кстати, а GTK вообще покрывается LSB? (я понимаю, что GTK в играх нахрен не вдулся, но вот в стиме нужен например)

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

А для проприетарщиков они есть, и здорово упрощают дистрибьюцию под линукс.

и опять тот самый уже давно успевший надоесть вопрос — ты откуда это придумал?

не важно какой у тебя линукс - это у тебя заработает.

разве у cuda и cg есть какие-то зависимости, ну кроме libc и драйвера? это не софт вообще, а мидлварь. удивительно было бы, если бы и она не работала.

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

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

Baskakov_Dima ()
Ответ на: комментарий от ranka-lee

Консоли очень дороги для конечного пользователя и имеют много минусов. Я предсказываю им смерть лет через 10, когда обращение с компом станет еще проще, и все преимущества консолей сойдут на нет.

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

Консоли дорогие? И какие минусы у них есть, если не смотреть с точки зрения красноглазия? Включил игру - оно играет. Выключил - не играет. Идеальное устройство. Главное игры спиратить практически невозможно.

Я предсказываю им смерть лет через 10, когда обращение с компом станет еще проще, и все преимущества консолей сойдут на нет.

Ну-ну. Вот в победу планшетов над PC я могу поверить.

ranka-lee ()
Ответ на: комментарий от Baskakov_Dima

Которую любители игр для линукса не соберут потому что денег у них нет. У тех у кого есть есть консоль и нет проблем с играми.

ranka-lee ()
Ответ на: комментарий от ranka-lee

Поясняю.

1) Геймпад никогда не сравнится с мышкой, а позиционирование типа Playstation Move можно реализовать и на ПК. 2) У консоли хуже параметры, меньше оперативной памяти, хуже видеокарта, нет возможность подключить нормальный джойстки, и прочие аппаратные ограничения. 3) Реально дорого, неоправданно дорого.

Baskakov_Dima ()
Ответ на: комментарий от ranka-lee

Зависит от суммы. Игроков много, это не кто-то один должен сделать.

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

>>>> Все прочие библиотеки Steam таскает с собой

>>> ты хоть бы посмотрел на вывод ldd, прежде чем такое писать.

>> Смотрел. А ты в свою очередь тогда посмотри на вывод «cd ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu && ls»

> ок. т.е. в арче вся эта бодяга не запускается по какой-то иной причине? а ты пробовал бинарный гуглчром запускать в не-убунте? проблем с зависимостями не было? у меня были. файрфокс? то же самое. да, запускается, только это не называется «работает везде». это называется «юзер может накостылить и запустить». не будем путать понятия, ок?

Изначально я утверждал что главное чтобы был GLIBC поновее, а в дальшейшем программу можно так приготовить, что она запустится абсолютно в любом линуксе. В Арче запускается, конечно же. А вот гентушники предпочитают STEAM_RUNTIME=0 - говорят, потребление памяти сильно снижает.

Гуглохром не в убунте запускать пробовал - из RPM-ки для Fedora и openSUSE. Недавно разработчики прекратили поддержку RHEL 6. Дело в том что разработчики программы сочли LSB слишком старым - в частности GTK. А вот у Google Earth в системных требованиях сказано «Библиотеки LSB 4.0».

А вот про фаерфокс - это ты зря сказал! Понятное дело что DEB-ка для убунты нигде у тебя не запустится - даже в другой версии убунты. А вот с http://getfirefox.com/ запускается везде: и в моём старом openSUSE 10.2 и не совсем старом 11.4, и в Ubuntu 7.04-13.04, и в Fedora 6-19. И то же самое со флешем. Неудивительно. В Wiki Fedora сказано что портом браузера Firefox на Linux занималась Red Hat. В этом причина того что Firefox уже 10 лет использует именно GTK, и запускаемости в любом линуксе. Официальные бинарники Firefox вообще яркий пример работающих стандартов в линуксе, хотя он и Open Source!

>> «sudo sh NVIDIA-Linux-x86_64-325.08.run». Только я ещё ядро обновлял

> во-во. у меня в арче как раз на этом затык был, когда я пытался новые дрова поставить, которые зависят от нового ядра, а новое ядро хочет обновить полсистемы :D пришлось весь арч обновить, он и сдох. поставил с нуля — стим обновился, но запускаться так и не захотел. в итоге пришлось убунту поставить. вот вам и LSB.

Ничего подобного, драйвер NVIDIA поддерживает ядра Linux 2.4 и 2.6. До сих пор! А также очень старые X.Org и XFree86. Да-да, драйвеп самых последних версий, с поддержкой OpenGL 4 и VDPAU, запускается в Mandrake! Ядро я обновлял действительно ради ext4 - сначала 2.6.32 из LTS, а потом compat-wireless сверху.

>> В Lenny же GCC 4.3? Я предпочитаю 4.1. Вернее, предпочитал: слишком многое в нём не собирается. Обновил до 4.5 и кладу в lib ещё и libstdc++.so.6.0.15.

> а я вообще не в курсе, что за GCC в lenny. неинтересно мне. я даж не устанавливал в нем компилятор.

С таким подходом тебе не нужна отдельная система для сборки. Воспользуйся веб-сервисом OBS. Компиляция на удалённом сервере-суперкомпьютере. Бесплатно. Поддерживается 21 дистрибутив Linux нескольких релизов и архитектур процессора. Debian и Arch тоже поддерживаются. Достаточно сунуть сервису исходный код и spec-файл.

>> Тем не менее, стандарт LSB избавляет от проблем

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

Это значит что для компиляции проектов нужно использовать не домашнюю систему, а RHEL/CentOS 5. Давай объясню на примере.

> собираю компилятором, который стоит щас на загруженой системе, будь то арч (в прошлом), дебиан, убунта, или что угодно другое. а работает и в lenny, и в centos, и т.д. невероятно, да?

Это очень плохо. Вот портировали на линукс UTorrent. Последний релиз был в 2011 году. Компиляция осуществлялась в Ubuntu 11.10. Те релизы библиотек не встречаются в современных линуксах, поэтому запуск программы может быть проблемным. А собирали бы в CentOS 5 - работало бы везде. То же самое можно сказать про 3D-бенчмарк geeks3d. Собран в Linux Mint 11. Кое-где уже не запускается без подсовывания библиотек. Это всё равно что вместо libGL.so.1 использовать какой-нибудь libGL.so.2, а потом через год выходит libGL.so.3 и у всех не работают игры!

Или вот представь если игры Humble Bundle компилировались бы в Ubuntu 9.10. Первый год никто бы ничего не заметил - работает же. Во второй подсунули бы внезапно пропавшие библиотеки из старой системы. Потом все эти игры стали бы неюзабельными и не вошли в Steam без пересборки в Ubuntu 12.10. Тем не менее, они работают и сейчас. Их никто не тестировал в новых версиях дистрибутивов Linux, потому что не было их ещё тогда! Но работают. Как часы.

> если стандартизация так крута — могу ли я теперь писать код вообще не запуская для проверки?

Нет. Стандартизация - это когда ты отлаживаешь код так же, как и в Windows. Сосредоточившись на ошибках программы. Когда перед тобой не стоит проблемы бинарной несовместимости между разными версиями ОС.

>> Maya for Linux тестировалась только в RHEL и SLES, тем не менее успешно запускается в Ubuntu и не глючит.

> у тебя, как я понимаю, есть какие-то инсайды в бывшем Alias|Wavefront, а ныне автодеске? или откуда такая инфа?

Спиратил, но сейчас естественно удалил!

>> Никакой патченный костыльный GTK от Васи из Canonical не используется.

> а что, если ты, например, положил, gtk в свою игру.... а тут бац — и в новой убунте иксов нет, а вместо них Mir.

Тогда система не соответствует стандарту LSB 4, в ней вообще не будет работать никакая графическая проприетарщина.

> кстати, а GTK вообще покрывается LSB? (я понимаю, что GTK в играх нахрен не вдулся, но вот в стиме нужен например)

Да, в нём прописана версия GTK 2.10. Скомпилировав с ней ты можешь быть уверен, что в 2.28 и 2.32 твоя программа тоже заработает. За совместимостью следят в Red Hat. Сейчас в дистрибутивах Linux GTK3, но GTK2 тоже остаётся - потому что иначе не будет совместимости с LSB. Но похоже скоро выйдет LSB 5 без GTK2 и Qt4. И тогда NVIDIA Settings перепишут на GTK3.

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

1) Геймпад никогда не сравнится с мышкой, а позиционирование типа Playstation Move можно реализовать и на ПК.

Вы когда нибудь геймпад в руках вообще держали? С игрой заточенной под него? Ощущения совершенно иные, никакая мышка с клавиатурой не сравнятся вообще никогда.

2) У консоли хуже параметры, меньше оперативной памяти, хуже видеокарта, нет возможность подключить нормальный джойстки, и прочие аппаратные ограничения.

Ну-ну. Формально это да. На практике консоли рвут ПК много-много лет после выхода. Прямой доступ к железу, отсутствие кучи прослоек даёт очень многое. Разница может быть буквально в сотни и тысячи раз. И вещи в принципе недоступны на ПК. Вы можете например выделить на ПК память на кэше процессора?

3) Реально дорого, неоправданно дорого.

Xbox360 продаётся в магазине за 10к рублей. Это разве много? Игры чуть дороже чем в Стиме. Если это много - то хорошо учитесь и найдите нормальную работу.

ranka-lee ()
Ответ на: комментарий от waker

Я решил дополнить свой ответ скриншотами. Человек выше говорил что «стандартов нет: все ноют что они нужны, но при этом плюют на них». Сейчас я покажу что это не так. Есть LSB и Steam Runtime, и если первый стандарт официально, то второй всё больше становится негласно.

LSB

  • Braid, libgcc_s, libstdc++, LibCg. Запустить такую игру в старом линуксе не должно составлять проблем: GLIBC скорее всего использовался старый, а GCC наоборот новый - его Runtime лежит в каталоге с игрой.
  • Amnesia, куча всего. ldd ещё длиннее, но эти библиотеки в каталоге lib игры не лежат: согласно стандарту LSB они обязаны быть в любом дистрибутиве Linux для десктопа. Amnesia - пример очень хорошего бинарника для Linux. Авторы основательно подошли к делу: инсталлятор, деинсталлятор, обновляющие патчи, создание пунктов меню. Он будет ещё долго работать.
  • Oil Rush, Qt 4. Видимо, LSB-шный Qt 4.3 для разработчиков оказался слишком старым.
  • Adobe Flash, одним файлом. Работает в любом линуксе 2007-2013 года. И нигде не выдаст что-то вроде этого:
    zenitur@linux-athlon64x2:~/bit.trip.runner-1.0/bit.trip.runner> ./bit.trip.runner
    ./bit.trip.runner: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./bit.trip.runner)
  • Nero, только свои библиотеки. Потому что GCC 4.1 и GLIBC 2.5, а обратная совместимость всех новых версий этих библиотек работает без сбоев.
  • The Clockwork Man, собрана по LSB. Ничего с собой не тащит, работает везде.
  • Doom 3, libgcc_s и libstdc++. Тут вообще GCC 4.0, чего стандарты не требуют. Потому что порт 2005 года. Превосходно запускается без дополнительной настройки в Ubuntu 13.04.
  • Adobe Reader. Я бы рад сказать «вообще не таскает с собой библиотек, так как LSB, база из самого необходимого есть в любом линуксе». Но нет.

Как видим, в основном libstdc++ и libgcc_s, а также libSDL и OpenAL.

Сначала Valve решили поддерживать ровно один линукс, Ubuntu 12.04 LTS. К моменту релиза вышел Ubuntu 12.10. Допустим, 5 библиотек, от которых зависит Team Fortress 2, в Ubuntu 12.10 были заменены новыми версиями. Эти 5 библиотек можно было распространять со Steam. Через два месяца вышел Ubuntu 13.04. «Да вы там вообще офигели библиотеки менять?!» - наверное, сказали разработчики, и сделали Steam Runtime - 200-мегабайтный bootstrap Ubuntu 12.04.

Ну так вот. Если старые проприетарные игры собирались по LSB, то после появления Steam Runtime стандартом для новых игр всё больше становится он, а не LSB. Теперь вместо RHEL/CentOS 5 для компиляции игры можно использовать Ubuntu 12.04, и у всех заработает. Правда в каталог программ Steam не всех пускают.

Steam Runtime

  • Trine 2. Первый Trine был портирован Linux Game Publishing и в каталоге lib там 50 библиотек - наверное, все зависимости. В Mandrake запустился - не запустился только лаунчер, потому что GTK как раз положить забыли. А вот второй несёт в lib только Cg, libSDL и PhysX - остальное берётся из Steam Runtime. Вне Steam, насколько я знаю, для Linux не продаётся.
  • Beat Hazard, libpng и libjpeg и какие-то liballegro, libbass, libvstdlib.
  • Dungeon Defenders, libSDL, libopenal
  • Super Hexagon, libopenal, libglut, libglew, libvorbis, libogg.
  • Defender's Quest, libxslt, libXt, libSM, libuuid, libICE, libxml2. Похоже что это вообще все зависимости игры, и зачем их класть было я не знаю: LSB и Steam Runtime дублируют всё это оба.
  • Caprised, Mono, SDL, Vorbis.
  • Bastion, Mono и SDL.
ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от Baskakov_Dima

Много раз встречал это слово. По сути есть замечания?

мотивация. То, где встречал это слово больше не читай.

dikiy ★★☆☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.