Pull to refresh

Comments 94

UFO just landed and posted this here
Что, простите? Добрая половина уровней Дума 1-2 представляла собой те самые тесные коридоры и маленькие комнатки. Уровней с реально большими пространствами было очень немного.
UFO just landed and posted this here
Я прекрасно знаю, как выглядят Дум 1-2, проходил их множество раз. Да, там есть уровни с очень большими пространствами, которых нет в Думе2016. Но в Думе2016 открытых пространств тоже предостаточно. Лично меня ощущение клаустрофобности в Думе 1 не покидало никогда.
В среднем в Думе2016 открытых пространств даже больше, пожалуй.
В DOOM 2, уровни с большими пространствами встречались существенно чаще, чем в Первом. Но, и в Первом — они тоже встречались. Чем мне новый DOOM понравился — тем, что в нём наконец-то появились открытые пространства, которых так не хватало в DOOM III.
Вы действительно не заметили, что статья о движке, а не о геймплее?
Жрет как не в себя.

Как раз таки использует видеокарту на полную, бегает даже на устаревших процессорах. А про повторение геймплея 20летней давности – это что-то про траву и её RGB?

Подтверждаю. Ноут с 950М. До выхода новый драйверов — лагало жутко, даже в меню. После — отлично катит на средних. 35-40фпс.
В контесте травы имеет смысл упоминать только R и его интенсивность.
Сложно сказать что то про движок в целом, но новый дум выглядит потрясающе, при этом он очень хорошо оптимизирован, не требует каких то заоблачных конфигурации для игры с 60+ фпс. Ну и по нему очень хорошо видно что Вулкан это очень круто.
Круто. Жаль нет видео этих фрагментов.
Посмотрите видео прохождения игры на ютубе, судя по описанию, кадр брался из самого начала игры. Также рекомендую оценить оригинал статьи, там изображения сменяются как слайд-шоу, немного нагляднее получается. К тому же там есть интересные WebGL-вставки.
Спасибо. Действительно есть. Отличные разводы крови на полу. До грязного стекла правда пока не дошел.
Спасибо за перевод! Здорово видеть как это все работает изнутри!

Спасибо за перевод. Кластерный рендеринг — для меня что-то новое, надо будет попробовать. Жалко, что ничего нет по SVO (Sparse Voxel Octree). Хотя, я догадываюсь, почему — всю информацию, содержащуюся в статье, автор выцепил из вызовов API, а вот как оно устроено внутри — нужно декомпилировать код. Ну и больше всего удивило, что на интерфейс ушло почти 10% вызовов API, они ведь далеко не бесплатные (ну, по крайней мере в OpenGL, не знаю насчет Vulkan), интересно, почему незаоптимизировали. Хотя, наверное, по сравнению с рендерингом сцены — это пренебрежимо мало.

А кто сказал, что в idTech 6 используется SVO? Единственное упоминание о нём дал Кармак в 2008 году, после этого ни одного упоминания об SVO не было, а ведь прошло 8 лет, более того, 2.5 года движок разрабатывался вообще без Кармака. Что на данный момент используется в idTech 6, вопрос, как по мне, очень даже открытый.
http://www.eurogamer.net/articles/digitalfoundry-2016-doom-tech-interview вот одно из немногих технических интервью и тут ни намека на SVO. Более того, я только на вики и читал об этом, которая ссылается на презентацию 2008 года, где речь просто об исследовании новых техник. SVO вообще никто в релиз не пускал, насколько знаю, техника плохо изучена, а единственное ее применение в виде SVOGI было быстренько отключено в Unreal Engine 4 и заменено другой более дешевой техникой. В ближайшее время SVO мы точно не увидим. И я даже не уверен, что оно прямо так нужно. Непонятно, какую такую насущную проблему оно должно решить. Собственно, тот же вопрос и к виртуальным текстурам. Да, прикольно, но результат себя как-то не оправдывает.
Когда Id software выпускает DOOM, значит они хотят показать возможности движка нового поколения в данном случае idTech 6
Потом и начинается штамповка других игр на этом современном движке idTech 6.
А то что дуум стал похож на своего кровного брата Quake, итак понятно, динамика игры слишком быстрая!
А мне драйв нового Дума — очень понравился. Напомнил скоростное прохождение классического Дума.
Странно, технология такая крутая, а картинка… не ощущается некстгена. Всё такое же металло-пластиковое, как и в DOOM 3. Сейчас даже в Unity шейдеры (читай: материалы) лучше, чего уж говорить про UE4. А Id, похоже, решили вложиться в технологии оптимизированного рендера (чтобы быстро было и с глубиной резкости), а не в реалистичные материалы и освещение, тогда как у конкурентов упор на всякие subsurface scattering и прочий physics-based lighting с почти-почти-уже-честным global illumination. Вот эта их мегатекстура как технология хороша и даже революционна, но игроки разве оценили её? Дизайнерам, возможно, по душе пришлось, но и только. А вау-эффекта со времён D3 у меня лично не возникало от их игр/движков. Печально.
В DOOM III тоже некстгена не ощущалось — потому что там все лампочки не бьющиеся, и прочих динамических источников света — тоже как у козла молока. И дело не в движке (который всю эту радость позволяет), а в криворукости и консерватизме дизайнеров :-(

А так, реально порадовало — что наконец-то появились открытые пространства! :-)
Я в саму игру не играл (в новый DOOM), так что оцениваю чисто по скриншотам и видео. А в DOOM 3 были крутые динамические тени от всех предметов, пусть и чернущие, ну и normal mapping. На фоне других игр это выглядело совершенно потрясно. А ещё там были интерактивные интерфейсы, вписанные в мир, т.е. жать кнопки на сенсорных экранах можно было не открывая модальный интерфейс, а двигая головой. Жаль, что не очень это прижилось.
И вообще, сами их дизайнеры не используют возможности движка, выходит, а больше им никто не пользуется. Я разве что Prey могу вспомнить из того, что делали сторонние разработчики, ну и отчасти Wolfenstein, но это всё же Id'шная франшиза. Тогда как на UE3/4 сделана невообразимая масса игр от кучи различных студий, а теперь ещё и инди подтянулись. И учитывая тенденции по уходу в опенсорс, Id останется либо сидеть на своём стогу сена и стагнировать, либо присоединяться. Сомневаюсь, что появится много желающих лицензировать Id tech, когда вон тут бесплатно раздают намного более технологичный, кроссплатформенный и обвешанный экосистемой UE4 со смехотворными отчислениями. Ну понятно, что 5% с определённой суммы могут перестать быть смешными, однако ж вряд ли Id/Zenimax сумеют по совокупности сделать более интересное предложение.
Там весь вау-эффект возникает при бешеной динамике игры, статические картинки не могут этого передать

