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

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

Проблемы GTK шерифа не волнуют. Шериф выкинет GTK.

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

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

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

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

Чем статика принцпиально отличается от ношения всех библиотек с собой?

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

статика - это и есть ношение всех библиотек с собой.

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

На проприетащине этот 12309 получаешь постоянно.

Можно сходить к врачу. А так тебе придется рыться на форуме и выслушивать советы вроде: «УМВР, стул хороший», «расширь анус, мне помогло», «выпей масла, трение уменьшится».

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

Все отказались от статической линковки. При использовании динамической библиотеку с критической уязвимостью можно обновить, в отличие от статической. Поэтому делают tar.gz с lib32 и lib64, или RPM/DEB без них но с прописанными зависимостями.

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

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

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

здесь подразумеваются [...] под «драйверами» блобы

использую r600g

а под «Linux» бубунту и стим-ос...

Использую gentoo

Внезапно УМВР

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

У тебя логика как и правительства РФ об отечественном автопроме. Плохая, негодная стратегия. Я, например, кроме стим-игр играю в битву за веснот

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

Я имел в виду не то, на чём весь этот разврат работает, а то, что допиливаются не свободные драйверы, а блобы, а разработчики этого фуфла подразумевают не GNU/Linux, а бубунту или свой велосипед (стим-ос)

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

что допиливаются не свободные драйверы

Вполне себе допиливаются. Valve подпиливает свой движок для работы на интелях. AMD драйвер на глазах становится всё тортее (вряд-ли это заслуга вальвов, но энтузиазма и простора для тестирования добавляет).

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

а разработчики этого фуфла подразумевают не GNU/Linux, а бубунту или свой велосипед (стим-ос)

Пока бубунту и стимОС открыты не вижу проблемы. Совместимость легко допиливается. Врядли вальв сделает ставку на всякие неапстримные технологии каноникл (не рискнет из-за возможных проблем с драйверами в будущем). Думаю, при кардинальных отклонениях убунты от апстрима, вальв будут пилить свой форк.

на правах диванного теоретика

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

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

Еще во времена доса делали бинарники dos+os/2 :) Какая-то искусственная проблема: если код написан под «везде» (тут обычно с кулфейсом список платформ прилагается) - под них и надо скомпилить :) Можно пойти по пути idSoftware (по idTech 3 примерно) - превратить движок в «корабль в бутылке» с собственной виртмашиной и промежуточным кодом. «Проблемой» будет только портирование виртмашины (сорцы которой можно как та же idSoftware «кинуть в народ»с кулфейсом :) И торговать «промежуточным кодом»). Разрабы приколотившие себя из маркетинговых соображений к одной платформе(«красноглазики все равно не купят») - ССЗБ. Кто прикинулся девственицей «ой, а там версии ведра и либок разные» - тоже. Рубрика «Вон из профессии!»(Этак-то и на оффтопике рантаймов студии внезапно больше одного и... не все они есть из коробки («Лол... У меня на Win7 не запускается игра, которая работала на XP!»). Костыли типа «MFC/C++ redistributable» и пачку ".Net framework"ов для этого и придумали безо всяких кулстори про «проблемы скомпилировать бинарники».)

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

проприетарные программы обычно не пакетированы

штоа? WAD-фаелы, например, и msi эт по-твоему что? :) Или ты про какие программы?

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

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

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

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

Свободные драйверы тоже допиливаются - Valve уже по шее даёт штеуду за драйверы, из-за чего драйверы приходится улучшать. Что же до блобов AMD и Nvidia... Невидия всегда упиралась, а вот AMD готовит почву для перехода на свободные драйверы - это выгодно для AMD.

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

feofan> Пока бубунту и стимОС открыты не вижу проблемы.

Пока WINE открыт, он для запуска вендоигр допиливается. Короче - ситуация похожа на ту, что с WINE, просто теоретически допилить что надо легче.

feofan> Думаю, при кардинальных отклонениях убунты от апстрима, вальв будут пилить свой форк.

SteamOS что-ли? Возьмут пакетную базу дебьяна и всё. Один фиг Steam Runtime есть и он по факту от дистрибутива не особо зависит.

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

slackwarrior> Можно пойти по пути idSoftware (по idTech 3 примерно) - превратить движок в «корабль в бутылке» с собственной виртмашиной и промежуточным кодом.

Вообще-то таким был Quake Engine, а не id Tech 3. С id Tech 2 от схемы виртуальной машины отказались, поскольку стало возможным использование разделяемых библиотек (кстати, движок Quake сделан по подобию Java).

Quasar ★★★★★
()

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

Светлое — инфа 146%

Но мне не интересно уже игоры гонять: сегодня снес Steam и отдал аккаунт знакомой ;)

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

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

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

так товарищ PolarFox прав, в третьем движке виртуальная машина, я сам видел :)

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

gensym> Но мне не интересно уже игоры гонять: сегодня снес Steam и отдал аккаунт знакомой ;)

Значит зла ей желаешь. Ежели Valve узнает, то забанит аккаунт. И все игры, которые она купил, коту под хвост.

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

Ну тем лучше, что VM. Интересно, как в id Tech 4. Lua выполняется просто как скриптовый язык или виртуальная машина таки есть?

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

а там разве lua? я вот что-то пробежался по исходникам(поверхностно, конечно) и нигде упоминания не нашёл. Да и в любом случае, чем интерпретатор не вм?

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

Короче - ситуация похожа на ту, что с WINE

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

Возьмут пакетную базу дебьяна и всё

Именно это я и имел ввиду

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

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

Интересно когда до людей всё таки дойдет что анонимность != безопасность ? Используя Tor Browser вы пряма таки напрашиваетесь на MIM атаку

TEX ★★★
()

LINUX.ORG.RU - Русская информация об ОС Linux же, нет?

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

линукс-геймеры бросают свободные игры

Нельзя бросить то, чего нет.

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

Шутки шутками, а проприетарные растения уже есть. Вырастишь у себя такой и сразу давай, до свиданья :}

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

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

С этого надо было начинать

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

feofan> Честно говоря, не улавливаю аналогии. WINE альтернативная реализация закрытой поделки.

WINE - средство запуска приложений с другой платформы.

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

Скрипты тамошние вроде как на lua. Не помню точно, но там именно в виде скриптов всё сделано. А интерпретатор не VM тем, что обрабатывает просто исходный текст, а не бинаризированные данные в виду инструкций виртуального процессора.

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

Конечно станет. Более того - в SteamOS ключевым компонентом является закрытый Steam. А в андроиде ключевая часть открыта хотя бы.

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

WINE - средство запуска приложений с другой платформы.

Принято. Но всё-равно не разделяю твоих опасений. Steamruntime базируется на открытых компонентах. Да и Valve повернута лицом к сообществу. После некоторых их заявлений я сильно сомневаюсь, что они начнут вести политику огораживания.

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

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

С id Tech 2

И где противоречие с «по idTech 3 примерно»? :) Алсо смотрим спеки http://ru.wikipedia.org/wiki/Ioquake3, idTech 3, QVM во все поля

движок Quake сделан по подобию Java

Все виртмашины похожи - JIT он и в Африке JIT - кто чье подобие тут вилами по воде. А «после этого» != «вследствие этого». Задолго до жабки был еще Н. Вирт с p-кодом (70-е годы примерно) и dBase-клоны со своим наследием :)

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