LINUX.ORG.RU
решено ФорумTalks

[Icculus] Про игры, Linux и повреждения головного мозга


0

1

http://www.abclinuxu.cz/clanky/rozhovor-ryan-c.-gordon-icculus?page=1


ЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪЪ


1) Представьтесь нашим читателям.

Меня зовут Райан, и я портирую игры на Linux. Когда я этого не делаю, то пишу утилиты для упрощения портирования. У меня также есть сервер icculus.org с моими проектами.

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


2) Как вы пришли к Linux?

В 1994 году я перелез с OS/2 (она без вопросов покоцала мне MBR, да и не намного лучше она была чем Windows 3.1) на Slackware, и влюбился в неё, когда узнал, что можно собрать своё собственное ядро. К тому же классно, что православный GCC в Linux стандарт. Потом я был потрясен Enlightenment — как-будто попал в будущее, где кругом неведанные машины и летающие автомобили. Потом была Windows 95 и Red Hat (который я поставил на раздел где до этого была OS/2).

Далее, после какого-то красноглазого конкурса (где я выиграл), попал в Loki, таи портировал игры на Linux и Mac, потому что никто другой этого не делал.

Ля-ля-ля, одно привело к другому, и вот я здесь. Чего-то я больше про OS/2 говорю, чем о себе :)


3) Ваш первый компьютер?

Commodore 64! Я наверно использовал его всё моё детство, были компы и с MS-DOS.

Почти всё время на C-64 я играл. Не знаю, почему меня к нему тянуло, но мой папа был ещё тот пират и у нас были десятки коробок с дисками. Это было тогда, когда были ИГРЫ, а не этот шлак, который сейчас.

Технологии улучшаются, но не знаю — зацепит меня какая-нибудь игра снова. Даже при переходе на 8-битную Nintendo почувствовал, что это уже не то во многих отношениях.

//Вырос наверное. К.О,


4) Какой дистрибутив вы используете?

Только Ubuntu. Я перепробовал много дистрибутивов за много лет, и как-то пропустил Debian, но однажды наткнулся на APT-GET и понял — это то, что надо. Думаю Ubuntu сильно нацелен на создании системы для конечных пользователей. Не знаю как у них это получится, но сейчас мне кажется, что они имеют наибольший потенциал ... и популярность, которая в этом случае почти так же важна, как и потенциал.


5) С точки зрения разработчика, какой API лучше? OpenGL или Direct3D? И почему?

Мне больше по нраву OpenGL — это что-то. Не могу это объяснить хомячкам.

Самое плохое в Direct3D то, что он работает только на Windows. Вот если бы он был кроссплатформенным. Хотя я не возражаю против его использования. Но после того, как почти везде пишешь под OpenGL, а на Direct3D почти нигде, само собой, что Direct3D не нужен. Если бы я писал ПО для Windows, конечно использовал бы Direct3D, а если бы писал под сферического коня в вакууме — определённо OpenGL.

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


6) Что вы думаете о качестве открытых видеодрайверов? Какая у вас видеокарта?

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

У меня Nvidia GeForce 9800GTX с проприетарным драйвером. Потом куплю GeForce помощнее. Для моей работы это надо, как и блоб собственно.

Смешно, если бы было не так грустно, что открытый драйвер идёт без поддержки S3TC из-за проблем с патентами. Сейчас это как веб-браузер без поддержки .jpg!

Может быть я скотина, но открытые недодрайвера, которые по дефолту стоят почти везде только лишь из-за того, что они свободны — это не на руку Linux как экосистемы. Я считаю, что единственный способ сделать нормальные открытые драйвера заключается в разработке Nvidia (и других компаний), в качестве ведущего разработчика в сообществе, своих драйверов с открытым исходным кодом.

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

Я продолжаю мечтать о лучшем мире :)


7) Несколько лет назад на рынке Linux-игр был своеобразный бум — довольно много известных игр портировали, планировалась поддержка и других популярных игр, но за последние пару лет всё глухо. Что вы на этот счёт думаете?

Это довольно спонтанное явление. Сейчас наступило время когда все думают, что игровые приставки это круто.

Nintendo серьезно слила рынок консолей, однако M$ и Sony видимо считают, что Kinect и Move продлят жизнь нынешнему поколению консолей вместо того, чтобы выпускать консоли следующих поколений. Я думаю они ещё пока не определились и пока просто продлевают жизнь нынешним консолям чтобы стричь бабло.