Я так и не понял, какую проблему решает мегатекстура.

В классическом подходе на модели накладываются небольшие одинаковые текстуры, ну там «камень» или «кирпич» и повторяются сколько надо раз, чтобы покрыть всю поверхность. Мегатекстура же имеет размер во всю поверхность карты, так что можно рисовать уникальные текстуры, которые никогда не повторяются. На самом деле, глаз это не очень замечает, если сама игра интересна, так что для игрока эффект не особо впечатляющий. Разве что специально ходить и разглядывать уникальные трещины и пыль.
Ну лично моё мнение: ад в думе отрисован потрясающе, и это не в последнюю очередь заслуга именно мегатекстур.
Тут можно только думать, какой бы он получился с традиционным подходом. Фотограмметрия с обычной техникой текстурирования дает потрясающие результаты, что виртуальные текстуры и не нужны никакие. Пока что ни одна игра не показала какого-то объективно преимущества этой техники.
А в чём принципиальная разница то? С традиционным подходом можно выделить на каждый участок уникальную текстуру — будет примерно то же самое.
А с мегатекстурами теперь понятно почему дум такой прожорливый по части видеопамяти. :)
Принципиальная разница в том, что традиционный подход не позволяет столько текстур держать в памяти. Вот представьте, у вас один объект покрывает текстура размером в 15ГБ. Как бы будете отображать это на экране, когда у вас видеопамяти всего 4ГБ? Никак, а в этом весь традиционный подход. Засунуть все в память и рисовать. И стриминг тут тоже не поможет, т.к. работает на довольно больших секциях уровня и все равно требует очень много текстур переиспользовать, т.к. в конечном итоге все равно засовывает все в память, даже если оно не в пределах видимости камеры. Виртуальные текстуры (мегатекстуры это старый вариант уже) же грузят только то, что видит игрок, плюс минус. Поэтому, теоретически, текстуры могут иметь сколь угодно большой размер. Вплоть до того, что можно уткнуться в стенку и увидеть каждую мелочь идеально четко. А еще это позволяет не переиспользовать текстуры вообще и сделать каждый уголок уровня уникальным, чего в играх с традиционным подходом никогда не увидишь.

И мегатекстуры как раз не требуют много памяти, т.к. им нужен всего лишь буфер фиксированного размера, куда вовремя будут подгружаться нужные куски. Дум много видеопамяти ест, потому что это современная игра с очень качественными текстурами, PBR, кластерным рендером, качественными моделями и миллионом постэффектов. А от мегатекстур привычных там осталось уже не так много, это далеко не Rage. Все современные игры требуют много видеопамяти, потому что у консолей ее теперь очень много. Намного больше, чем у среднестатистического ПК. А значит можно развернуться разработчикам.
Спасибо, интересная статья.

Не понятны 2 вещи:
1) Зачем нужны мега текстуры? В чём их плюс в данной случаи по сравнению с отдельными текстурами. А сейчас тем более уже есть Texture Array.

2) Для чего двигающиеся объекты, статические и оружие рисуются отдельно?
2) Для чего двигающиеся объекты, статические и оружие рисуются отдельно?

Чтобы использовать результат вычисления предыдущего кадра для отрисовки текущего
Чушь, и они не рисуются отдельно, просто порядок отрисовки разный, сначала оружие потом статика потом динамика, сделано это для уменьшения филрейта (для отработки Early Z out)
1) их плюс в теоретической неограниченности разнообразия текстур и общего их количества при минимальном потреблении VRAM. Особенно при сравнении с обычным подходом. Теоретически, потому что все равно ограничено все размерами игры, которые желательно уложить в 50Гб где-то. И тем, что их все равно надо стримить в реальном времени, да еще в зависимости от того, где игрок находится и куда смотрит. В основном упор именно на разнообразие. Rage был раскрашен, грубо говоря, полностью вручную.

