Компания Unknown Worlds Entertainment последовала примеру (http://www.opennet.me/opennews/art.shtml?num=39286) Valve и перевела (https://twitter.com/max_mcguire/statuses/449291790164570112) в разряд открытых проектов свои наработки по трансляции Direct3D в OpenGL, созданные в процессе адаптации игры Natural Selection 2 (http://ru.wikipedia.org/wiki/Natural_Selection_2) для платформы Linux. В частности, под лицензией MIT открыт (https://github.com/unknownworlds/hlslparser) код парсера для языка описания шейдеров HLSL (High-Level Shader Language), используемого в Direct3D, и генератора кода OpenGL GLSL.
Указанная связка позволяет организовать перевод на OpenGL 3.1 игр, изначально написанных с использованием Direct3D 9 или режима D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY в D3D11. Отмечается, что в текущем виде код не пригоден для обособленной сборки, так как он завязан на некоторые остающиеся закрытыми функции движка игры Natural Selection 2. Но так как данные функции являются типовыми (например, работа с массивами, распределение памяти и т.п.), они легко могут быть реализованы самостоятельно.
URL: http://www.gamingonlinux.com/articles/natural-selection-2s-d.../
Новость: http://www.opennet.me/opennews/art.shtml?num=39433
Неполные огрызки кода для перевода вызовов какой-то дурацкой непортируемой библиотеки в OpenGL?
А зачем? Ах, да -- для того, чтобы поощрять микрософт-фанов писать под директХ и кормить остальных криво оттранслированным автоматическим трешем в OpenGL.
Нет, спасибо.
Я, пожалуй, пройду мимо.
Вам же ответили заранее - для портирования игр.
Ну я не стал бы называть это портированием.
Это как засунуть программу в один пакет с вайном и сказать, что "Программа портирована. Идите жрать."
Для бюрократической галочки покатит, но в общем и целом решение нежизнеспособно и влечёт за собой множество проблем при эксплуатации.
> Это как засунуть программу в один пакет с вайном и сказать, что "Программа портирована. Идите жрать."Нет. Это как транслировать шейдеры с HLSL в GLSL перед релизом и поставлять полученные GLSL шейдеры с GL-версией игры. Хотя если кому-то очень хочется отдельно поддерживать два комплекта шейдеров чтобы фиксить каждый баг в двух местах и добавлять каждую новую возможность также в двух местах на двух разных языках, то можно использовать транслятор с HLSL один раз в самом начале, просто чтобы сэкономить время, а дальше пилить два набора шейдеров на GLSL и HLSL вручную.
В любом случае никто не заставляет разработчиков выполнять трансляцию шейдеров в процессе работы игры, как это делает вайн.
А чем вас не устраивает встроенная в вайн библиотека для трансляции? Зачем непонятный проприетарный огрызок, когда есть давно зарекомендовавшая себя открытая система?
> А чем вас не устраивает встроенная в вайн библиотека для трансляции?Встроенная в "вайн" библиотека не устраивает тем, что не устраивает сам "вайн", какие бы библиотеки в него не входили.
Другой вопрос, если имеется какой-то способ использовать какие-то полезные библиотеки из вайн, абсолютно независимо от самого "вайн", и чтобы эти библиотеки были бы 64-разрядными, вот только после этого имеет смысл начать рассматривать вопрос, чем могла бы устроить та или иная библиотека из "вайн".
Ага, я пытался эту игру загрузить пару раз, она грузится минут эдак по 10-15, на железе AMD FX 8150 + GeForce GTX 670.
Грузится-грузится и падает, но иногда всё же можно поиграть! Если терпения хватит дождаться загрузки, или если не упадёт.
Отличный порт! Для проверки нервов и весёлой траты времени.
А дело точно в том, что это порт? Или оно такое от рождения и на всех платформах?
> А дело точно в том, что это порт? Или оно такое от рождения и на всех платформах?Об этом я не задумывался, нет возможности проверить на других платформах. Но есть в стиме ещё одна игра Deadfall Adventures, в который прямиком написано "Баги бета версии: Из-за портирования долгие загрузки", и реально загрузка уровня с надписью "Компиляем шейдеры" длится просто вечно, но в отличие от топика, игра загружается и играется.
Решил записать видео, чтобы показать что ты не прав. Но ты оказался прав, вот видео: http://yadi.sk/d/N4qx5GueLQ9AK 135 Мб, 17 минут, специально не стал вырезать загрузку уровней (чтобы можно было самому посчитать сколько времени она занимает) и вылеты.
> Решил записать видео, чтобы показать что ты не прав. Но ты оказался прав, вот видео: http://yadi.sk/d/N4qx5GueLQ9AK 135 Мб, 17 минут, специально не стал вырезать загрузку уровней (чтобы можно было самому посчитать сколько времени она занимает) и вылеты.0:15 Палево, zenitur, или залогинься ))
А вообще я наоборот записываю видео удачных игр под линукс и со стима и вообще, но особо глючные пропускаю. http://www.youtube.com/user/EuPhobos/videos?flow=grid&view=0
Да и вообще уже хочется создать рейтинг самых неудачных игр (в плане поддержки разработчиками).
Как минимум на первых местах будут Metro Last Light и Natural Selection 2
Перезагрузил компьютер, установил драйвер NVIDIA версии 319.xx, выключил Compiz, не включал запись видео. Не работает. Значит причина не в чём-то из этого, а в очередном обновлении игры. Несколько месяцев назад всё работало отлично.
>Metro Last LightУ меня работала прекрасно. Было пару багов, но чисто игрового характера. Подозреваю, что у Вас не nVidia.
>nVidiaУпс, невнимательно прочитал Ваш комментарий. Но таки должен отметить, что у меня игра работала прекрасно.
У меня 8350 и тоже 670
Грузится быстро, работает без глюков.
Но игра гавно.
Эта игра даже под виндой долго грузит карту, так как кеширует все модели текстуры и звуки, но не дольше 3 минут, кстати opengl версия движка зависает при старте в этой винде.
Этим транслятором должен заниматься Khronos Group
Скорее микрософт. Какое отношение кронос имеет к директХ?
> Скорее микрософт. Какое отношение кронос имеет к директХ?Для миграции некрофилов (разработчиков игр) на OpenGL стек
>> Скорее микрософт. Какое отношение кронос имеет к директХ?
> Для миграции некрофилов (разработчиков игр) на OpenGL стека зачем? нравится им на подыхающей винде — на здоровье. и без них шлака достаточно.
Арису как всегда работает на большинство. Как ему приятно, когда другие поддерживают его, хвалят, плюсуют, комментируют его, считают, что он чего-то да стоит, и в конце-концов, просто обращают на него внимание.
Но через 5 лет, Арису повзрослеет, и ему в голову придёт замечательнейшая и откровеннейшая вещь, что жизнь-то у него одна, а он уже половину её спустил в унитаз, тролля, флудя, флеймя и холиваря.
Интересно, чем же он займётся потом?
какая чудесная проекция.
а вдруг не повзрослеет?
Ну а ты, написав свой коммент, считаешь, что не троллишь, не флудишь, не флеймишь и не спускаешь свою жизнь в унитаз?
А ты, написав свой?
>подыхающей винде"подыхающая винда" всё еще топовая игровая платформа, и отрицать это непростительно
уже давно она является третьестепенной платформой, игры были бы восхитительны, если разрабатывались лишь с оглядкой на неё.
Вот как-раз Некрософт было бы очень радо закопать все подобные трансляторы. Вот только облом. Скоро уже DirectX будет впору закапывать. Потеряли WinAPI — пришла пора терять и DirectX.
Дай мне Путин прожить столько, сколько Windows будет доминировать в мире...
Если учитывать смартфоны, то ты уже кагбэ того.
> Если учитывать смартфоны, то ты уже кагбэ того.а если учесть xbox?
Зачем в открытой ОС, поддержка проприетарщины MS? Наверное MS давно не троллили патентами DX-а никого. Что ж, они, ясное дело, наверстают упущенное.
Вы вообще понимаете разницу между транслятором кода и "поддержкой проприетарщины МС"?
один фиг ничего нормального на линуксе не будет. количество индишлака и треша, может быть и возрастёт немного.
Очередной трэш, что от Valve что от этой фирмы
Использование трансляторов из D3D -> OpenGL - не может называться нативным.
Уже об этом говорили и ни одну сотню раз.
Как уже говорилось с тем же успехом можно выпускать пакет с игрой в котором будет сидеть вино или досбокс или иные эмуляторы, суть от этого не изменится.В конечном итоге это будет геморой связанный супер неглючностью и супер производительностью, примеров такого говна в сети по самое не хочу...
>Использование трансляторов из D3D -> OpenGL - не может называться нативным.Почему?
ИМХО, никто и не предлагал использовать эти штуки для разработки новых игр. А относительно легко/дёшево портировать D3D-only и получить какие-никакие, но всё же деньги, почему бы нет. В итоге геймдевы с наваром, пользователи с игрой.
относительно легко/дёшево портировать-это всегда значит, что кое как. мало того, что нынче и оригиналы качеством не блещут, так после такого скоростного порта выйдет вообще полное убожество. ну и по правильному это всё называется, срубить бабло наскоро, и пофигу что потом все плеваться будут.
Ты даже не смог осилить назначение данного транслятора, но сразу бросился писать комментарий. Я в шоке.
> Ты даже не смог осилить назначение данного транслятора, но сразу бросился писать
> комментарий. Я в шоке.Извините, но я то как раз таки смог и потому высказал своё имхо что такое "добро" даже даром не нужно.
А что касается вас - не уверен.
Использование С-функций для трансляции OpenGL->видеокарта не может быть нативным.
Уже об этом говорили и ни одну сотню раз.
С таким же успехом можно выпускать пакет с игрой, в котором будет сидеть виртуальная машина с виртуальной видеокартой, суть от этого не изменится.
Ага, я так вижу вы так уверены в своих словах что решили спрятаться под стул и что то от туда заявить...Тут идёт речь об эмуляции D3D средствами OpenGL, если хотите поговорить вылазите из под анонимуса, поговорим =)
Это не эмуляция (этот термин здесь совершенно неоправдан), это просто реализация API, пусть она и просто транслирует функции Direct3D в OpenGL. Вас ведь не смущает, что GTK работает поверх X11? Пишу из под anonymous, потому что не хочу регистрироваться, Ваш переход на личные оскорбления ("спрятаться под стул" не могу понимать иначе) считаю неуместным.
>>Вас ведь не смущает, что GTK работает поверх X11Нет не смущает, GTK и QT используют стандартные функции X11 для "красивого" отображения своих классов. QT сейчас стремится заюзать OpenGL, дабы отвязаться от стандартных форм.
>>Это не эмуляция (этот термин здесь совершенно неоправдан)
Это именно что эмуляция, тут нет прямого соответствия D3D -> OpenGL.
Цитата с вики: http://ru.wikipedia.org/wiki/Эмуляция
"Эмуля́ция (англ. emulation) в вычислительной технике — комплекс программных, аппаратных средств или их сочетание, предназначенное для копирования (или эмулирования) функций одной вычислительной системы (гостя) на другой, отличной от первой, вычислительной системе (хосте) таким образом, чтобы эмулированное поведение как можно ближе соответствовало поведению оригинальной системы (гостя). Целью является максимально точное воспроизведение поведения в отличие от разных форм компьютерного моделирования, в которых имитируется поведение некоторой абстрактной модели."В результате того что они будут стремиться реализовать картинку в OpenGL равно такую же как в D3D, появятся различные несовместимости, баги и тормоза - Факт.
>>Ваш переход на личные оскорбления ("спрятаться под стул" не могу понимать иначе) считаю неуместным.
Я не могу считать анонимное заявление как заявление от человека понимающего свои слова и отвечающих за них. То есть отношусь к ним негативно. Однако извиняюсь за свои слова выше если оскорбил вас.
Всё равно здесь DirectX круче opengl
Чем?
http://biipi.ru/article/7047
Европол, понимаешь, предупреждает об опасности, таящей в себе Windows XP, а эти неадекваты зачем-то подставляются под угрозу наезда по случаю нарушения патентов в лице Microsoft.
Это просто реализация API Direct3D поверх OpenGL. Какие могут быть патенты на API? Если патенты и могут откопать, то уже в самом OpenGL, с обёрткой или без уже неважно.
Не волнуйтесь, этот патентный тролль MS, ещё и не так умеет.
если в их "цивилизованном" мире имеют место быть патенты на прямоугольники, то патенты на API тем более имеют право на существование