Введение

В нашей статье "Linux выходит на настольные ПК" мы упомянули, что игр на платформе Linux не слишком много. Теперь мы решили детально рассмотреть этот вопрос. Посмотрим, что можно ожидать от Linux, если вы захотите перекинуться в Unreal или Doom 3. Мы рассмотрим текущее положение вещей, выявим причины и сделаем некоторые прогнозы на будущее.

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

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

По информации аналитической компании IDC, Linux "больше не является нишевым феноменом". Прибыль на рынке Linux, включая аппаратное обеспечение серверов, ПК, а также наборы программного обеспечения, к 2008 году составит $35,7 млрд. - по данным IDC. А рынок наборов программного обеспечения демонстрирует впечатляющие темпы роста - 44% в год, в результате чего к 2008 году он составит $14 млрд.

Что касается настольных ПК, то, по прогнозу IDC, продажа ПК с Linux возрастёт почти в три раза - от шести миллионов компьютеров в 2004 году до 17 миллионов в 2008. Процент ПК, продаваемых с Linux, возрастёт где-то от 3,8% в 2004 году до приблизительно 7% - в 2008. Но в этих цифрах не учитываются компьютеры, поставляемые с Windows, на которые затем ставится Linux.

Как вы можете видеть, всё свидетельствует о росте числа настольных ПК с Linux, поэтому и геймеры тоже постепенно присматриваются к Linux. Если взять те же игровые приставки, то с помощью хакеров удалось перенести Linux даже на Microsoft Xbox и Sony Playstation II.

Если Linux действительно проникнет так широко, как прогнозирует IDC, то что делать игроку, желающему перекинуться в Halo под Linux? Почему переносить игры с одной платформы на другую сложно? Отбросив в сторону проблемы производительности, давайте проанализируем связь между драйверами графической карты и API, который разработчики используют в играх. Что из этого будет работать под Linux, а что - нет.

Direct3D против OpenGL

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

К сожалению, Direct3D подпадает под зонтик Microsoft, оставаясь преданным миру "только-Windows". Поскольку Windows является самой распространённой ОС в мире ПК, производители графических чипов работают только с одной операционной системой при разработке драйверов для игр Direct3D.

OpenGL, в то же время, распространён на многих платформах - этот API совместим с Linux, Windows, Unix и Mac OS. Но если OpenGL совместим с Windows, то Direct3D не совместим с Linux - и в этом и заключается основная проблема. Большинство разработчиков игр используют Direct3D и не беспокоятся по поводу выпуска OpenGL-версии, что позволило бы использовать игру под другими ОС, не имеющими отношения к Microsoft.

Существуют, конечно, и исключения. Самым ярким можно назвать Doom 3 - прекрасная свежая игра, с современными эффектами, которая использует OpenGL. Нравится вам Doom 3 или нет, но посмотрите на великолепную графику - она сравнима с любой игрой на рынке. Doom 3 также опровергает тезис, что "Direct3D является лучшим интерфейсом для программирования графики, чем OpenGL". Doom 3 - действительно настоящая многоплатформенная игра, поддерживающая Windows и Linux.

Некоторые Direct3D-игры выпускаются и под Windows, и под Linux. Но в таком случае игра изначально создавалась под Direct3D, а затем переводилась под OpenGL для Linux. Некоторые разработчики выполняют такой перевод самостоятельно, другие используют дешёвое аутсорсинговое программирование. К сожалению, большинство игр не имеют такого выбора.

Дилемма производителей графических карт

Когда в 2004 году вышел Doom 3, на многих форумах можно было встретить несчастных владельцев карт ATi, которые не могли запустить Doom 3 под Linux. Проблема ATi с Doom 3, по сути, является прекрасным примером ещё одной потенциальной проблемы для запуска игр под Linux. Doom 3 написан под OpenGL, и Linux прекрасно распознаёт эту игру. Но в чём же дело?