Но тут есть обратная сторона медали — это слишком большая работа и, можно сказать, она себя не окупает. В Rage технология явно была еще молодая и, я не помню конкретно почему, но именно из-за нее все освещение было статическим. Даже прямой свет от солнца там был статический, хотя сейчас в играх совмещение этих вещей уже обязательная программа

К Doom они существенно упростили и ограничили использование виртуальных текстур. Добавили привычный тайлинг и detail maps. Вроде как раз ради динамического освещения. Подозреваю, что и PBR повлиял, будучи более требовательным к количеству текстур на материал. К сожалению, полноценной презентации на эту тему я не видел.

По мне, оно того не стоит. Тем более если посмотреть на то, чего можно достичь с обычным текстурированием вкупе с фотограмметрией. Примеры, которые вспомнил, star wars battlefront, order 1886 (может они немного по-другому делали, но PBR текстуры они снимали именно с реальных материалов) и вот скоро выходящий forza horizon 3.
Мегатекстура — это когда смотришь налево — загружаются текстуры, смотришь направо — загружаются текстуры, и неоправданно гигантский размер ресурсов игры.

www.youtube.com/watch?v=YeX-20DAA0I

Мб задумка и хорошая — типа уникальный вид каждого уголка мира, но это экономически невыгодно и в итоге все равно все сводится к натянутым везде одинаковым текстурам + дополнительные артефакты.
Задумка не в том чтобы был уникальный вид, задумка заключалась в том что текстуры масштабируются согласно тому сколько они занимают экранного пространства, чтобы вместо того чтобы генерировать LOD на лету для 4К текстуркы достаточно просто скопировать нужный кусок. Благодаря мегатекстуре собственно текстуры на объектах что ближе сохраняют высокое разрешение. Но реализация и правда не идеальная (
Задумка была, в том числе, и для того, чтобы обеспечить уникальность текстур. Правда вот по Rage это не особо видно было — облик игры такой, что все в любом случае одинаково выглядит.
Нет не для уникальности уж точно. И прочитал ваш комментарий выше, вы там такой бред написали что диву даёшься.
В Rage технология явно была еще молодая и, я не помню конкретно почему, но именно из-за нее все освещение было статическим. Даже прямой свет от солнца там был статический, хотя сейчас в играх совмещение этих вещей уже обязательная программа

Что вы подразумеваете под статическим освещением, лайтмапы? Их в рэйдже нет 100% дебагером можно посмотреть, а динамическое освещение вообще никак не зависит от текстур если не считать нормал мапы. А DS(deferred shading) вообще практически снимает ограничения на количество лайтов.
Далее бред про PBR, эта технология расчитана на то что практически любой материал (за исключением тех у которых есть sss прозрачность или свечение) можно рассчитать при помощи Albedo, gloss (или roughness), metalic. Если альбедо ещё можно вытащить из фотографии то показатели gloss и metalic как ты вытащишь? А ведь именно они задают то как BRDF будет отрабатывать. Ну и как следствие вы должны понять почему вот это ваше предложение на фоне новых фактов является неверным
PBR повлиял, будучи более требовательным к количеству текстур на материал.


Надо будет какнибудь написать про свою реализацию PBR правда она не для игр а для рейтрейсера, но принципы одинаковые, для GL вьюпорта я тоже писал PBR шейдеры
> Нет не для уникальности уж точно.

Ну про освещение и PBR конечно не в тему. Но вот как раз ради уникальности — таки да. Смысл в том, чтобы уместить в видеопамяти только нужные mip уровни тысяч текстур вместо того, чтобы размещать в видеопамяти сотню текстур, но со всеми mip уровнями.

Но вот беда, что все эти теоретически разные текстуры как раз выглядят одинаково. Никто не оплатит художнику 10 лет труда, чтобы он рисовал везде разные решетки и травинки. Он просто натянет одну и туже текстуру то, там то тут. В итоге выглядит так же, но с дополнительными косяками.

И если уж авторы технологии не смогли сделать нормально, а больше никто эту технологию и не использует, то проблема возможно в самой технологии (ну не так просто быстро постоянно пересылать данные в видеопамять, вместо того, чтобы сразу загрузить все необходимое).
Кстати текстура со всеми мип уровнями занимает больше памяти, чем текстура без мип уровней всего на треть, так что все эти «уникальные» текстуры дума никаких проблем не вызывали бы при обычном подходе. Просто они не могли сделать игру без своей технологии, которая является главной его фишкой.
Ну треть это довольно много для каждой текстуры, хотя я согласен что мегатекстура довольно спорная технология, самая большая проблема это её обновление которое никак не удаётся по нормальному разогнать.
tiled resources же как раз для этого и сделали. В xbox one вон move engines похоже в том числе для этого были сделали. Судя по слова Кармака, Doom 4 эту аппаратную фичу как раз использует.
Основной посыл при придумывании мегатекстуры был не в разнообразности, а в том что нет ни возможности ни смысла хранить хайрез текстуры для каждого объекта, потому и была придумана технология которая загружает хайрезными только те текстуры которые занимают на экране больше пространства. Что само-собой позволила повысить разнообразие, но разнообразие не было движущей фичей.
У вас в голове все перепуталось. Изначальная цель — сделать все красиво. Чтобы сделать красиво, надо сделать каждому свою хайрез текстуру, с уникальными деталями, чтобы глаз радовался. Что нам дает традиционный подход — копипаст одной и той же текстуры на все камешки и detail карты, чтобы хоть как-то они выделялись. Это техническое ограничение, которое ограничивает художников. Нет никакой проблемы пару хайрез текстур засунуть в память, для этого мегатекстуры не нужны были никогда. Мегатекстуры нужны именно для художников, чтобы они могли вдоволь нарисовать все как им хочется. И уперлись уже не в технические проблемы, а в художников — некому просто напросто рисовать столько уникального контента, что на деле вылилось в те же яйца только сбоку. А еще ворох проблем из-за самой технологии.
Вы бы лучше вместо минусов и излишней самоуверенности потрудились поискать что-то по теме

1. Уникальность текстур www.telegraph.co.uk/technology/video-games/8143874/Rage-developer-interview-John-Carmack.html techreport.com/news/9886/carmack-devises-globally-unique-texturing-scheme Цитаты автора технологии, надеюсь, найдете сами
2. Статическое освящение — я в курсе как и что это работает, но это больше все слухи и предположения. Раз там рендер не такой, то чего поделаешь. А пошло все от полной технической убогости Rage, который выглядел как пустая коробка с прибитыми текстурами и выкрученным на максимум амбиентом. Рядом с проектами, которые щеголяли тогда уже отраженным светом навроде lightmass и ему подобных, выглядело это жутко убого. Скайбокс отдельный позор был.
3. Опять же, я в курсе PBR, иначе бы вообще не заикался про него. Я говорил про Ready At Dawn и их 3д сканер материалов. Судя по всему, они получают с него нормали и альбедо, но вот о roughness ни слова. Вполне могли собирать из сканов, а может и руками рисовали. Почему-то эта часть опущена во всех их презентациях. Тем не менее, наиболее впечатляющие результаты сейчас имеют именно те, кто прибегает к фотограмметрии и точному сканированию реальных материалов.
Статическое освещение скорее всего имелись ввиду даже не лайтмапы, а вообще запеченое полностью в общую мегатекстуру. Не только свет, но и тени. Если сейчас посмотреть ролик, то это хорошо видно — динамические объекты не получают не то что отраженный или прямой свет, на них даже тени от окружения не падают. Прямо поверх них катаешься Т.е. чисто в плане освещения это возврат в самое начало того поколения консолей в 2006 год.
Может быть, про такую технику не слышал, но и информации в контексте Rage ноль. Все, включая Кармака, жужжат только про мегатекстуры эти. Да там собственно ничего больше интересного наверное и нет.
> чтобы генерировать LOD на лету для 4К

Возможно Вы что-то другое имеете в виду? Потому что LOD не генерируются на лету, а все заранее сгенерированные mip-уровни хранятся в dds-текстуре (обычно)
Да неверно выразился, имел ввиду mipы просто их отдельно по кускам загрузить нельзя.
Выглядит офигенно!
Bloom и тональная компрессия радикально меняют эффект от игры, как и отражения. Чего далеко ходить — Alien Isolation (который идет на средних, без лагов, на HD5500).

Но вот чего не хватает… Doom 3 со своими убогими тенями и отсуствием глубины и кривыми отражениями заставлял срать кирпичами, ибо черное было по настоящему черным и звук там радикальный. У меня он стоит на внешнем харде и раз в год (c 2005 года) я его запускаю и до-прохожу сюжет. В далеком 2005м меня не хватило надолго фонарик-пистолет-дробовик, в итоге поставил мод фонарик+пистолет и фонарик+дробовок. Именно эта игра (на максимальной сложности и в больших наухниках) заставляла матерится, имея арсенал оружия.
К примеру упомянутый выше AI добивается такого эффекта в силу проработанного звука и… беспомощности героя (чужого не убить, оружия крохи..).

отщепятки
Поиграй в первый Aliens vs Predator — если хочешь по-настоящему высрать кирпичей. Игра кстати, с динамическим освещением и задолго до DOOM III. Играть желательно в темноте и с Surround Sound.
AvP, конечно, прекрасна, но там не было ничего даже похожего на динамические тени (а прорыв дума именно в тенях, а не просто освещении), посмотрите сами на видео — никаких теней. А чтобы понять в чем прорыв Дума3 — сравните его, например, с Unreal Tournament, который вышел в том же году. Как на меня — разница очевидна. Как раз в поколение.
Имхо, сравнивать одинчную игру, вроде Дума, (которая не у всех может работать без лагов на тот момент), с мультиплеер-игрой, (которая должна работать у всех), некоректно. Все таки цели у игр разные, и подходы к графике тоже
В те времена это была настоящая фабрика по производству кирпичей (если играть за человека). Думаю, что сейчас это уже не сработает.
Ну это совсем разный жанр. DOOM и DOOM 2 не были ужастиками, а были динамичными шутерами. Новый DOOM к ним возвращается.
всё это произошло меньше чем за 16 миллисекунд.

Давайте, любители Java, .NET, Python, Javascript и прочего, расскажите мне ещё о смерти С и С++.
Вы же понимаете, что практически все вычисления происходят на GPU? .Net и Java здесь не сильно помешают
Может вмешаться сборщик мусора в ненужный момент. Ну и всякие фишки для байтослесарей в С/С++ идут на ура.

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

Только кроме C#/Java (в которых к сожалению сборщик это единственный доступный менеджер памяти) есть еще и всякие Rust, которые тоже быстрые, и не С++ при этом.
Не «все вычисления», а «все связанные с графикой вычисления». А помимо графики там ещё дофига всего есть — физика, логика игры, управление, звук, сеть и т.д. да и «связанные с графикой» вычисления не все на GPU работают, об этом в статье тоже написано.
Вот не надо. Я написал "практически все вычисления". Это именно так. Подавляющее большинство вычислений идет на GPU. Поэтому .Net и Java помешают не так уж сильно. Разве что какая-нить физика может буксовать будет и вспомогательные графические вычисления на CPU. Хотя надо еще смотреть, какая она нужна для игры. В Doom ее, по сути, и нет никакой. А логика, звук, управление, сеть — все это ерунда для managed языков.
В новом DOOM — наконец-то Марсианская Гравитация!!! А не земная как в DOOM III. Сила тяжести на Марсе примерно вдвое меньше, чем на Земле.
Разве все вычисления с подготовкой буферов, затронутые в этой статье, идут на ГПУ?
Судя по статье — да, что совсем не удивительно. CPU тоже помогает, но его вмешательство минимально и с каждым годом все меньше. Все больше задач переносят на теже compute шейдеры, а CPU все больше оставляют задачи просто подготовить данные. Как вот cluster и tiled deferred rendering, где разделение можно реализовать на CPU. Хотя никто не мешает это сделать и в compute шейдере.
Ну как-бы если нужно аккуратно вбить шуруп, то очевидно что лучше его вкрутить…

Всему свой инструментарий и не более того.
У C++ есть киллер-фича — ты не платишь за то, чем не пользуешься. То есть, вся эта темплейтная ООП-мешанина в ряде случаев конвертируется или инлайнится в обычные функции без vtable, что позволяет сэкономить память и такты процессора. Конечно, в JIT и интерпретируемых языках такое отсутствует, но сам JIT очень неплох. Хоть и не истина в последней инстанции, Benchmarks Game позволяет оценить качество оптимизаций JVM против C++: http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=java&lang2=gpp — отрыв не такой уж большой. А вот потребление зато памяти серьёзное, да и самопроизвольно срабатывающий GC для игрового кода подходит не очень. Вообще, на Java игры есть, не только известный Minecraft, но и Starmade, например, или Retro-Pixel Castles. Мне кажется, отсутствие красивой графики вызвано и непопулярностью платформы для игроделия, и отсутствием серьёзных движков с хорошим инструментарием, и падением производительности на стыке Java и нативного кода (JNI), который дёргает OpenGL.

А компилирующиеся в нативный код языки никуда не уйдут, у них огромная кодовая база и сообщество. Может, Rust что-то сможет предложить, время покажет.
Unity работает вполне сносно со своей сборкой мусора. Хотя и есть проблемы, в основном на консолях. По идее, достаточно настроить GC, чтобы он делал паузы гарантированной продолжительности. Как в том же Go, где низкая латентность главная цель их сборщика мусора.
Unity написан таки на C++, а на C# там только игровая логика, вроде. Думаю, это не оказывает такого сильного влияния.
Не совсем верно будет говорить только о С++ — там мешанина как минимум 3 языков, которые образуют редактор Unity. Да и не важно на чем написан Unity. Вопрос то об играх, не так ли? И игры то уж точно работают на С#, где с плюсов только некоторые модули движка(основные игровые циклы и низкоуровневая работа с графикой). И если игру делали опытные разрабы, да и с нормальными сроками разработки, то они хороши и по графике, и по производительности. Во всех проектах, с которыми я работал, ни разу не доходило до переписывания или глубокой оптимизации обработки графики для Unity — везде больший профит дала бы оптимизация кода игры. Порой даже было наоборот — собственные реализации для рендера давали худшую производительность и работали хуже стандартных средств Unity. Так что, я считаю, что тут просто в нужном месте используют нужный язык.

Так же стоит отметить, что Unity проект может собрать разными способами, в том числе, по сути, не используя компилятор mono, а используя свой, который делает из C# IL кода С++ (условно). И у самих работников Unity получалось добиться производительности ~ обычного С++ кода, при этом используя почти все возможности mono .Net 3.5, коих много больше чем у С++.

Чуточку о сборщике мусора. Они могут быть разными. Обычный подходит для сервера или офисной программы, а для приближенных к обработке данных в реалтайме или таковых же, его можно и подпилить, ну или наделить нужным функционалом. Что во всех игровых движках на C# постоянно и делают. Всё таки GC не основа С#, а скорее просто способ собрать программу. Кстати, JIT так же не обязателен, есть NGen.

PS: Гораздо чаще сталкиваюсь с тем, что нужно сделать проект быстрее, и производительность далеко не на 1 местах(тут разве что для айфонов исключение было). А этому больше помог бы C# 6 и .Net 4.5+, а они всё пилят С++ компилятор из IL. А ведь можно было бы и кривоту архитектуры Unity и её же ограничения легко поправить c async/await, что убрало бы множество костылей.

Unity не могли взять и обновить моно до последней версии с C#6 и т.п. из-за лицензии моно. Но в марте этого года моно стало MIT и теперь unity скоро будет со свежачком ;-)

Зато вот Rust начинает прокладывать дорогу в GameDev!

Кстати, игра хорошо оптимизирована. Выдаёт отличные FPS даже на средних видеокартах.
Скажите это моей GT645M, на которой всё остальное идёт вполне сносно и даже не на минималках, а новодум в разрешении 1366x768 на настройках в самый минимум и половинном внутреннем разрешении не просто ужасно тормозит, а ещё дёргается как паралитик. Я в локации, что на скрине, импов нормально стрелять не мог, FPS постоянно прыгал с 30 до 10. Это при i3-3120M 2.5 ГГц и 6 Гб RAM.
645M всё таки не средняя видеокарта, средняя сейчас это 880 или 780.
Что, простите? Мне вот всегда казалось, что GTX*80 — топовые решения. Хотя для товарищей с кучей лишней денег и первый титан уже посредственность, да.
По мне, так разница между поколениями сейчас не настолько большая, чтобы считать карты трёх-четырёхлетней давности «средними».
Моя GT645M на 1366x768 по производительности примерно как 750Ti в FullHD. И я не требую от игры 60 fps, я и на 30 согласен, лишь бы поиграть.
Средние карточки сейчас это radeon 480 или geforce 1060 — какой там эквивалент будет в ноутбуках не знаю. Они способны тянуть дум чуть ли не в 4к, что как бы очень круто. Ваша карта это жуткий low-end и ни в какое сравнение не идет с упомянутой 750ti (вы не ошиблись тут? Это карта другого класса абсолютно). Помимо этого у вас жутко low-end процессор. Поэтому совершенно не удивительно, что дум вообще не играбелен. Дергается он как раз из-за процессора.
Я смотрел производительность различных видеокарт в различных играх на Notebookcheck, и сравнивал со своей. На основании этого делал такие выводы. Ещё раз отмечу, что сравниваю я производительность более слабой видеокарты в 1366x768 и более мощной в 1920x1080.
Но ладно, пусть моя видеокарта и процессор жуткй лоу-энд, я не спорю. Но вот почему-то я на этом жутком лоу-энде относительно комфортно играю подавляющее большинство современных AAA-игр, порой даже позволяя себе включить такие красоты, как SSAO и отражения. Так чего же игра на движке, чуть более старая версия которого у меня летала на высоких (последних два вольфенштейна, особенно Old Blood), не может нормально идти на самом минимуме?

P.S. Сейчас ещё скачаю демку новодума и посмотрю на графики загруженности процессора, аж интересно вспомнить, насколько он у меня лоу-эндовый :)
Лучше посмотрите на 3mark результаты этих карт, насколько это кардинально разные карты. Они в абсолютно разных классах находятся.

