LINUX.ORG.RU
ФорумGames

Будущее гейм-дева под linux

 , ,


1

3

When it comes to Linux game development and porting, Ryan «icculus» Gordon is The Guy.

Since the 1990s, Gordon has ported dozens of games to Linux, from Quake 3 Arena to Dear Esther, making him one of the foremost experts in Linux game development. His expertise in Linux games also led to a gig porting Humble Bundle games to Linux, helping developers build goodwill with users of the open-source OS.

With Valve Software's biggest Linux push yet in SteamOS and Steam Machines, we asked Gordon in an email Q&A what the future holds for Linux game development.


You've done a lot of Linux ports! What's so appealing about Linux, and what got you started with porting?

I worked for a company called Loki, which did Linux ports of triple-A games. It was a model that seemed feasible on the Mac, where a few different companies were already doing this sort of thing. I had been an exclusive Linux user for a few years at that point, because I fit the profile in 1999: a young student that was bored, curious, and flat broke. [smile]

When I got the offer to do Linux work on games like Quake 3 Arena, Heroes of Might and Magic, etc. I would have been a damned fool to turn that job down.

After Loki, I made a very long distance cold-call to Croatia to ask about doing a Linux port of Serious Sam, and it sort of spiraled out of control from there.


With the SteamOS announcement, there will probably be a lot of devs looking for people like you to do ports. What kind of expertise is needed to work with Linux, and what are some of the most challenging aspects of it?

It's probably best to think of it as a cross between console and PC development. Some of it is special-case knowledge, the way one might know the details of the PlayStation 3 SPU, but all of it is much more open: you work on any old computer you like, you download the tools for free, and all the information--documentation, technique, conversation and debate--are all one Google search away. There aren't NDAs [non-disclosure agreements]. To become a developer, you just decide to do it.

Developing for Linux used to be much harder. Now we have better tools (like the newly-shipped SDL 2.0.0) to make game porting (and game development) much easier, and we're probably benefiting from the success of iOS here, too; finding people that know how OpenGL works, or even a generic Unix system works, is much easier than it used to be.

My experience has been that porting a game from Windows to Linux might take months, but porting a game from Mac OS X to Linux might take days. It's anecdotal, but it seems to often be the case. The existing Mac and iOS developers might find Linux to be pretty welcoming in that regard.


I just saw that Nvidia has been working with Valve on SteamOS. How might help with Linux development?

You would not believe the amount of engineering that went into improving video drivers (not just from Nvidia) for Valve's initial Steam launch on Linux.

Naturally, it'll help...Nvidia's drivers were already top-notch on Linux--discounting the different bits of glue for wgl and glX, my understanding is that it's literally the same driver source code across Windows and Linux, if that gives you a frame of reference--and making them better is just icing on the cake as far as I'm concerned. I'll gladly take those wins.

That being said, I don't think that is the most important thing about that blog post. The unspoken message is this: there's some opportunity here, whatever it might turn out to be, and instead of someone in a back room inking a deal to be This Console Generation's Video Chip, GPU vendors are apparently going to compete to be the best thing for the Steam Box. This means that not only Steam Box users benefit, but all Linux gamers as well. I'm pretty happy about this.


What will it take for Linux to become a more viable platform for players and game developers?

You're seeing it happen right now. I think three major events in the past year have really accelerated this proposition:

Humble Bundle keeps proving that Linux users exist and will throw hard-earned money down for games.

Unity3D made it possible to target Linux pretty trivially, even for developers that don't know much (or anything) about Linux, so really interesting games are showing up without much engineering overhead.

Valve shipped a Steam Linux client, and games are slowing trickling in...and that trickle has been accelerating. It'll be interesting to see what happens now with SteamOS.

The short answer: it takes money and games, and both are flowing in now.

Полная версия: http://www.gamasutra.com/view/news/200997/QA_Understanding_the_future_of_Linu...
Для тех, кому лень читать на английском: http://www.noob-club.ru/index.php?topic=27451

★★★★★

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

Ну не мудрено, ты же за свободное ношение одежды :)

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

Помидоры свободны.

