Почему тогда почти все современные игры пишутся на DirectX?
Потомучто дешевле. Дешевле нанять быдлокодера-индуса, прочитавшего книжку «Как стать крутым гейм-девелопером за 3 дня, для чайников», чем нанять действительно высококлассного программиста. Но это пройдет, со временем. Не многие хотят играть в такое. ;-)
Собственно, движки на OpenGL есть — и тебе о них прекрасно известно. И игры на этих движках как раз и работают под *nix. Но движки эти делает только одна фирма, и по-моему даже она в последнее время опустила руки.
Скажем так,
1) Использование ботов в большинства онлайн-игр считается видом жульничества.
2) Насколько я понимаю, чрезвычайно сложно написать клиент и создать такой протокол обмена данными с сервером, чтобы у клиента СОВСЕМ не было информации, которую нельзя показывать пользователю. Пример: невидимые противники в разных играх. Если хочешь сделать красивый эффект невидимости «а-ля Хищник», чтобы невидимок можно было видеть по искажениям воздуха — изволь передать клиентам всех игроков местоположение «невидимок». То есть клиент на самом деле «видит» невидимые объекты, просто не отображает их. Есть и другие варианты, например — наоборот, не рисовать игроку какие-то объекты, которые мешают, или рисовать их иначе (например — делать стены прозрачными; даже если сервер не передаёт клиенту информацию об объектах, находящихся непосредственно за стеной, он никуда не денется, если объект загорожен лишь частично).
2) DirectX'у учат. DirectX всучивают везде и всегда. На DirectX все коммерческие (хорошие) движки. Да и DirectX — это не только Direct3D, но и всякие примочки для ввода-вывода, сетевых протоколов… Опять же, я далёк от мысли геймдевелопмента, но по-моему девелоперам всё-таки приятнее работать на готовом и знакомом, чем на полусыром и незнакомом. Но, думаю, этим проблемы не исчерпываются.
Кстати, ещё одна мысль. С одной стороны, пользователи Linux по большей части уважительнее относятся к «лицензионности» (поскольку зачастую причиной перехода с Windows служит нежелание пользоваться нелицензионной ОС), так что уровень пиратства на этой платформе должен быть ниже. С другой, полный контроль пользователя над системой поволяет легче обойти любую защиту. Традиционные методы «вставьте диск» уже не будут работать, хоть тот же StarForce. А вот платформы типа Steam, работающие через интернет, не имеющие аппаратной привязки, подностью закрытые, должны показать себя гораздо эффективнее. Добавим ещё, что за подобными сервисами, по моему мнению, будущее (а ведь в 2006-м я долго возмущался, какую же неудобную ерунду сделали, конечно, пытался через модем обновления выкачать), ведь они имеют кучу плюсов по сравнению с другими методами защиты.
Не могу не добавить, что весной этого года все были взбудоражены новостью о том, что Valve создаёт версию Steam для Mac. Одновременно с этим побежали слухи о грядущем релизе и на Linux. вроде как даже бета ожидается в августе или сентябре. Одновременно с портированием Steam были портированы и несколько игр, в том числе Half-Life 2, при этом Valve заявили, что технология, использованная для портирования, универсальна и позволяет запустить любую игру на любой платформе. Вот тут-то и началась истерия в обсуждениях, поскольку в Steam более 15 миллионов активных пользователей, а игр и сборников продаётся более тысячи (по данным Википедии).
Говорили следующее: с появлением Steam на Linux на этой платформн сразу же станут официально доступны сотни игр; а в дальнейшем разработчики уже будут создавать новые игры с тем расчётом, чтобы они, продаваясь через Steam, могли запускаться у всех пользователей этого сервиса. Следовательно, аргумент «на Linux нет игр» станет как минимум неактуальным. И впоследствии, фантазировали комментаторы, это может даже повлиять на долю Linux в целом.
Правда, уже август, а новостей от Valve на этот счёт никаких. Да и пропали из новостей «сенсационные» известия о том, что очередную игру портировали на Mac (а в мае-июне эти новости мелькали чуть ли не кадый день).
К слову сказать ещё, а потом особые фантазёры предрекали Microsoft будущее успешного производителя игровой платформы, «когда наступит вендекапец».
Так вот, всё же. Linux, на мой взгляд, очень удачная игровая платформа,
Буду признателен, если кто-то протестирует на системах отличных от Win 7 x64. Работать вроде должно — но практика показала, что «должно» и «объективная реальность» редко совпадают.
«Открыть с помощью» доступно только в эксплорэре, из командной строки ею не воспользуешься. В частности, когда ты в Питоне делаешь subprocess.Popen(['c:/myexecutablefile'], shell=True), ты получаешь мужской половой орган вместо запуска файла c:/myexecutablefile
Ну, а про слежение за правильностью расширений (кстати, как проверить, что расширение — правильное? А если файл получен извне?) я вообще молчу — нафига мне такая радость? Да и если можно сломать все ассоциации тупым переименованием файла…
Прошу прощения за возврат к старинному посту. А что сейчас с инвайтами? open-life.org/settings/invite/ — выдает ошибку. В настройках ничего похожего не нашел…
1) Использование ботов в большинства онлайн-игр считается видом жульничества.
2) Насколько я понимаю, чрезвычайно сложно написать клиент и создать такой протокол обмена данными с сервером, чтобы у клиента СОВСЕМ не было информации, которую нельзя показывать пользователю. Пример: невидимые противники в разных играх. Если хочешь сделать красивый эффект невидимости «а-ля Хищник», чтобы невидимок можно было видеть по искажениям воздуха — изволь передать клиентам всех игроков местоположение «невидимок». То есть клиент на самом деле «видит» невидимые объекты, просто не отображает их. Есть и другие варианты, например — наоборот, не рисовать игроку какие-то объекты, которые мешают, или рисовать их иначе (например — делать стены прозрачными; даже если сервер не передаёт клиенту информацию об объектах, находящихся непосредственно за стеной, он никуда не денется, если объект загорожен лишь частично).
2) DirectX'у учат. DirectX всучивают везде и всегда. На DirectX все коммерческие (хорошие) движки. Да и DirectX — это не только Direct3D, но и всякие примочки для ввода-вывода, сетевых протоколов… Опять же, я далёк от
мыслигеймдевелопмента, но по-моему девелоперам всё-таки приятнее работать на готовом и знакомом, чем на полусыром и незнакомом. Но, думаю, этим проблемы не исчерпываются.Да ну. В той же венде контроль над системой тоже довольно сильный.
В нормальных онлайн-играх бОльшая часть расчетов выполняется на стороне сервера, поэтому это не должно быть проблемой.
Почему тогда почти все современные игры пишутся на DirectX? Хотя можно же воспользоваться тем же OpenGL'ем.
Говорили следующее: с появлением Steam на Linux на этой платформн сразу же станут официально доступны сотни игр; а в дальнейшем разработчики уже будут создавать новые игры с тем расчётом, чтобы они, продаваясь через Steam, могли запускаться у всех пользователей этого сервиса. Следовательно, аргумент «на Linux нет игр» станет как минимум неактуальным. И впоследствии, фантазировали комментаторы, это может даже повлиять на долю Linux в целом.
Правда, уже август, а новостей от Valve на этот счёт никаких. Да и пропали из новостей «сенсационные» известия о том, что очередную игру портировали на Mac (а в мае-июне эти новости мелькали чуть ли не кадый день).
К слову сказать ещё, а потом особые фантазёры предрекали Microsoft будущее успешного производителя игровой платформы, «когда наступит вендекапец».
Так вот, всё же. Linux, на мой взгляд, очень удачная игровая платформа,
Не думаю, что ситуация с копирайтом изменится в ближайшем будущем настолько, чтобы защита от копирования стала противозаконной, так что о её эффективности по-прежнему будут заботиться. Поэтому остаются только бесплатные игрушки (типа браузерных) и онлай-игры.
С онлайн-играми тоже есть проблемы — тотальный контроль над системой позволяет проще обходить методы защиты от жульничества. Хотя я далёк от этих материй (не очень хорошо представляю, как работают всякие читерские программы, и как с ними борются), поэтому возможно платформа не имеет значения.
Что касается вообще работы под *nix, то тут всё вполне на уровне. SDL вполне удовлетворяет потребности, да и движки есть под GNU/Linux. Плюс, мультиплатформенность — прямая выгода для разработчика игры (шире потенциальная клиентура при почти тех же затратах), так что убедить девелоперов в её необходимости вполне реально.
Остаётся делать «то, что мы делаем лучше всего — писать софт» (© Эбен Моглен), то бишь дать потенциальным разработчикам игр весь необходимый инструментарий, чтобы по крайней мере в этом отношении всё было схвачено.
Ну, а про слежение за правильностью расширений (кстати, как проверить, что расширение — правильное? А если файл получен извне?) я вообще молчу — нафига мне такая радость? Да и если можно сломать все ассоциации тупым переименованием файла…
Опять же, шибанги — вещь.
держи расширения файлов в порядке
прямо лозунг