Что до комфортной игры. Современные игры это какие? Я вот сейчас посмотрел ролик ведьмака 3 на 640m, что, по сути, таже самая карта. 15 фпс даже на низких настройках. Это нормально, потому что это low-end решение по всем статьям и это современная игра. У нас тут наступило новое поколение консолей и требования игр довольно сильно изменились с тех пор. Не имеет смысла даже смотреть на игры, которые способны идти на прошлом поколении консолей. Это не показатель. Doom показатель, потому что это чертовски шустро бегающая игра на среднем железе на момент выхода этой игры. Опять же, 480 и 1060 это бюджетные средние решения, и они тянут эту игру в 4к на максах.
Ведьмака я не смотрел — исключительно ради теста качать его не хочется, а проходить ещё рано — первые две игры ещё нужно пройти :)

Современные игры — это, например, Alien: Isolation, где оптимизация была настолько хороша, что я даже включал DX11 глубину резкости вместо обычной гауссовой размывки, которая обычно отнимает 10-15 fps. Или вот прямо сейчас прохожу Far Cry 4, на средних 25-40 fps, но ровных. Могу ещё бету The Division вспомнить — шла на удивление хорошо, и выглядела тоже приятно. Mad Max и Shadow of Mordor — обе шли хорошо, 30-50 fps на средневысоких, а это игры с открытым миром. Новый Вор — тот шёл просто идеально, на полном максимуме (без SSAA и с тенями попроще) 50-60 fps почти везде. Да много их.
Могу вспомнить, что шло не очень: Dying Light — ну никак не получалось выжать из игры 30 fps на открытых локациях, хотя игралось всё равно относительно неплохо. XCOM 2 — тормозило жутко, без особых на то причин, хотя, если спустить до минимума, то до 45 fps поднять можно было. Rainbow Six: Siege бета — при никакой графике минимальных настроек 60 fps выжать никак не получалось, а при разрушениях всё тормозило просто адски. Unreal Tournament новый и почти всё на UE4 — что они сделали с божественным UE3, который летал на кофеварках, не пойму. AC: Unity и Black Flag — с первым понятно, он тормозил практически у всех, а вот что не так со вторым — неясно (хотя играть можно, если привыкнуть).