А FSF следит за этим? Вдруг, кто выпустит несвободный помидор. А как они борются с несвободными блюдами, в которые добавляют свободные помидоры? Был недавно в ресторане, помидоры были, рецепт не дали.

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

Закончу мысль. Я не стал говорить о том, что считал очевидным. Icculus в интервью говорит что порт с Windows занимает месяц, а с Mac - два дня. Сделав порт на Linux, написав весь необходимый код, разработчики компилировали его прямо в домашней системе, и выкладывали готовые бинарники! Они же не знали что совместимости может не быть не только между разными линуксами, но и между разными версиями одного! Меня это удивляло ещё тогда, когда только начинал: почему RPM-ка от SuperTux 0.2 не работает в другой версии Мандривы, и нужно скачивать другую RPM-ку той же самой игры? Хотя исходный код один!

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

Если раньше разработчики делали сборки прям командой make в рандомном дистрибутиве Linux рандомной версии, то после Steam for Linux то, что подготовку нужно проводить, наконец-то стало очевидно для всех. Поэтому количество игр уже сейчас выросло - их уже сотни, а не десятки, как было ещё год назад. А когда на смену пакетной базе Ubuntu 12.04 в качестве основы для игр придёт SteamOS, когда Valve доделает SDK и дебаггер - я думаю, тогда мы и увидим массовый, а не индивидуальный, выпуск популярных игр для Linux!

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

LSB

В lsb есть sdl2.0? А какая согласно lsb минимальная версия OpenGL?

CentOS

Там же ядро пятилетней протухшести и соответствующие драйвера.

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

для того, чтобы игра работала в любом дистрибутиве Linux, достаточно скомпилировать её в CentOS.

не любой дистр соблюдает LSB.

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

это совсем не искоробочное решение. только статик-линкинг спасет отца русской демократии!

ну и вообще, сборка на centos не панацея. что если игра использует либу, которая есть в centos, но не входит в LSB?

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

когда Valve доделает SDK и дебаггер

вот-вот! как только они это доделают - собирать можно будет на любом дистре. я, например, для сборки своего проекта такой sdk сам сделал.

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

пиши письмо о закрытых помидорах на Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Я уверен, там оценят

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

пиши письмо о закрытых помидорах на Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Я уверен, там оценят

Попросят ресторан линковать с томатной пастой на ароматизаторах?

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

будут писать требование об открытии генома в небесную канцелярию

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

>> LSB

> В lsb есть sdl2.0? А какая согласно lsb минимальная версия OpenGL?

Я скачивал несколько десятков игр из Humble Bundle, наверное 90% из них портированы Icculus. В архиве с игрой сразу лежат несколько библиотек, это libstdc++.so.6, libopenal.so.1, и libSDL 1.2 (три библиотеки). Первое в LSB есть, но старое. Если кому-то не устраивают GTK+ 2.10 и Qt 4.3 из LSB, то всегда можно потащить с программой версию новее для сохранения совместимости. Например GTK+ 3.

OpenGL не важно же какой в системе, 2.1.2 или 4.2.

>> CentOS

> Там же ядро пятилетней протухшести и соответствующие драйвера.

Даже если не заработают звук и Wi-Fi, это же не страшно. Главное - скопилировать. Есть виртуальные машины. RHEL/CentOS поддерживаются в OBS.

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

>>>>> Ну давай скомпилируй мне помидоры из них.

>>>> Я не могу.

>>> Будешь есть проприетарные? :D

>> Помидоры свободны.

> А FSF следит за этим? Вдруг, кто выпустит несвободный помидор. А как они борются с несвободными блюдами, в которые добавляют свободные помидоры? Был недавно в ресторане, помидоры были, рецепт не дали.

1: А переход на Linux можно описать так: я перестал воровать помидоры и теперь кушаю те, которые мне отдала благотворительная организация :-)
2: lol! а помидоры столько же вкусные?
1: В принципе да, некоторые из них даже немного лучше магазинных. Но из них сложнее сделать салат: нужен драйвер ножа, который разработчки уже не поддерживает, тарелки и вилки. Кроме того, майонез, который я использовал раньше, оказался не совместим с новыми помидорами. Но в организации мне предложили другой майонез, он немного непривычный и странного синего цвета, но на вкус как будто тот же самый :)

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