Изначально проблемы карт ATi под Linux заключались в отсутствии поддержки Doom 3 в драйвере. Дело в том, что будь игра написана под OpenGL или Direct3D, драйвер графической карты должен поддерживать эту игру. В случае Doom 3 и ATi команда разработчиков игры не передала финальный код Doom 3 до самого выхода игры. Как утверждает Мэтью Типпет (Matthew Tippett), глава отделения разработки под платформу Linux в ATi, "с нами не связывались примерно до того момента, когда до выпуска Doom 3 осталось 3 недели. Причём, нам сказали, что игра не работает. Чем раньше мы узнали бы о проблемах, тем быстрее выпустили бы Catalyst". В самом деле, сегодня карты ATi прекрасно работают с Doom 3 под Linux. Но проблема с драйверами, конечно, есть.

Так можно ли просто скачать драйвер для Doom 3, и заработает ли он на всех дистрибутивах Linux типа SuSe, Red Hat и т.д.? "Драйвер будет работать под большинством дистрибутивов, - утверждает Типпет. - Технология везде одинакова, но существуют различия в конфигурации, информации и т.д. И решать подобные проблемы не всегда легко, учитывая широкий рынок дистрибутивов".

Производителям GPU приходится выпускать драйвер не только под Linux (кроме версии под Windows), но и по драйверу для каждого варианта Linux. "Любая компания, собирающая дистрибутив Linux, следует пожеланиям пользователей, - сказал Типпет. - В результате возникают проблемы, но они вполне решаемы. В целом, сборщики дистрибутивов должны понимать их существование".

"Каждый дистрибутив Linux имеет свои внутренние проблемы, - сказал Ник Триантос (Nick Triantos), главный разработчик nVidia. - Приходится тратить немало усилий на разработку драйвера для каждого дистрибутива Linux. Причём, это бывает не всегда легко. Red Hat Enterprise Linux, к примеру, меняется редко. А вот Fedora, ещё один продукт Red Hat, меняется регулярно. В сообществе Linux существуют те, кого не интересует наш процесс разработки драйверов, а также и те, кто требует, чтобы везде использовался открытый исходный код, что часто усложняет выпуск драйверов. Ведь мы поставляем драйверы в двоичном коде, а для некоторых сборщиков очень трудно добавить двоичный код в систему, где остальной код открыт".

Конечно, создавать драйверы под Linux, в принципе, не сложнее, чем под Windows. Как подтвердят многие геймеры, подбор правильного драйвера для графической карты к определённой Direct3D-игры под Windows XP тоже не всегда бывает лёгким. Могут возникнуть конфликты и другие неожиданности. "На рынке есть определённое заблуждение, что разработка драйверов под Linux сложна", - утверждает Типпет.

По сути, создание драйвера для графической карты под Linux часто более прямолинейно и логично, чем под Windows. "Проблема заключается в том, что под Windows существует огромное количество программного обеспечения разного качества, и один кусочек "плохой" программы может "завалить" всю систему, - считает Триантос. - Драйверы принтеров, мультимедийных устройств и весь тот "мусор", что находится в правом нижнем углу экрана, увеличивают шанс чьей-либо ошибки. У Linux нет столько уровней, но опасности, конечно, тоже существуют".

Драйвер графической карты

Мы не будем заниматься прогнозами или сравнивать производительность продуктов ATi, nVidia или других производителей в играх под Linux. Однако код драйвера графической карты очень важен, поскольку он влияет на многое, а не только на кадры в секунду. "Стабильность драйвера очень важна. Осуществить тестовый прогон несложно, но ведь нам нужен надёжный драйвер, который будет работать со всеми приложениями, - сказал Триантос. - Чтобы выделиться среди других компаний, мы опираемся на комбинацию стабильности, функций и качества".

nVidia любит Linux

Что касается nVidia, то в команду разработок драйверов под Linux входят около 400 программных инженеров. Они программируют на C и C++ и очень тесно работают с отделением тестирования. "Каждый раз, когда SuSe, Red Hat или Mandrake, а также другие компании, выпускают новую версию ОС, мы сразу же тестируем под ней свои драйверы", - утверждает Триантос.

