Код, выложенный пару дней назад 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.
Лучшие комментарии
Вот и все, нам как пользователям это беды или проблем не принесет, инструмент для разработчиков, которые были на Steam Dev Days + те кто просто смотрел это все позже на ютубе.
Так уже писали об этом, пруф правда не достану чтобы положить ибо нет на его поиски времени, но Source 2 будет включать как бэкенды рендера как OpenGL так и DirectX.
Нюню. Как показывает практика — все, что «автоматизировано», требует потом немалого количества человекочасов на вылов багов
Первые недели после ухода с винды для многих будут адом, но человек привыкает ко всему и даже к Терминалу :D
P.s Простите я немного криворукий, не обладаю ультра высоким сочинительным скилом чтобы написать что-нибуть интересное и сразу начать так "Первые ласточКи"