А за что ты тогда ненавидишь?

Это обсессивно-компульсивное расстройство :)

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

1: А переход на Linux можно описать так: я перестал воровать помидоры и теперь кушаю те, которые мне отдала благотворительная организация :-) 2: lol! а помидоры столько же вкусные?
1: Но из них сложнее сделать салат: нужен драйвер ножа, который разработчки уже не поддерживает, тарелки и вилки. Кроме того, майонез, который я использовал раньше, оказался не совместим с новыми помидорами. Но в организации мне предложили другой майонез, он немного непривычный и странного синего цвета, но на вкус как будто тот же самый :)

А потом ты получишь 12309 в кишечнике.

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

Например GTK+ 3.

а как ты предлагаешь решать проблему с несовместимостью gtk3-тем между версиями? тут, как я понимаю, 2 варианта — либо отключить системные настройки gtk3, либо вылететь :) и оба варианта плохие.

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

вспомнилась книга Hacking Xbox, был удивлен, когда узнал что есть такие труды

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

Хм, не думал об этом. Вот файл запука игры VVVVVV:

#!/bin/sh

# Change to game directory
CANONPATH=`readlink -f "$0"`
cd "`dirname "$CANONPATH"`"

# Check resource folders exist
if [ ! -e data ]
then
	echo "You are missing games resources `pwd`"
	echo "Your installation is incomplete!"
	exit 1
fi


MACHINE=`uname -m`
if [ "$MACHINE" = x86_64 ]
then
	LIBS=./LIB64
	BIN=./VVVVVV_64
else
	LIBS=./LIB32
	BIN=./VVVVVV_32
fi

# Run the game:
export LD_LIBRARY_PATH=$LIBS:"$LD_LIBRARY_PATH"
$BIN $@

Скрипт сам определяет разрядность процессора, запускает нужный бинарник и подставляет каталог с зависимостями (libSDL и libopenal). Может его можно дописать и указать каталог с темами для GTK.

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

>> для того, чтобы игра работала в любом дистрибутиве Linux, достаточно скомпилировать её в CentOS.

> не любой дистр соблюдает LSB.

Любой, иначе у тебя бы не заработала ни одна проприетарная программа.

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

Всё проще: в /usr/lib лежит libjpeg62 и последняя версия, libpng12 и libpng15, libopenssl.so.0.9.8 и libopenssl.1.0.1.

> ну и вообще, сборка на centos не панацея. что если игра использует либу, которая есть в centos, но не входит в LSB?

Не стал об этом писать, чтобы не усложнять и так усложнённый текст. Класть в архив tar.gz с программой или прописывать в зависимости к RPM/DEB. Например Google Chrome требует слишком новый второй GTK, в зависимости к RPM/DEB он прописан.

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

Разница есть. Одно дело - порты Icculus и libsdl, libopenal, libIL и libCg, а остальные библиотеки берутся из системы. Другое - первый Trine, в который положили все зависимости - библиотек 30. Steam вообще не заморачивались и положили 292,5 Мб библиотек из 32-битной Ubuntu 12.04.

Ссылки по теме: http://packages.ubuntu.com/raring/lsb-desktop http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Desktop-generic/LSB-Desktop...

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

Потому что они портируют проприетарщину под GNU/Linux.

А в чем проблема ей не пользоваться? Ты же сам ей пользуешься, например браузером ;)

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

ты непонел.

конечно, ситуация чисто гипотетическая — в играх обычно не используется gtk.

но сама идея такая.

есть gtk3.0.0 на машине у юзера. он понаставил тем. тема, которую он использует, на более новых версиях gtk вылетает.

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

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

А FSF следит за этим?

Они даже код Столлмана не выложили.

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

Любой, иначе у тебя бы не заработала ни одна проприетарная программа.

ты читать умеешь? они и не работают искоробки.

Всё проще: в /usr/lib лежит libjpeg62 и последняя версия, libpng12 и libpng15, libopenssl.so.0.9.8 и libopenssl.1.0.1.