Кстати, по информации nVidia, главным побуждением разработки драйверов под Linux являются усилия по поддержке high-end графических рабочих станций. Их используют кинематографические компании для создания мультфильмов типа "Шрека", инженерные компании - для визуализации САПР, разведывательные геологические компании - для симуляции 3D-мира. "Все эти применения требуют Linux", - сказал Триантос.

Однако точное число ресурсов, брошенных на разработку под Linux, nVidia не раскрывает. В то же время, у ATi интерес к Linux меньше, чем к Windows. "К сожалению, наша команда разработчиков [ATi] под Linux меньше, чем под Windows, да и цели она преследует иные, - сообщил Типпет. - Linux остаётся маленьким и нишевым рынком, да и игры здесь ограничены только OpenGL".

То есть, официальный ответ ATi таков: хотя компания за последний год "существенно расширила" ресурсы, отведённые Linux, они (ресурсы) всё равно являются ограниченными по сравнению с разработкой под Windows. "Мы можем делать только то, что нам позволяют наши ресурсы, - сообщил представитель ATi. - Хотя мы существенно и расширили наши ресурсы, что неплохо для пользователей Linux, мы не должны упускать из внимания рынок".

Используем Cedega

Хотя игры под Linux и ограничены OpenGL, существуют альтернативы, позволяющие геймерам не ждать, когда разработчики игр инвестируют средства в поддержку OpenGL. Канадская компания TransGaming может выполнить преобразование из Direct3D в OpenGL, используя хорошо известный в сообществе Linux продукт - Cedega. Изначально этот проект назывался WineX. Как обещает TransGaming, Cedega позволяет "быстро и прозрачно запускать игры Windows под Linux, сразу же достав их из коробки, - с великолепной производительностью и геймплеем". Сегодня Cedega поддерживает более 300 Direct3D-игр, включая Battlefield Vietnam, Eidos Hitman: Contracts и LucasArts Star WarsGalaxies.

Вы просто устанавливаете программу, после чего ваши любимые игры прекрасно работают на платформе SuSe - точно так же, как и под Windows XP. К сожалению, Cedega поддерживает на достаточно приемлемом уровне не все игры. Даже если опустить результаты производительности, могут возникнуть проблемы с установкой, временем загрузки и т.д. В общем, это решение пока далеко от идеала.

Заключение

Теперь настало время сказать горькую правду: под Linux вы не получите такого же игрового наслаждения, как под Windows XP. Здесь пока нет игр типа Halo и Half-Life 2. Так что, если вы хотите всегда получать самые свежие хиты вовремя, то придётся придерживаться курса Microsoft.

Да, исключения есть: в OpenGL-ориентированной Doom 3 вы можете и не заметить разницу между Linux- и Windows-версиями - по крайней мере, мы её не обнаружили. "К примеру, на моём ноутбуке с Radeon Mobility 9800 частота кадров выше 100. Различия в скорости не такие большие, чтобы помешать наслаждению игрой для большинства пользователей, - сказал Типпет. - Но вот экстремальным геймерам следует быть осторожными".

P.S. (от N.A.Y.): Однако стоит добавить, что на современном этапе развития, пакеты, позволяющие эмулировать MS Windows ушли далеко вперед. Так, например, wine уже имеет встроенную поддержку DirectX, а при желании, поискав информацию в Интернете, можно поставить под wine и "родной" DirectX 9.0c. Но это еще не все: современные разработчики помаленьку начинают осознавать пользователей Linux как отдельную нишу на рынке. К слову, Epic Games официально объявила о том, что летом этого года выйдет Unreal Tournament III для Linux (учитывая тот немаловажный факт, что многие из современных игр на pc и консолях используют игровой движок Unreal Engine 3, то можно смело заявить - портирование современных игр под Linux станет гораздо более простым делом!).
Есть во всей этой истории и еще один интересный момент. Не так давно состоялся суд, по результатам которого Microsoft пообещала (и сделала) опубликовать исходные тексты Windows в MSDN! Вот такие дела. И настолько ли горька правда?  :)