Xbox 360 и PS3 более пяти лет, а в Wii железо в основном от Gamecube! Рано или поздно разработчики игр столкнутся с тем, что не смогут реализовать на консолях задуманное и вернутся к PC. Такое происходит раз в несколько лет.

Вот тогда вы увидите как популярные игры появятся на Linux снова. Также как и на Mac.


8) Как от разработчика №1 по портированию игр, от вас в последнее время ничего не слышно. В чём причина или случилось что? :-)

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

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

★★★★★

9) По вашему мнению, в чём главная причина препятствующая разработке игр под Linux известными компаниями?

Репутация. Дезинформацией. А иногда и сообщество само себе худший враг.

Грамотный маркетинг мог бы решить большую часть этих проблем. К сожалению, по моему мнению, в нынешней ситуации не существует единственно правильного способа их решения. Apple отвечает за Mac OS X, M$ за Windows. Кто ответит за Linux?


10) Как часто вас приглашают игроделы для портирования?

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

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


11) Сейчас вы над чем-то работаете? Это большой проект?

Я всегда с чем-то работаю :)

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

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

Я надеюсь основательно перепроверить в некотором месте PhysicsFS, улучшаю MojoSetup и потом помогу писать для SDL 1.3 до релиза 2.0.


12) Не думаю, что вы расскажите, но почему UT3 под Linux уже не выйдет?

Без комментариев. Извините, но я не говорю про UT3.


13) Чтобы понять насколько вы опытный программист — сколько времени у вас ушло на портирование UT2004?

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

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

Огромный труд участвовать в такого рода проектах, я не могу его даже оценить. Каждый должен однажды попробовать такое в своей жизни, когда нечего терять кроме своего упорства. И после — никогда.

Получается, что UT200x занял несколько месяцев. И несколько десятилетий.


14) Что больше всего достаёт при портировании и каждый раз надо исправлять, например, обратный слеш вместо православного?

Обратный слеш одна из таких вещей. Очень много виндузятский примочек, таких как игнорирование регистра или, что нормально, игра пишет в свой каталог, а не куда-то в $HOME (хотя в последнее время стало проще, так как даже M$ на последнее жалуется).

Это не трудно исправить, но встречается почти в каждом проекте.

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

Статические конструкторы C++ оказывается удивительно трудные.

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

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


15) Ваш метод портирования? Как вы работаете с кодом и проверяете его когда gcc выводит тонны ошибок?

Естественно первым шагом является решение этих ошибок. :)

После того как прогнал код через gcc делю на две категории — исправить и поставить заглушку.

Если это какой-нибудь маленький высер на синтаксисе C++ сделанный в Visual Studio или оно хочет поиметь windows.h или какую другую непотребность, то это дело я быстро правлю и перехожу к следующей проблеме. А если это что-то более сложное — программа хочет вызвать какую-нибудь Win32 API с кучей типов данных которых у нас в Linux нет, тогда я это закомментировываю и прописываю туда макрос вызывающий заглушку. Всё что этот макрос делает — это пишет в вывод ошибки, как только идёт обращение к этому участку кода. Вы будете удивлены, но этот код в самой программе фактически не используется, поэтому нет необходимости в его портировании.

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

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


16) Легко ли писать кроссплатформенный код?

Считаю, что да. Это гораздо проще, чем его потом портировать, будьте уверенны.

Если вы пишете одновременно для Windows, Linux и Mac OS X, то скорее всего программа будет работать где-нибудь ещё, что можно потом проверить.

Недавно люди могли бы сказать — «Зачем? У всех Windows!», но потом появились консоли. А в небольших магазинчиках до сих пор говорят — «Мы не профилируемся на всех сразу!», а теперь они хотят чтобы у них были порты под IPad. Вы никогда не знаете, что будет востребовано завтра!

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


17) Какая ваша любимая игра под Linux? Сколько времени Вы обычно играете (включая Wii и т.п.)?

Без сомнения моя любимая игра на Linux на данный момент это Braid. Я полюбил её ещё до портирования. Я на самом деле предложил сделать Mac/steam версию бесплатно, это был тот случай когда я мог немного заглянуть в голову Джонатана Блоу и посмотреть, что там у него творится.

Сколько времени я играю? У меня это циклически. Я тащусь от игр на любой платформе, и я залезу в её каждый уголок за несколько недель пока играю. Возиожно, что в юности я сломал себе мозг когда играл в Metroid.

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

(Если кому интересно: несмотря на то, что я провел всё моё детство постоянно играя. Тысячи игр за более тысячи часов. WineЯ не сожалею об этом).