все еще проще: пока я их не установлю, сам, по своему желанию, их там нихрена нету. я про генту и арч, если что.

Google Chrome требует слишком новый второй GTK, в зависимости к RPM/DEB он прописан.

но он не тащит его с собой. значит не под lsb собран. так?

зы: на остальное мне отвечать нечего, т.к. оно вообще к теме разговора отношения не имеет.

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

Во-первых, требую пруф.

Во-вторых, при работе с WebMoney/секретным почтовым ящиком/ещё чем-нибудь важным (но редко нужным) я использую Tor Browser.

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

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

Это к нему вопрос.

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

Во-первых, требую пруф.

Запусти wireshark и поснифай трафик без вкладок. Либо начни печатать что-нибудь в адресной строке :)

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

Либо начни печатать что-нибудь в адресной строке

Оно же сходу гуглит, ес-сно будет траффик к гуглу.

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

Я нищеброд, денег нет.

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

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

Да нет, пакет lsb-desktop это мета-пакет, который сам всё установит. Ссылку я давал.

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

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

Chromium свободен

Свободный анальный зонд свободно входит в... свободного... ну ты понял.

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

скорее ты станешь директором в валв...

Thero ★★★★★
()

After Loki, I made a very long distance cold-call to Croatia to ask about doing a Linux port of Serious Sam, and it sort of spiraled out of control from there.

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

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

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

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

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

anonymous> Не взлетит, зачем все это когда есть годная плойка?

На PlayStation нет игр.

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

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

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

Valkeru> Я думаю, разработчики знают про LSB. Но ограничиться убунтой им реально проще в плане поддержки. Иначе придётся разгребать убунтупроблемы, арчепроблемы, гентупроблемы, пифедоропроблемы

Нет - не знают. И разгребать проблемы совсем не нужно - достаточно собирать так же, как под венду: таскать с собой библиотеки. Почему-то производители софта вроде Matlab (а он посложнее всех этих игр) проблем не испытывают.

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

Не обязательно пользоваться видеоблобом, чтобы играть в игры. Достаточно поставить видеокарту, а не nvidia. А про «самотканные вещи» и т.п. - бред, который к теме даже не относится.

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

А вот это глупость. Проприетарные явно лучше - тоже глупость. Хорошесть игры от проприетарности не зависит напрямую. Есть и превосходные свободные - тот же Tremulous. Есть и хорошие проприетарные, которые непопулярны. Всё дело в пиаре.

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

И где ты был, когда был сбор средств на портирование движка Torque 3D на линукс?

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

Вот и выросло поколение, которое из семян (исходников) не может вырастить помидорину.

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

дорого, с пересылкой связываться лень, да и свободных денег, как назло, нет, а так бы взял для коллекции

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

PolarFox> В lsb есть sdl2.0? А какая согласно lsb минимальная версия OpenGL?

SDL - это SDL. LSB не нужно это стандартизировать. LSB нужно стандартизировать базовую систему, с чем этот стандарт справляется на отлично.

PolarFox> Там же ядро пятилетней протухшести и соответствующие драйвера.

Не имеет значения. API и ABI линукса стабильны, что бы там ни говорили. В последний раз ABI ломали при переходе с A.OUT на ELF.

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

waker> не любой дистр соблюдает LSB.

Тогда это проблема дистрибутива. LSB сделан для того, чтобы везде всё работало. Если в дистрибутиве поддержки нет, то разработчик дистрибутива сам пожелал, чтобы его творение было несовместимым и шло лесом.

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

И в чём проблема это сделать, когда они уже в дистрибутиве есть?

waker> только статик-линкинг спасет отца русской демократии!

А ещё можно просто таскать с собой библиотеки и делать LD_LIBRARY_PATH

waker> вот-вот! как только они это доделают - собирать можно будет на любом дистре. я, например, для сборки своего проекта такой sdk сам сделал.

ldd + cp - нет проблем. Да и в chroot никто не мешает держать среду сборки.

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

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

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

проприетарные программы обычно не пакетированы. юзер качает и запускает программу - она по-умолчанию не работает. пока юзер не сделает лишние телодвижения.

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

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

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