Так вот, даже то, что тормозило, в основном тормозило адекватно (Unity — великолепная детализация и открытый мир, Siege — разрушения, UE4 — шейдеры сильно некстгеновые, наверное?), а вот что не так с коридорным новодумом, который использует тот же движок, что и чуть ли не летавший у меня последний Wolfenstein: Old Blood, не пойму. Вот это и раздражает.
Затестил демку… Знаете, я беру свои слова назад :) Частично, во всяком случае. Не знаю, в чём дело — то ли патчи помогли, то ли обновления драйвера, но теперь дум
1) тормозит меньше — 20-30 fps на минимуме с родным разрешением экрана.
2) идёт ровно! Играть можно :)
3) починился Vulkan! Ранее дум с ним работал только в меню. Увы, быстродействия он не добавляет (в моём случае).
В целом, я очень рад, ведь очень хотел поиграть и теперь, наконец, могу :) Спасибо за то, что заставили меня проверить.

Насчёт процессора и его лоу-эндовости — игра его не особо-то и кушает, как и видеокарту, что не мешает ей выдавать 43-52 fps в меню: OGL, Vulkan и во время игрового процесса: OGL, Vulkan.
UE4 шейдеры сильно некстгеновые, это да. Но при этом этот движок имеет чертовски эффективный рендер, не стоит судить его по своему железу. UE3 же не отличался современностью, но бегал шустро.

