Код, выложенный Valve на Github, может быть использован для переноса игр на движке Source, реализованном с применением DirectX, на более платформы, поддерживающие OpenGL. Если немного покодовать над кодом, его можно научить также работать и с другими игровыми DirectX-движками. Таким образом, открывая исходный код своего транслятора, Valve подталкивает разработчиков портировать свои DirectX-игры на Mac OS, Linux и, самое главное, SteamOS, поддерживающие OpenGL.
Код, метко названный ToGL, был выложен под свободной лицензией MIT разработчиком Valve по имени Pierre-Loup A. Griffais, работающего под псевдонимом Plagman. Исходник взят в чистом виде из Dota 2 и поддерживает DirectX9.0c, может транслировать байткод из HLSL (High Level Shader Language) в GLSL (OpenGL Shading Language) и имеет некоторую поддержку SM3 (Shader Model 3). Он совершенно не отличается от используемого в игровом движке, поэтому там можно найти и фрагменты кода, написанного специально для Source. Valve предоставляет разработчикам полную свободу в его использовании и возможность при желании вносить изменения в код на Github. Сейчас ToGL, естественно, нуждается в нормальной документации.
Наверняка вы слышали о таких эмуляторах DirectX под Linux, как Wine или Cedega – ToGL с ними схож и различен. Обычно любая игра под Windows имеет свой игровой движок, а каждый движок имеет свой API, основанный на Direct3D. Directd3D же поддерживается только Microsoft-платформами (Windows, XBOX). ToGL перехватывает вызовы Direct3D, используя их аналоги из OpenGL. Это дает небольшой выигрыш в скорости.
Естественно, ожидать, что игры на новейшем Direct3D 11 будут сейчас же портироваться на Linux/OS X, не приходится (если они, конечно, не поддерживают режим DX9), т.к. реализована только поддержка DirectX 9. Однако другие разработчики теперь получили возможность без особых затрат и усилий переносить их продукты на OpenGL платформы.
Конечно же, одной из целей Valve является простимулировать разработчиков портировать игры под SteamOS и даже разработать аналогичные трансляторы для D3D 11 и 12. Кроме того, интересно выяснить, какие графические API будет использовать Valve в своем следующем движке Source 2, на котором, вероятно, будет реализована Half-Life 3.
OpenGL более гибкая платформа, поддерживаемая большим количеством устройств и конкурирующими с Windows платформами, Linux и Mac OS. Более того, многие приложения и под Windows используют OpenGL вместо Microsoft DirectX. На последней работают только видео игры, рассчитывающие на кросс-платформенность между Windows и Xbox. А также вспомним, что еще в 2012 году Valve заявила, что OpenGL быстрее DirectX даже под Windows. А потому активность Valve по продвижению OpenGL может повлиять на расклад сил, и стандарт DirectX получит достойного и сильного конкурента.
Кстати
Забавно, Titanfall, выпущенный сегодня, также использует движок Source. Причем это первый продукт, реализованный на версии Source для Xbox One.
Интересно, что компания Google ранее выпустила транслятор ANGLE, который является противоположностью ToGL, то есть позволяет запускать приложения OpenGL ES 2.0 в среде DirectX 9 или DirectX 11.
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев