LINUX.ORG.RU
ФорумTalks

Valve представила Left4Dead2 для Linux: детали

 


0

4

Дисклеймер: да, я буду кросспостить в толксы интересные новости от valve, потому что приход valve в мир GNU изменит его, возможно до неузнаваемости. Кнопка «Игнорировать тег» всегда доступна.

Итак, стали известны некоторые детали:

  • Презентация была создана Rich G., работником Valve и называлась «Left 4 Dead 2 в Linux: от 5 до 300 FPS в OpenGL»
  • На NVIDIA GTX 680 OpenGL-рендер производительнее Direct3D на 11%, несмотря на то, что OpenGL-рендер - это обертка над D3D9.
  • Путем оптимизации рендера они надеются увеличить производительность еще на 5%
  • Эта обертка не похожа на ту, что используется в Wine: она работает в реальном времени (non-deferring). Source предоставляет d3d9-подобное api, которое динамически преобразуется в вызовы OpenGL. Поддерживается Shader Model 2.0, вскоре будет поддержка и 3.0
  • Данный уровень абстракции называют идеальным: nearly 1:1 mapping between d3d and gl concepts.
  • На однопоточных драйверах обертка дает примерно 20% оверхеда, но NVIDIA в последнее время сильно улучшила драйвера в части многопоточными. И опять же, OpenGL быстрее
  • Valve работала (и работает) с AMD, Intel и NVIDIA, улучшая и оптимизируя графические драйвера.
  • Использовался Telemetry от RAD Game Tools, а также их собственный профайлер для OpenGL-рендерера.

    Более детально они расскажут обо всем в блоге, о чем я также напишу под тегом 'valve'

    via http://www.phoronix.com/scan.php?page=news_item&px=MTE1NzE

★★★★

Последнее исправление: pashazz (всего исправлений: 1)

Ответ на: комментарий от h31

Тогда почему для линукса решили использовать враппер?

1 - Потому, что под Mac все работает так же.
2 - Потому, что надо быстро портировать сразу несколько игр на движке.
К тому же PS3 нельзя сделать такую прослойку.
Архитектура D3D9 и OGL конечно разная, но это таки чисто графические API.

На PS3 же идет помесь работы с процессором и видеокартой.
Т.е не получится быстро реализовать уровень абстракции который ещё и будет давать нужную производительность.
Железо слишком слабок, чтобы терять даже 3-5% имеющихся ресурсов.

Разве что причиной может быть недостаток людских ресурсов, но у Valve уже есть команда разработчиков, занятых исключительно линуксом.

Ну скажем у них есть 11 разработчиков (инфа с фороникса, не кидайте тряпками).
Вряд ли силами 11 человек можно за год переписать и оттестировать штук 8 игр.

Вот почему:
1 - Пусть на каждой свежей версии Source собираются и запускаются все из созданных в Valve игр, но релизные версии «сидят» на стабильных ветках.
Т.е при переписывании рендера Valve либо придется заного проводить тестированиние игры на свежей ветке движка (т.е игры 2006 года переносить с 2007 ветки на текущую).
Либо надо будет прилаживать новый рендер к каждой старой версии, а это баги баги и ещё раз баги.
2 - Рендер по сути это очень (!) маленькая часть любого игрового движка.
Из кодобазы в 40+MB кода рендер обычно занимает 1-1.5mb максимум.
Но эта часть сильнее всего влияет на производительность.
При этом это не волшебный подключаемый модуль который работает на 100% отдельно.
Т.е не важно вызовы какого API дергает рендерилка, более важно как идет взаимодействие с другими частыми движка: менеджером памяти, физикой, с внутренним движком 3D, etc.

И если писать с ноля, то писать надо хорошо.
А чтобы было хорошо надо убить кучу времени на тестирование работы «рисовалки» вместе с остальными компонентами и переписываниек совсем других частей движка.
Т.к решения оптимальные для d3d не всегда будут таковыми для ogl.
В общем вместо нескольких портированных игр будет одна.

winddos ★★★
()
Ответ на: комментарий от x0r

они столько костыляют Source Engine что №2 призрачен как HL3

Весь геймдев это костыль на костыле.
Т.к по сути инженеры бьются годами чтобы сделать фейковую картинку более реалистичной и красивой.
Как только кокпьютеры будут в миллион раз производительнее проблема отпадет.

Посмотри там, для интереса хедеры CryEngine 3, удивись этой замечательной архитектуре и тысячам гениальных подходов.

winddos ★★★
()
Ответ на: комментарий от winddos

Да никак оно не может быть именно «завязано», т.к под libgcm нужен вообще другой рендер.

вот мне и интересно, с чего местные аналитки решили что он завязан на d3d

xtraeft ★★☆☆
()
Ответ на: комментарий от winddos

Весь геймдев это костыль на костыле.

С этим никто не спорит. Я бы сказал весь интирпрайз это костыль на костыле, пока клиенты об этом не знают.

Т.к по сути инженеры бьются годами чтобы сделать фейковую картинку более реалистичной и красивой.

Это не костыляние, это вынужденые меры. Полигональные рендереры ничего сверх реалистичного родить не смогут, как не старайся.

Вопрос в том, будут ли они чтото писать чтото новое или будут продолжать мейнтейнить старое. С 2004 года сорс прилично облепили свистелкамии перделками и сорс2 будет иместь смысл писать разве что если кран вплотную подберется к пропасти перфоманса или невозможности мейнтейнить существующую помойку костылей.

x0r ★★★★★
()
Ответ на: комментарий от x0r

С 2004 года сорс прилично облепили свистелкамии перделками и сорс2 будет иместь смысл писать разве что если кран вплотную подберется к пропасти перфоманса или невозможности мейнтейнить существующую помойку костылей.

готов поспорить что за сорс2 выдадут чуть допиленный сорс1.
маркетоиды атакуют

xtraeft ★★☆☆
()
Ответ на: комментарий от xtraeft

готов поспорить что за сорс2 выдадут чуть допиленный сорс1.

маркетоиды атакуют
Я прозреваю, что никакого «сорца 2» не будет.
Продавать движки - совершенно побочный бизнес Valve который принес 2 копейки.

Поэтому вряд ли они будут отступать от своих традиций с ежегодными стабильными релизами.

winddos ★★★
()
Ответ на: комментарий от x0r

Вопрос в том, будут ли они чтото писать чтото новое или будут продолжать мейнтейнить старое.

Зачем писать новое, если старое работает и на 100% выполняет свою задачи?
Может линуксовое ядро тоже с ноля переписывать каждые лет 5-10?

Графон можно и на текущей версии движка сделать без всяких проблем, но у Valve другой подход.
А потому ни один движок никогда не переписывают с ноля.

winddos ★★★
()
Ответ на: комментарий от winddos

Зачем писать новое, если старое работает и на 100% выполняет свою задачи?

я уже написал, зачем это имеет смысл делать.

x0r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.