Wolfenstein: Old Blood сделан на предыдущей версии ID Tech, а Doom на новой. Не нужно проводить здесь параллели. С тех пор рендер очень сильно изменился. Как минимум, они перешли на PBR и вроде бы HDR (судя по интервью, только в думе появлось), что кардинально повлияло на графон, но и на прожорливость тоже.

Поэтому, опять же, не стоит мерить по своему медленному железу новые игры. Если какая-то игра не масштабируется до совсем low-end железа, то это не проблема игры или движка. Некоторые вещи просто невозможно ужать в такой формат, чтобы сохранить какое-то подобие изначального продукта. Для этого и есть минимальные требования. Ну и конечно есть просто не очень качественно сделанные проекты, это да. К слову, не сказал бы, что Unity сюда относится. Да, там конечно были проблемы, но там было чему тормозить, что им аж пришлось резать графон к следующей части.
Как-то я не могу понять, как «чертовски эффективный рендер» может так сильно тормозить. И если не по слабому железу судить, то по какому же? На мощном железе и так тормозов не будет, на то оно и мощное :)

>Wolfenstein: Old Blood сделан на предыдущей версии ID Tech, а Doom на новой
Это я узнал уже после того, как написал комментарий :)
>HDR (судя по интервью, только в думе появлось)
HDR существует ещё с третьих шейдеров. Как сейчас помню проблему первых решений, когда не могли совместить HDR и антиалиасинг. Это было с десяток лет назад. Или вы о каком-то другом HDR говорите?

Совсем лоу-энд — это всё, что ниже GT*40 по видеокартам и i3 2.2 ГГц по процессорам. Вот там совсем ни во что поиграть нормально нельзя. А то, что у меня — просто ниже среднего, учитывая разрешение экрана.
Про минимальные требования — их часто завышают и/или пишут для игры на FullHD. Я вполне себе играю многие современные игры на моей системе, которая почти везде ниже минимальных требований, о чём я уже писал. Но проблема дума не в этом. Он просто оптимизирован исключительно на три последних поколения видеокарт. Уже на 6xx серии нвидий начинаются проблемы, например — почти ничего не дающий в производительности (а донедавна и вообще работавший только в меню) Vulkan, а уж на поколениях постарше там всё ещё хуже, наверное. Это я не только по своему железу сужу, в сети полно отзывов.
Насчёт AC: Unity я, в принципе, ничего не возражаю, там таки есть, чему тормозить. У меня больше недоумения от Black Flag.
. И если не по слабому железу судить, то по какому же? На мощном железе и так тормозов не будет, на то оно и мощное

Совсем лоу-энд — это всё, что ниже GT*40 по видеокартам и i3 2.2 ГГц по процессорам

Я понимаю, что вам хочется, чтобы на вашем железе бегало все быстро. И естественно закрадываются мысли о недобросовестных разработчиками и понатыканных слипах для старых видеокарт, чтобы на них все тормозило. Но так не бывает. Идет прогресс. Опять же, вышли консоли, произошел очень сильный скачек в том, что разработчики понимают под минимальными и средними возможностями железа, а с ними очень сильно изменились современные движки. Да, бывают делают не честно, но в данном случае нет ничего удивительного, а ваше железо просто морально устарело. Идут на нем еле еле только те игры, которые не являются современными. Это закономерно. И дум нельзя никаким образом назвать прожорливой игрой. Все с точностью до наоборот.

Сейчас вот вышла пс4 про. В следующем году выйдет обновленный иксбокс. Это еще сильнее подтолкнет прогресс и требования игр. От этого никуда не деться.

И если не по слабому железу судить, то по какому же?

Мне сложно назвать ваше железо даже слабым.

HDR существует ещё с третьих шейдеров. Как сейчас помню проблему первых решений, когда не могли совместить HDR и антиалиасинг. Это было с десяток лет назад. Или вы о каком-то другом HDR говорите?

Существовал он еще раньше. Дело в том, что реализовывать его все равно разработчикам своими руками. В интервью они говорили, что это одна из новых фич движка. Да и HDR это слишком размытое понятие и реализовать его можно очень сильно по-разному. В каком виде он существовал до этого не знаю. Могло не быть вообще, а могло быть его жалкое подобие. Вариантов там достаточно.

почти ничего не дающий в производительности (а донедавна и вообще работавший только в меню) Vulkan

Вулкан и dx12 дают прирост в строго определенных случаях, это не silver bullet. Отрицательные отзывы здесь всегда исходят от того, что люди не понимают, как эти вещи работают и когда они дают прирост. Я это вижу уже многие годы. Люди лезут в эту тему, которая, вообще-то, предназначена для разработчиков, а не игроков, и делают выводы, не имея малейшего понимания темы. Это было при d10, это было при dx11. Это происходит сейчас. Во всех случаях игроки все еще не могут ничего понять, хотя информация подается ну уж в очень упрощенном виде в пресс релизах.

Все дело в том, что это сложные вещи и их невозможно просто взять и объяснить. И здесь нет такого, что было 30 фпс, включил вулкан, и стало 60 фпс. Как минимум, могу сказать, что наибольший эффект получает новое железо, потому что оно имеет более совершенную архитектуру. Новые API эту архитектуру умеют использовать. Конкретно, async compute. У нвидии на нее способным толком только паскаль чипы. Это лишь одна деталь, но очень важная. Опять же, здесь нет никаких заговоров. Все закономерно и понятно, но только для тех, кто немножко в этой теме.
Прогресс — понимаю, да. И потому не требую от новых игр заоблачных fps на моём ноуте трёхлетней давности. Тем не менее, некоторые разработчики всё же умудряются заоптимизироввать свои творения так, что даже я на своей машине могу в них поиграть. Примеры выше приводил.

И да, взгляните на мои скриншоты выше. Как вы обьясните менее 60 fps в меню, где ничего нету кроме пары текстур дыма и частиц, при загрузке видеокарты в 70-80%? Мне вот кажется, что некая недобросовестность всё же присутствует. Или даже заговор, кто знает? ;)

Мне сложно назвать ваше железо даже слабым.

Ну да, если иметь в распоряжении машину, способную на 60 fps в 1080p в любых играх — то да, с такой колокольни моя машина вообще ерунда :) А если ещё и зарплата в долларах…
А вот для вчерашнего студента, так и не нашёдшего работу, это вполне приличный агрегат, на котором можно поиграть во всё современное… можно было :(
Интересно, какого вы мнения будете о людях, которые на интелах встроенных играют :)

Про HDR — погуглил. Подозреваю, что это как-то имеет отношение к недавнему Dolby Vision, который последними (и только самыми понтовыми дорогими, естественно) телевизорами поддерживается. Там есть эдакий HDR, который для десятибитного видео и игр. Хотя могу ошибаться, конечно же.

Про DX12 и Vulkan — вы так жирно намекаете, что я нуб и сужу о том, в чём ничего не смыслю, что мне аж смешно :) Тем временем, я по меньшей мере неплохо понимаю, что из себя представляют эти новые API. Всё, что в них нового — более низкоуровневый доступ к железу видюхи, а именно — перекладывание (почти всех) забот по переносу инфы от процессора к видеокарте на плечи (и головы) программистов игровых движков. Это приводит к более быстрой обработке draw calls, использовании ресурсов нескольких разных ГП и более прямому доступу к данным в видеопямяти, что открывает возможность различных оптимизаций, недоступных на старых API — это если разработчик сумеет это всё реализовать. Это я понимаю, как и понимаю, что часто далеко не всё можно оптимизировать даже на новых API. Но вот почти всегда можно снизить нагрузку на ЦП, например (оптимизация пресловутых draw calls же). И да, даже на видеокартах, которые не поддерживают этот вот async compute. Включая мою GT645M! Чёрт, да я перешёл на Win10 только из-за того, что в (моём любимом) эмуляторе GameCube/Wii под названием Dolphin реализовали DX12 бэкэнд, и он в некоторых играх выдаёт аж 50% прирост по сравнению с DX11! Это означает, что я наконец смог нормально поиграть во многие шедевры в фуллспиде без заиканий звука (которое неизбежно при падении fps ниже 60 для NTSC / 50 для PAL из-за жесткой синхронизации в железе консолей). Да, можно сказать, что эмулятор — довольно специфичный случай, но я не верю, что хотя бы некоторые методы, использованные разработчиками Dolphin, нельзя использовать в обычных играх.
GTX да, топовые — в момент выхода. А как только выходит GTX следующей серии — то увы, топовыми их считать больше нельзя.
Читая такие статьи начинаю верить, что всё-таки увижу в этой жизни «реальную» отрисовку реалистичной графики, это радует.
Это нужно ждать видюхи с хардварным рейтрейсингом, картинка уровня blender cycles уже плотную приближается к реализму
Рождаешься, растёшь, детсад, школа, первая любовь, универ, работа, свадьба, дети, внуки, больница, свет уходит в точку…
И в этот момент с тебя снимают шлем виртуальной реальности и вытаскивают из ванны с питательным гелем:
— с пробуждением, как всё прошло? вы довольны прожитой жизнью?
— сколько я здесь провёл?
(если верить фильму «Начало», то соотношение течения времени сна и реала 1:12, т.е. 72 года вирта это 6 лет реала)
— около 6 лет, не беспокойтесь, вашему мозгу нужно пару дней на адаптацию и принятие этой реальности.

Вот как я хочу, почти фильм Начало, но более правдоподобно и это походу будет реально дорого.
UFO just landed and posted this here

Очень желательна GCN 1.1 и выше.

UFO just landed and posted this here
Sign up to leave a comment.

Articles