![]() |
Оптимизация в играх, консоли и ПК
Вообще тема про консоли, PC и оптимизацию игр на этих платформах всплыла в разговоре про плановую экономику в разделе "Политика" (не спрашивайте, как это случилось).
Речь там шла вот о чем: Консоли имеют строго фиксированное железо в течение долгого времени, поэтому разработчики игр оптимизируют их как следует, а на ПК железо мощное, поэтому никто ничего не оптимизирует или оптимизирует недостаточно, поэтому приходится каждые джва года покупать новую видеокарту. Поэтому консоли лучше, чем ПК, Поскольку разговор не для раздела Политика, пришлось перетащить свои задницы сюда. Заодно в качестве первого поста проведу ликбез по GPU и графике. Но сперва правила темы: Оффтопом не считается: 1. Обсуждение графики и производительности PC в сравнении с консолями. 2. Обсуждение того, что "вот эта игра могла работать лучше!", при условии аргументации 3. Сравнение характеристик железа (процессоров, памяти и GPU) PC и консолей, консолей и консолей, PC и PC. __________________________________________________ __________________________________________________ ___________ Итак, действительно ли разработчики игр сговорились с производителями видеокарт, чтобы те могли продавать больше видеокарт и получать больше На самом деле нет. Когда вы запускаете игру, в начале запускается целый ряд заставок в стиле "Коламбия пикчерс представляет", где вы видите лого издателя, разработчика и прочих причастных организаций. И часто в этом списке обитают NVidia и AMD. Это значит, что разработчики обращались к производителям видеокарт, чтобы те сделали их игру более Но все же есть подозрения, что разработчики игр делают не все для того, чтобы игра быстро бегала на вашем компьютере, да? Отчасти это так. Зависит от конкретной команды разработчиков, а именно того, каких программистов они наняли для написания движка (или какой движок они взяли готовым) и как художники распорядились тем, что дали им программисты. Окей, а как дела с приставками? Ну, с приставками, на самом деле, в плане железа, все удручающе. Посмотрите вот на этот график: Скрытый текст: Здесь показано, чем занимаются создатели видеокарт, пока создатели приставок стригут капусту. Обратите внимание, что шкала флопсов (от слова FLOPS - Floating Point OPerations - операции с плавающей запятой) - логарифмическая. Это значит, что значение каждой следующей горизонтальной линии в 10 раз больше предыдущего. То есть если GeForce 8800 имел где-то 500-600 GigaFLOP (это миллиардов операций, стало быть), то уже Titan X имеет больше 6000 GigaFLOP, т.е. в 10 раз больше. Окей, и как же на помогут эти флопсы, спросите вы? Да очень просто. Один флоп - это одно сложение, вычитание, умножение или деление, выполненное над некой переменной типа float. Чтобы получить цвет пикселя, которым будет закрашена поверхность треугольника без текстуры, освещенного каким-нибудь источником света с помощью аппроксимации Ламберта, нужно найти косинус угла между нормалью к этому треугольнику и направлением на источник света, и умножить его на цвет поверхности и цвет источника света. Это все вместе со скалярным произведением занимает 7 операций. Эти операции нужно делать над каждым пикселем, то есть если у вас разрешение 1920 на 1080, а треугольник растянулся на весь экран, вам понадобится 14515200 операций с плавающей точки, то есть на один кадр вы должны потратить 14 миллионов флопов. А нынче ведь все любят уже не Ламберта, а какого-нибудь Орена-Наяра, где можно шероховатость материала указывать. Так почему же тогда разработчики игр любят приставки больше? Все из-за вас, маленькие жадные дети(с). Дело в пиратстве. Разработчик хочет кушать, и желательно побольше. Поэтому он хочет продавать свои игры, а за пиратские игры никто ему не заплатит. А на приставках с пиратством все гораздо лучше с точки зрения разработчика. В этом, кстати, заключается причина, почему часто одни и те же игры на консолях и на PC одинаково выглядят: они просто портированы с консолей. В этом случае в PC-версию можно добавить больше каких-то эффектов, которые не затрагивают ресурсы игры: какие-нибудь HBAO/shadow map based godrays/ ray-marching reflections. Текстуры и модели остаются прежними, поэтому особой разницы не заметно. Можем ли мы как-то выяснить, хорошо ли оптимизирована игра? Ну, если вы умеете программировать графику, у вас не maxwell-видеокарта и вы поставили себе NSight graphics debugger, то полагаю, кое-какие выводы сделать вполне получится. Этот дебаггер работает с картами NVidia и может показывать различные данные во время работы игры и выполнять capture frame - получение данных о всех вызовах, выполненных от одного D3D11ImmediateContext->Present() (или glSwapBuffers) до другого. Там можно понять, что рисует игра и как она это делает, сколько времени тратит на выполнение каждой операции, если ли в процессе рендера остановки для синхронизации GPU-CPU (например, когда игра пытается получить результаты GPU-based occlusion culling, и когда она делает это не правильно) и как выглядит шейдер, который выполняется на конкретном этапе, а также можно посмотреть состояние всех ресурсов. Единственное, что удручает - это то, что дебаггер не доступен для работы с видеокартами с архитектурой Maxwell внутри, а это 7хх и 9хх. Но я не программист, но хочу оптимизировать настройки игры так, чтобы она не тормозила и выглядела хорошо. Есть ли у меня шансы на это, док? Ага. Дальше под спойлером будет список новомодных фич, которые предлагаются в опциях графики игр, краткое их описание и насколько сильно все это грузит видеокарту. За один раз я их все не опишу, потому буду добавлять по мере поступления вдохновения. Скрытый текст: |
Ох уж эти извечные холивары пека vs консоли.
|
На графике сравнение консолей с видеокартами от nVidia из тех времен, когда люди ещё не знали как будет называться новый X-BOX, вследствие чего адекватной оценки по нему быть и не может, ровно как и отсутствие консолей от Nintendo, ровно как и отсутствие видеокарт от остальных видеокарто-производящих компаний.
Что точно он показывает, так это удивительную PR-способность фанатов nVidia превозносить и выдавать действительное за желаемое (см. Razer). |
Цитата:
Цитата:
|
Цитата:
немного лирического оффтопа))) являюсь обладателем ПеКа,ПСов и коробок. Так вот на PC играю когда время есть в улиточные танкосамолеты, и широкий набор разных стратегий или гоночек в сингле. За PC у меня интимная обстановка, только для меня одного, я в это время живу в своем мирке. честно сказать, игры покупаю на PC со скидочками в стиме и иногда даже не брезгую пираткой в основном это старенькие игры (в The Hospital играл так до не давнего времени, пока не нашел его за 100р в Ориджине) У консолек меня можно встретить чаще, так как это удобно, быстро и весело, PC мне не дает возможность набить морду жене в МК не вставая с кровати, а отец например с товарищем на полном серьезе с удовольствием и интересом смотрели полное прохождение Анчартеда 3 почти 4 часа))) Консольки больше социально ориентированы, в отличии от аутичного PC (да. знаем подключаешь в к ТВ, тянешь провода и прочую ахинею куда угодно...это сложно) Соглашусь с тем, что консоли тормозят прогресс в плане графики, еще может чего то, но это тепловоз игродела, основной заработок у игроделов это консоли. |
Deep_wolf, ничего не понял, каких именно "тех времен"? Если мы добавим туда Радеоны и Нинтендо, как изменится главная мысль - консоли остаются на том уровне производительности, на котором они были спроектированы?
Teo:), по сравнению с ПК пиратство на X-Box было, гхм, весьма детским:) |
Цитата:
|
Deep_wolf, Там наглядно виден масштаб проблемы. Например, между Титан Х и PS 4 трехкратный разрыв по производительности. На одном Титане в полтора раза больше памяти, чем во всей приставке.
Ну и модули расширения для приставок - это далеко не то же самое, что комплектующие для компьютеров, что также наглядно продемонстрировал рынок: дополнительные устройства для приставок, увеличивающие производительность, ни разу не набирали популярность. Это происходило потому, что сильно менялась архитектура всей системы, из-за чего игры теряли совместимость с системами, которые теперь имели разные конфигурации. Рынок для игр сужался и все оказывались в проигрыше. На ПК для этого у игр есть ползунок качества, который позволяет в игру, ну, хотя бы поиграть. |
Не спорю, но ведь не графитом едины.
Консоли на то они и консоли, что имеют уникальные игры, ровно как и пк, начиная с текстовых квестов и заканчивая симуляторами всего на свете. |
Цитата:
При том, можно было так же качать игры с торрента и писать на диск) Вроде там двд диски были, если не ошибаюсь, так что большой сложности не было. |
Как правило эксзы консолей существуют не из-за мифического пиратства (те же солсы на пк продались лучше, и примеров масса), просто сони и майки платят для привлечения к своей консоли.
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Добавлено через 5 минут Цитата:
Цитата:
|
Цитата:
|
klop, согласен, в видяху HDMI кабель от тв и все - больше ничего не надо.
|
Цитата:
Все эти проблемы из разряда - плойку воткнул и не паришься, чушь собачья (пусть скажут это соневской гарнитуре, которая не работает с родным блютусом плойки, а имеет свой ресивер), если самоцель меньше делать, так легче может просто купить смарт телек, там вообще ничего подключать не нужно, прям на телек ставь игры да играй... |
Оптимизация для педиков, тарьте свои 980 и смотрите на мыло, зато в 60 фпс и фулл хд. Вот такой нынче некст ген.
Цитата:
Цитата:
|
klop, расскажи, что за технология, как без проводов играть на тв? я пока научился только фотки с компа гостям показывать и видео в ави демонстрировать.
|
Цитата:
|
[CCCP] Monster, тема хорошая, в плане объяснения технологий, а какой общий посыл?
|
Цитата:
Добавлено через 1 минуту Цитата:
|
Vint.92, я смотрел эту тему... просматриваю ежедневно. Один [плохое слово] поднял, только не понял к чему он клонил и, что этим хотел доказать.
|
Цитата:
ок, а как мне включить комп из гаража не вставая с дивана в гостинной? я совершенно серьезно, это было бы удобно, ну там киношки смотреть, а то я по старинке прожигаю диски и иду вставлять их в ДВД проигрыватель, от которого ресивер 7.1 бухает и бахает)) Цитата:
Цитата:
Если вопрос стоит, что купить выбирая между всем этим, то конечно компутер, а если финансовый вопрос отсутствует, то почему бы не купить все это и не устраивать срачи, что ПеКа это хардкор или консоли круче. |
Цитата:
|
кук, в том, чтобы объяснить, что происходит с играми на самом деле, почему они тормозят, как портируются с консолей на ПК и обратно.
|
Цитата:
|
[CCCP] Monster, тормозят, из за лени разработчиков оптимизировать. Мы имеем десяток поколений видео карт и я не могу вспомнить хита, для какой то определенной модели карточек. Тот же к примеру Масс эффект, первая и финальная часть имеют существенные отличия в сист. треб. на ПК, но не просят для третьей части новую консоль - почему, не возможно на пк играть в эти игры на одинаковых настройках- на 360м боксе можно, а тут нет?
|
Цитата:
Цитата:
|
klop, читал и слышал, что на моем тв LG есть такая возможность, но как и где взять необходимую прогу, не пойму и не найду.
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Цитата:
а так конечно, начинаю себя ощущать отсталым от того куда уходят возможности. Отец у меня как газету выписывал, так и выписывает, попытки научить его читать любую прессу через планшет, терпели полное фиаско. |
kassota, ууу, как все печально((( подтверждаешь мою теорию- деньги есть ума не надо... когда есть стабильный и большой достаток- мозг отключается, легче купить чем сделать ((((
Извини, правда. |
Цитата:
|
klop, там, все еще проще- теже браузеры в телефоне сами предлагают- --- скачать на флешку или в облако.
|
Цитата:
или зимой тратить время на уборку снега, когда есть опять таки специальный человек, который этим себе на хлеб зарабатывает и на минитракторе чистит все по всему поселку снег. Т.е. мне надо сейчас вникнуть в суть вопроса, как и чего установить, настроить, т.е потратить время дома на что то, что вроде как бы должно облегчить мне жизнь, сэкономив 5-10тыр, но при этом потратив на это 1 час времени? не, я лучше заплачу деньги мастеру и этот час с детьми поиграю или с ними посмотрю мультфильмы. klop, это от роутера надо кабель протащить к ТВ? или как там коннект происходит? вайфая в ТВ нет, а ради него телевизор менять не вижу смысла |
Цитата:
кстати по теме выше Цитата:
|
kassota, примерно, такой ответ и ждал от тебя. Но комп, же это не мусор и не снег... мусор воняет, после снега болит руки и спина... это, же просто. работа чисто головой- неужели ты вместо того, что бы сыну/дочери помочь с уроками считаешь- легче нанять гастарбайтеров? Бля я был лучшего мнения о тебе, ощущения как новый мобильник из коробки достал или приставку подключил, но ни как не говно черпать (((
Фраерок, но сливаешся ты в моих глазах, обидно. Всегда тебя поддерживал по политике во мнении. Добавлено через 1 минуту klop, там по ходу большая плазма - без смартов и прочего. |
Цитата:
я не могу научить или помочь лично кому то, если я не разбираюсь в этом, поэтому лучше всего обратиться к специалисту. klop, там ЖК Шарп 64 дюйма 10 летней свежести, картинка супер, но вот новомодных наворотов нет |
Цитата:
|
kassota, руки вверх. твое мнение, твой выбор. только опять же не корректно сравнил - в крайности идешь. Вижу любишь и кино и игры , и это не французский в котором 0, просто ленивый ты. Железо в компе тоже не сам меняешь?
Не против если тебя в пример, как потребителя консолей? Меня, жаба душит столько на игры тратить, при учете, что играю не часто- хотя люблю это дело. Скрытый текст: Добавлено через 1 минуту klop, плазма... хорошая штука, но и проблем с ней- сам знаешь. |
кук, а почему хиты должны быть для карточек? Видеокарта - это просто вичислительная система с набором технологий внутри, как и приставка. Просто приставка гарантированно не меняется, и ее надо покупать новую целиком, при этом у нее фиксированная архитектура, которая, кстати, довольно сильно отличается по способу использования от ПК. Поэтому для конкретных приставок выпускают игры специально (иначе эти приставки не продать). А видеокарта - это часть компьютера, там невозможно написать игру так, чтобы она работала только на конкретной модели видеокарт, потому что писать приходится через средства абстракции OpenGL и DirectX. Производители видеокарт делают так, что любое приложение, которое способно использовать эти средства абстракции, будет использовать мощности видеокарты, и как правило, связка видеокарта + драйвер + операционная система обеспечивают обратную совместимость, то есть старые технологии продолжают поддерживаться, поэтому там работает всё, что было ранее выпущено (конфликты бывают обычно из-за ОС, а не из-за видеокарт).
Что касается Масс-Эффекта, то во всех частях используется движок UE3 или UE3.5, поэтому минимальные системные требования во всех частях одинаковы, требуется только наличие SM3.0 и 256 МБ видеопамяти на борту (что полностью соответствует железу на PS3, например). Максимальные различаются. Это связано с наличием динамических теней от локальных источников света (очень заметно на крупных планах) и новой технологии SSAO, которая доступна в UE3.5, но по понятным причинам не доступна на PS3. В целом же аргумент про "недостаточную оптимизацию" здесь применим не может быть в принципе, потому что рендер у всех частей от UE3 / UE3.5 и его ядро никак не изменялось от версии к версии, менялся только контент, которого стало больше, и настройки, которые добавили больше динамических теней. |
Цитата:
Тех, терминов не нужно - ты отлично все в шапке разобрал - тут вопрос чисто по логике. Добавлено через 16 минут [CCCP] Monster, вообще я больше люблю пк, тут дело- как, сказал kassotaи правильно сказал, дело интимного характера, комп это сугубо личное, там все и игры и видео и фото и порно в конце концов... просто реально иногда устаю менять железо в то время как пользователи приставок меняют только диски, можно конечно менять видяхи сразу на топовые, но тогда зачем выпускать бюджетные? рядовому пользователю от них разницы ни какой, а покупать каждое поколение 480х , 580, 680, 780, .... ну правда, сколько можно? |
Цитата:
когда Херстоун появился, я честно все туториалы 2 раза прошел, с компьютером играл много раз, но я не понимал механику игры. Как только мне показал человек как в нее играть, то я понял это за 20-30 минут. Цитата:
в декабре 15 года просто заказал сборку всех частей, приехал и забрал))) Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
кук, ну тогда возникает вопрос: ты пытаешься играть на минималках, и видеокарта не справляется? Или каким образом ты принимаешь решение об апгрейде?
Полагаю, тут разумной будет стратегия раз в 4 года покупать себе топовую видеокарту, потому как она служит достаточно долго (моя 580 GTX служила с 2010 года по 2015, и позволяла почти везде ставить максимальные настройки графики). |
[CCCP] Monster, ну, моя прошлая покупка была ошибкой - это была 750gtx. Толком радости она мне не принесла. Для меня на первом месте это родное разрешение все остальное не так важно - с переходом на новую карту получил кучу проблем.
Твоя идея о топовой карте мне нравится, но признаюсь честно - если необходимая сумма есть на руках, чисто на карту тратить не рискну, других расходов хватает... НО !! вспоминаю первый Фар край который идеально шел на слабой карте, но без красот джунглей и попугаев, почему сейчас так нельзя делать? Что, бы ровно, стабильно, но без красот? Того же Ведьмака 3 я на старой карте ровно и комфортно так и не смог запустить. |
кук, хм, технически, я думаю, откладывать 1000р ежемесячно на апгрейд - это не сложно. Однако потом, когда приходит время, трудно принять решение все эти 60к взять и потратить на память и видеокарту. Ну да, это в общем-то проблема.
Я полагаю, что в случае с недостаточно плавным фреймрейтом речь идет о так называемом статтеринге (stuttering - заикание/запинка) - ситуации, когда несколько секунд игра работает нормально, а потом будто спотыкается - время отрисовки одного из кадров оказывается аномально большим. Причин может быть много, причем не все из них устранимы, но можно попробовать ряд способов: 1. Самая частая причина тут - недостаток видеопамяти для хранения текстур, так что можно понизить их качество. 2. Поменять драйвера на какую-то другую версию. Создатели дров в основном ориентируются на текущую ситуацию в индустрии, чтобы игроки могли поиграть в новые тайтлы прямо сейчас, поэтому подкручивают настройки свежих дров так, чтобы они лучше всего работали с теми играми, что сейчас вышли или только собираются выйти. Понятно, что если игре уже пару лет, то настройки могут не совпадать. 3. Дальность отрисовки объектов. Этот параметр влияет на уровень детализации объектов в зависимости от расстояния и может снизить количество полигонов на экране и необходимость подгрузки сложной геометрии с жесткого диска, если речь идет об играх с открытым миром вроде ГТА, например. Если все просто тормозит, то нужно убирать эффекты, зависимые от разрешения экрана - это те самые HBAO/SSAO, постпроцессинг (всякий хитрый туман, лучи света от солнца и т.п.), MSAA/FSAA, фильтрацию. |
Цитата:
Цитата:
|
a1exios, не знаю как у вас принято, но кому нужно старое железо... кто понимает не купит не актуальное, не понимающие предпочитают новое, а не б.у.
Добавлено через 13 минут Цитата:
Буду рад если на примере какой то игры с большим количеством настроек расскажешь, что за, что отвечает - какие настройки зависят от видеокарты, какие от оперативной памяти, какие от цп. Я уверен это будет интересно не только мне- свое мнение и знание в этом конечно имею, но ты вижу в этом хорошо разбираешься, а полезный совет мне не повредит. |
a1exios, нет. Дальность отрисовки определяет расстояние, на котором ты будешь видеть нужный уровень детализации объектов. Почти все объекты обычно представлены несколькими моделями, от сложных и детальных, к очень простым (в самом простом варианте машинка может быть представлена просто параллелепипедом).
Это все называется level of detail, или LOD. Обычно разработчики записывают как можно больше вершин, представляющих каждую модель в игре, в один очень большой массив, потому что перестановка массивов съедает время. И потом, когда они хотят нарисовать на экране какой-то объект, они просто указывают место, где он находится в этом массиве. То есть нет разницы, на какой кусок массива ты укажешь: на тот, который представляет самую подробную модель с LOD0 или на тот, который представляет кубик с LOD5 например - это одинаково для процессора. А вот для видеокарты не одинаково, потому что во всех этих моделях разное число полигонов и им надо разное количество работы делать. |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
lYXl, это если программист глупый, и не знает, что такое инстансинг, и уж тем более, что такое indirect drawing.
Если же он все-таки знает, то в среднем может уложиться в 1000 вызовов на кадр (даже с gui и прочим хозяйством). |
Цитата:
|
афтар хорошо подкован в тех. плане, но а разного рода выводы о индустрии в целом довольно наивные. или мбыть это пропа и личный бложик?)
Цитата:
Цитата:
надеюсь объяснять не придется, хотя я и не собирался. чутка набросал, чтобы не скатываться в " я несогласен и точка". зы: честно, вот хочется качества и шлифовки того что есть, а не гонка за графоном. да и времени на идеи и интересные концепции при разработке соответственно будет больше. получается что прошлое поколение следовало бы еще продлить на пяток лет, раз такие криворукие макаки. человек(разраб) несправляется, а система ждать не может. |
Цитата:
Всё бы хорошо, но как бы есть тени, тонны шейдеров, источников освещения, которые при deferred-подходе очень плохо дружат с прозрачными поверхностями и нужно комбинировать методы, что имеет свои издержки. Поэтому глупый или не очень, а без качественного планирования сцены в проработанных 3D проектах Draw Calls очень критичны, в той же серии ArmA это лютый бич, где шкалит за 10 000 в некоторых ракурсах, ну а в Crysis 1-2 непрочь перескочить за 4000. Так же это особенно критично на мобилках, которые вешаются уже от 300, а то и меньше. В итоге получаем, что основная война за производительность как раз разворачивается на вызовах отрисовки. |
lYXl, окей, давай посчитаем: в случае обычного инстансинга у нас получается количество drawCalls как количество уникальных объектов * количество лодов для каждого из двух типов возможных объектов в deferred shading (непрозрачных и прозрачных), для каждого рендер-таргета (в том числе тени и прочее), это умножить еще где-то на 4-8. Причем прозрачные и непрозрачные ты даже в forward-rendering все равно сортируешь, потому что, например, растения имеют попиксельную прозрачность, что заставляет перейти с Early-Z на Late-Z, и обратный переход, если ты вызовешь после листвы рендеринг чего-то непрозрачного, это вызовет GPU-stall пока все Late-Z процессы дальше по конвейеру не завершатся.
Но у нас количество самих объектов (например, деревьев), обычно сильно больше, чем всех этих draw-calls вместе взятых, и их надо отсечь из области видимости, поэтому самым тяжелым тут являются не вызовы отрисовки, а отсечение, и именно они делают большинство игр CPU-Bound. В таких случаях каллинг выводят на GPU, и поскольку данные уже оказываются там, использование indirect-вызовов как-то само собой подразумевается. А индиректы хороши тем, что минимизируют необходимый размер стейта для передачи в драйвер, и соответственно, занимают меньше времени. Единственный оставшийся случай, когда сам по себе draw-call является очень медленным и потому приложение упирается в CPU, это когда у тебя DX9/XNA. Там да, даже с инстансингом все будет плохо. |
Было бы интересно мнение по DX12 и Metal API. Или с выходом Vulkan они уже никому не будут нужны, кроме их же разработчиков? Что-нибудь удалось опробовать лично из перечисленных API?
|
Если кто не видел: https://vc.ru/p/unity-pics
Статья про то, как происходит отрисовка кадра на примере Unity. |
Цитата:
|
Может немного не в тему, но недавно с удивлением обнаружил, что просадки fps были нормой и на 6-м поколении консолей (XBOX, PS2, GamuCube), хотя раньше как-то не обращал на это внимание. Особенно сильно в глаза бросились тормоза в первом KotOR на XBOX'е. Хотя тот же Doom 3 на нём (в принципе, как и Doom 3: Resurrection of Evil) идет очень даже неплохо. А Far Cry: Instincts - просто шикарно. Все-таки что ни говори - железо железом, а ровные руки у программистов решают.
|
Zasranec, на Деньди так же есть пачка игр с плохой оптимизацией, как например Contra force или Panic restoration и еще других. Так, что да, кривые руки всегда встречались.
|
Часовой пояс GMT +4, время: 02:34. |
Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.