18) Что вы думаете про Wine? Это выход или крайность?

Крайность. По меньшей мере он будет очень полезен для археологов, как DosBox под Wing Commander. Конечно Wine тоже позволяет играть в современные игры.

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

amorpher ★★★★★ ()

>4) Какой дистрибутив вы используете?

Только Ubuntu. Я перепробовал много дистрибутивов за много лет, и как-то пропустил Debian


дальше не читал.

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

>Apple отвечает за Mac OS X, M$ за Windows. Кто ответит за Linux?

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

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

> На редкость вменяемый человек.

в офисе Epic как-то я проснулся под столом, работал сутки на пролёт


Надо же как-то ощущать рамки

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

Вменяемость - это когда ты с нетерпением ждёшь 17.00 пятницы, чтобы пойти бухнуть?

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

>Без комментариев. Извините, но я не говорю про UT3.

Жаль. Кстати, а EPIC тоже причину так и не назвали?

когда нечего терять кроме своего упорства.


Там в оригинале - «sense of self», ЧСВ

shatsky ★★ ()

Тема, говно. Игры под Линукс не нужны.

Только Ubuntu. Я перепробовал много дистрибутивов за много лет

Заплатили, чтобы чел прорекламировал этот недодистрибутив.

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

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

amorpher ★★★★★ ()

Хы, угарный перевод(спасибо ТС'у?), а icculus'у респект :)

Andru ★★★★ ()

1) Представьтесь нашим читателям.

Меня зовут Райан, и я портирую игры на Linux.

Читатели, хором: Здравствуй, Райан! (нувыпонели :))

Нормальный такой гик, в основном адекватный, ящетаю.

Xenesz ★★★★ ()

А при чем здесь повреждение мозга?

Человек произвел приятное впечатление.

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

>4) Какой дистрибутив вы используете?

Только Ubuntu. Я перепробовал много дистрибутивов за много лет, и как-то пропустил Debian

дальше не читал.

Он просто использует комп по назначению и у него всё работает.

Panic_At_The_Kernel ()

И при чем здесь повреждения головного мозга? Пишет так как есть. И про директикс и про открытые драывера и про компы 80х

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

>Он просто использует комп по назначению и у него всё работает.

Он сам признался что Debian не пробовал. А apt-get рулит, да.

DNA_Seq ★★☆☆☆ ()

Хороший дядька. Особенно про быдлокод понравилось.

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

большое спасибо за статью! было интересно почитать

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

>Apple отвечает за Mac OS X, M$ за Windows. Кто ответит за Linux?

Шаттлворт xD

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

И при чем здесь повреждения головного мозга?


Да сам он прикалывается же. Назвал так короче (что запомнилось).

amorpher ★★★★★ ()

годный перевод, спасибо

интересный дядька, и по делу говорит

Ingvarr ★★★★ ()

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

ist76 ★★★★★ ()

Спассибо! И статья интересная и перевод!

Napitok ★★ ()

Понравилось, прочитал оригинал.

I guess I'm more interested in blabbering about OS/2 than I am about myself.

Чего-то я больше про OS/2 говорю, чем о себе


Видимо мне больше нравится болтать про OS/2, чем про себя.

I don't know what his hookup was, but my Dad was a prolific software pirate

Не знаю, почему меня к нему тянуло, но мой папа был ещё тот пират


Не знаю, почему его к этому тянуло, ...

А так в принципе перевод хороший, в стиле не чувствуется деревянность буквальных переводов.

crimson_eyes ()

Чёткий мужик, жаль каких как он у нас мало.

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

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

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

и ручку (которой на бумаге пишут) уже наверное лет 5-7 в руках не держал :)

А заметки делать, блок-схемы набрасывать, формулы выводить как?

Eddy_Em ☆☆☆☆☆ ()

Обалденно, спасибо.

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

> дальше не читал

Ну и зря. В отличие от местных красноглазиков, он адекватно оценивает что ему нужно и не заморачивается на таких деталях.

Да кстати, респект ему огромный.

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

>> 4) Какой дистрибутив вы используете?

Только Ubuntu. Я перепробовал много дистрибутивов за много лет, и как-то пропустил Debian

дальше не читал.

Ну я пока что тоже на этом моменте остановился (в голове пронеслось oh no...), и сразу вспоминается то, о чём я писал на Опеннете. Ubuntu - дистрибутив для программиста, но никак не для начинающего пользователя.

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

>> Без комментариев. Извините, но я не говорю про UT3.

Жаль. Кстати, а EPIC тоже причину так и не назвали?

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

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