F1 2015 – самая свежая игра из серии Formula One. Она выпущена компанией Codemasters, в её основе – специальная версия их игрового движка EGO. Игра была создана практически полностью с нуля, новый движок значительно улучшил и качество картинки, и возможности искусственного интеллекта.

EGO – первая разработка Codemasters, нацеленная на восьмое поколение игровых консолей (PS4 и Xbox One) и на платформу PC. Архитектура нового движка была спроектирована из расчёта на работу с многоядерными процессорами, которые используются в вышеупомянутых консолях. Кроме того, компания стремилась создать масштабируемую платформу, которая позволила бы эффективно задействовать ресурсы современных компьютеров.



В ноябре 2015 года вышел пакет исправлений, который добавил в EGO обновлённую звуковую подсистему и более качественную поддержку системы частиц, в обработке которых задействован микропроцессор. В результате игра оказалась способна использовать возможности лучших игровых компьютеров на полную мощность.

В этом материале мы расскажем о том, как в Codemasters совершенствовали свой игровой движок, и о том, чего им удалось добиться.


F1 2015

Адаптация к аппаратному обеспечению PC


Современные микропроцессоры для компьютеров – это, в первом приближении, широкий спектр тактовых частот и разное количество ядер. Одна из составляющих успеха игры – возможность адаптироваться к различным аппаратным характеристикам систем.

Игры, разработанные в те времена, когда в компьютерах обычно использовались процессоры с одним или двумя ядрами, проектировались в расчёте на доступность им ограниченного числа потоков. То же самое касалось и игр для ранних поколений игровых консолей.

Основные потоки были выделены для выполнения рендеринга и расчётов, связанных с игровой логикой. Для решения более мелких задач использовали оставшиеся системные ресурсы. На PC, при таком подходе к проектированию, предпочтение оказывали процессорам с очень высокой однопоточной производительностью.

В наши дни всё изменилось. Так, консоли восьмого поколения, и PS4, и Xbox One, теперь оснащают процессорами с восемью ядрами. Каждое из них – это высокоэффективный вычислительный блок, обладающий сравнительно низкой производительностью. Игра задействует шесть-семь таких ядер. То, что осталось, предназначено для операционной системы.

С современными компьютерами – та же история. В них устанавливают процессоры с числом ядер от двух до восьми. При этом, если ядро, с помощью технологии наподобие Intel Hyper-Threading (Intel HT), поддерживает технологию одновременной многопоточности, оно выглядит для ОС как два логических процессора.

Болид RedBull 2016 года

Это означает, что PC-игра может задействовать до 16 логических процессоров, часть ресурсов которых достаётся и операционной системе. Поэтому старый подход не применим к новому аппаратному обеспечению, и, если код для консолей можно оптимизировать в расчёте на конкретную конфигурацию, то играм для компьютеров нужно уметь адаптироваться к имеющимся ресурсам.

Первые испытания на PC


Когда близилась дата выпуска игры, 10 июля 2015 года, стало ясно, что новый движок эффективно использует многоядерные процессоры, и то, что показатели его производительности серьёзно отличаются от ранних версий F1, которые были спроектированы для предыдущего поколения консолей. Вот как выглядит сравнение рабочих нагрузок на CPU и GPU для F1 2014 (слева), и F1 2015 (справа), которые запущены с максимальными настройками качества и ничем не ограниченной частотой кадров.


Анализ F1 2014 (слева) и F1 2015 (справа) в GPUView

Изображения сделаны с использованием Microsoft GPUView (этот инструмент включён в Windows Performance Toolkit, как часть Windows Platform SDK). Здесь показано, насколько хорошо распределяется работа между процессором и видеоядром. GPUView, кроме того, можно использовать для поиска проблем с синхронизацией и недостаточной загрузкой видеокарты. Это можно видеть в верхней части изображения, ниже она показана в увеличенном виде.


Нагрузка на GPU в F1 2014 и F1 2015

Разрывы фиолетовой линии в верхней левой части изображения указывают на перерывы в работе GPU в F1 2014. Это означает, что видеокарта простаивает и ничего полезного не делает. При этом производительность F1 2014, на исследованных высокопроизводительных системах, не упирается в возможности GPU. На разрешении в 1080p игра была ограничена лишь производительностью процессора.


Болид Ferrari 2016 года

Соответствующая линия справа (синяя) разрывов не содержит. Это означает, что в F1 2015 GPU всё время нагружен. На рисунке, показывающем полную картину нагрузки системы, линии ниже жёлтого разделителя показывают загрузку потоков процессора. В F1 2014 (слева) один поток почти постоянно загружен, он ограничивает производительность. Взглянем ближе на эту часть изображения.


Распределение нагрузки на потоки

Разные цвета, использованные для раскраски полосок, представляют логические процессоры системы. Изменение цвета потока означает, что он периодически исполняется на разных логических процессорах в пределах одного кадра.

Ещё один поток, нагруженный вычислениями, можно видеть в нижней части левого изображения, относящегося к F1 2014. Этот поток занимается обработкой команд графического драйвера. В то же время, на изображении справа (для F1 2015) у всех потоков имеется некоторое время простоя, то есть заметной зависимости между потоками не наблюдается.

Если совместить анализ CPU и GPU, можно заметить, что F1 2014 была ограничена критическим путём через движок, который готовит данные для графического API, нагружая один поток. Таким образом, F1 2014 представляет собой классический пример применения движка, спроектированного для работы на игровых консолях предыдущих поколений, когда нагрузка оптимизирована для хорошей работы на быстрых двухъядерных процессорах, с некоторыми улучшениями при переходе к четырёхъядерным. Но добавление большего количества ядер не даёт ощутимых преимуществ, так как ограничивающий фактор – это единственный главный поток рендеринга.

Новый движок, с другой стороны, значительно снижает чрезмерную нагрузку на процессор, связанную с подготовкой данных для видеокарты, полностью используя преимущества технологии Intel HT и равномерно распределяя нагрузку между логическими процессорами.


Анализ F1 2015 в GPUView при 60 FPS

Программисты компании быстро обнаружили, что компьютеры значительно быстрее консолей, для которых они выполняли большую часть оптимизаций. Достижение обычной скорости обработки кадров в 60 FPS (на вычисления отводится 16 мс.) на консолях потребовало немалых усилий. А при испытаниях на 4-м поколении процессоров Intel Core (например, Intel Core i5-4670), оказалось, что процессор выполнял всю необходимую работу за меньшее время, чем требуется для создания кадра. Во многих случаях – быстрее, чем за 10 мс.

На вышеприведённом рисунке показан анализ игры в GPUView при ограничении скорости обновления экрана, установленном на 60 Гц. Более быстрые процессоры, например, такие как Intel Core i7-6900K 6-го поколения, делают дисбаланс ещё заметнее.

Вот, как выглядит анализ игры при разблокированной частоте кадров в системе с установленным процессором Intel Core i7-5960x 5-го поколения и видеокартой NVIDIA GTX980.


Игра с разблокированной частотой кадров, запущенная на Intel Core i7-5960x c 8 ядрами (16 потоков) в GPUView

В сравнении с четырёхъядерным процессором (самый первый рисунок, на котором сопоставлены F1 2014 и 2015), в системе, основанной на Intel Core i7-5960x с 16 логическими процессорами, CPU простаивает немалую часть времени, необходимую для подготовки кадра.
Всё это значит, что новый движок выигрывает не только от увеличения однопоточной производительности, но, что самое главное, способен извлечь пользу из дополнительных ядер процессора.

Результат показывает, что Intel Core i7-5960x с шестью задействованными ядрами, может обойти четырехъядерный i7-6700k, тактовая частота которого выше.

Эти первоначальные испытания, которые показали, что GPU уже был полностью загружен, изменили приоритеты оптимизации на PC. Улучшения, касающиеся видеокарты, продолжились, но вместо того, чтобы тратить ресурсы разработчиков на оптимизацию подсистемы рендеринга на CPU (такую, например, как передача части работы видеоядру), студия начала исследовать другие способы оптимизации использования процессора для улучшения впечатления пользователей от игры и повышения её реалистичности.

Улучшение реалистичности


Перед разработчиками стояла сложная и интересная задача. Она заключалась в том, чтобы улучшить реалистичность игры, сделать её привлекательнее, не затрагивая игровой процесс (из-за требований к сетевому многопользовательскому режиму) и без добавления значительно большего количества работы со стороны GPU. В связи с этим от изменений искусственного интеллекта и повышения точности игровой физики сразу же отказались, так как подобные улучшения должны быть достижимы на аппаратном обеспечении любого PC, соответствующего минимальным требованиям игры. Нужно это для того, чтобы не поставить в неравное положение игроков, использующих разные компьютеры в многопользовательском режиме.


Болид Mercedes-Benz F1 W07 Hybrid, представлен в 2016 году

Даже в однопользовательском режиме любые изменения в поведении автомобилей могут быть непростыми, так как требуют весьма тщательной повторной балансировки системы управления машинами. Вместо этого в Codemasters сосредоточились на двух направлениях повышения реалистичности. В частности, это улучшения в области озвучивания игры с использованием обновлённой звуковой подсистемы и увеличение количества динамических визуальных элементов оформления благодаря обновлённой системе частиц. Эти подсистемы были выбраны из-за того, что они уже основаны на CPU и ранее были ограничены возможностями консолей. Архитектура PC дала разработчикам возможность для улучшения эффекта погружения с использованием методик, от которых изначально пришлось отказаться из-за аппаратных ограничений.

Озвучивание игры


Улучшение игрового звука стало первым направлением оптимизации. Этот подход, с одной стороны, поддаётся масштабированию в зависимости от имеющегося аппаратного обеспечения, с другой, позволяет улучшить впечатления от игры, не затрагивая при этом игровой процесс.
Поддержка звука в F1 2015 реализована с помощью промежуточной подсистемы, которая создаёт собственный поток для микширования звука средствами процессора.

Ранее в Codemasters обнаружили, что, если данный поток окажется перегруженным, или его выполнение будет отложено, это выльется в заметные перебои со звуком. Для предотвращения перебоев на консолях, «звуковому» потоку выделили отдельное ядро. Это позволило гарантировать бесперебойную обработку звука.

На компьютере для звуковой подсистемы выделен собственный логический процессор. Другие игровые задачи используют оставшиеся ресурсы. На консолях для подобных потоков используется привязка к процессорному ядру, а на компьютерах применяется команда SetThreadIdealProcessor(), что помогает операционной системе в деле назначения приоритетов.

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

При наличии значительно более мощного процессора, с потенциально большим количеством процессорных ядер, для обработки задач микширования, операционная система вряд ли попытается запланировать выполнение неких дополнительных задач на логическом процессоре, назначенном потоку обработки звука. Соответственно, оказалось возможным добавить в PC-версию игры поддержку высококачественного звука. А именно, речь идёт о следующих улучшениях.

  • Увеличение числа автомобилей, вносящих вклад в звуковую картину, складывающуюся вокруг игрока. А именно, с 6 (5 автомобилей, которые контролирует искусственный интеллект и одна машина игрока) до 11 (соответственно, 10 противников и один игрок).

  • Удаление некоторых ограничений на число объектов, в результате больше источников звука воспроизводится при переходе от одного объекта к другому, что позволяет избежать внезапных «обрывов» звука.

  • Замена некоторых эффектов реверберации из используемой подсистемы обработки звука на более совершенные. Использование более сложных алгоритмов, обработка большего количества отражений звуков. Использование заранее созданных файлов импульсов для достоверной симуляции различных окружающих условий. Например, это проезд около трибун, движение по мостам, туннелям. Кроме того, в звуковую картину вносят вклад и барьеры вокруг трассы, и проезжающие мимо автомобили.

Система частиц и симуляция погодных условий


Ещё одним улучшением игры стала обновлённая система частиц. Прежняя версия этой системы была ограничена доступными ресурсами CPU и GPU игровых консолей. Визуальная составляющая строилась исходя из этих ограничений. Система частиц уже была основана на CPU. Вот, что рассказывает об этом программист графики из Codemasters Эндрю Райт.

«Мы предположили (и, надо сказать, правильно), что будем сильнее ограничены ресурсами GPU, нежели CPU, поэтому к разработке системы частиц всегда подходили с точки зрения её эффективной параллельной обработки на CPU.»

Это означает, что команда программистов начала работу с улучшения системы, которую можно масштабировать в зависимости от количества доступных ресурсов процессора. Более того, они могли это сделать так, чтобы улучшения, в то же время, не обязательно привели к увеличению нагрузки на видеоядро. У того, что поддержка системы частиц возложена на процессор, есть и другие преимущества, о которых рассказал Эндрю:
«Система, базирующаяся на CPU, отличается большой гибкостью. Она занимается обработкой столкновений с трассой для отдельных типов частиц, специально на это рассчитанных – в основном чего-то вроде гравия и травы. Это работает и для частиц, которые не видны, то есть, быстрое перемещение камеры покажет ранее невидные частицы в некоей промежуточной фазе движения. Столкновения могут вызывать звуковые эффекты. Эта часть работы очень сложно реализуется на GPU.»

Первой часть задачи было увеличение числа создаваемых частиц с небольшими и почти незаметными изменениями их графического оформления. В частности, размер частиц был уменьшен, а их плотность на единицу пространства возросла. Эти изменения дают тот же видимый эффект на некотором расстоянии, но вблизи картина становится гораздо более детализированной. Это было сделано для различных эффектов, создаваемых при взаимодействии шин автомобиля с дорогой (и на асфальтированной трассе, и за её пределами). Вот, как это выглядит.


Улучшенный эффект на гравии за пределами трассы

Похожим образом был улучшен эффект дымящихся шин. Здесь частицы сравнительно крупных размеров были заменены на гораздо более мелкие, что позволило лучше передать форму облака дыма. Это позволило улучшить объёмное освещение, используемое для дыма, так как более мелкие частицы дают возможность лучшего математического представления того, как свет проходит через задымлённое пространство. Вот, как это выглядит.


Улучшенное представление дымящихся шин

Хотя вышеописанные улучшения системы частиц весьма существенны, они видны лишь в короткие периоды, например, когда игрок или искусственный интеллект теряют контроль над автомобилем и он вылетает с трассы.

Разработчики быстро поняли, что обновлённую систему частиц можно было бы использовать для значительного улучшения симуляции погодных условий, а именно – дождя. Погода не зависит от умения игрока держать трассу, поэтому улучшенные визуальные эффекты можно будет наблюдать не только в особые моменты игры.

Одно из основных улучшений игры, на которое Codemasters делает особый упор в рекламных материалах – это усовершенствование управление автомобилями. В частности, значительно улучшено поведение машин на мокром дорожном покрытии. Езда во время дождя – это важная часть реальных гонок Formula 1. Многие трассы известны экстремальными погодными условиями, которые оказывают влияние на гонку. В таблице показана вероятность выпадения осадков во время гонки в режимах игры Champion и Pro. В среднем, при проведении 34% игровых гонок идёт дождь, по меньшей мене, некоторую часть гонки длительностью до четырёх часов.

Шанс выпадения осадков
Австралия (Мельбурн)
Малайзия (Куала-Лумпур)
Бахрейн (Сахир)
Китай (Шанхай)
Испания (Каталония)
Монако (Монте-Карло)
Канада (Монреаль)
Япония (Судзука)
Россия (Сочи)
США (Остин)
26.00%
55.00%
0.00%
48.00%
36.00%
38.00%
53.00%
33.00%
34.00%
24.00%
Австрия (Red Bull Ring)
Великобритания (Сильверстоун)
Германия (Хоккенхайм)
Венгрия (Будапешт)
Бельгия (Спа-Франкоршам)
Италия (Монца)
Сингапур
Бразилия (Сан-Паулу)
Абу-Даби (Яс Марина)
Мексика
43.00%
31.00%
37.00%
39.00%
47.00%
26.00%
39.00%
40.00%
3.00%
28.00%

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

Болид MP4-31 Макларен 2016 года

На нижеприведённых рисунках можно видеть отладочные изображения, показывающие поведение мелких брызг воды от колёс автомобиля и их взаимодействие с воздухом, который проходит по обшивке. Получаемый эффект заключается в создании спиралевидных завихрений, исходящих от задней части машины.


Отладочное изображение завихрений, показывающее движение водяных брызг


Отладочное изображение завихрений, вид сзади

Использование более мелких частиц, кроме того, означает, что существующая модель освещения работает с каплями воды гораздо лучше. Свет от источников освещения, например, от некоторых частей автомобилей, может быть смоделирован гораздо более точно на мелких частицах, нежели на крупных, представляющих большие объёмы капель. На рисунке ниже показано освещение следов из водяных брызг.


Улучшение освещения

Ещё одна область, в которой были проведены улучшения – это взаимодействие автомобиля с водой, находящейся на поверхности дороги. Это и водяные вихри позади машины, которые захватывают воду с земли, и брызги от колёс на дороге, залитой дождём. Всё это позволяет улучшить визуальную связь автомобиля с дорогой, достичь того же эффекта, который достигается благодаря теням в солнечный день.

Вот, как выглядит езда по мокрой дороге до и после улучшений.


Взаимодействие с водой на дороге

А вот капли воды, образующие след позади проезжающей машины в игре (слева) и при отладке в Intel INDE Graphics Performance Analyzer for DirectX.


След из капель воды

Последним усовершенствованием стала улучшенная симуляция дождя. Изначально в игре применялся простой алгоритм, использующий ресурсы видеокарты, который выводил несколько тысяч частиц дождя в каждом кадре, применяя к каждой капле силу тяжести, что заставляло их падать. В новой симуляции дождя большая часть обновлённой подсистемы переместилась на процессор, что позволило наладить её взаимодействие с данными о воздушных потоках, используемые в других частях игры. Число капель дождя было увеличено в десять раз, а отдельные капли уменьшены для того, чтобы пиксельное покрытие было примерно таким же. На рисунке ниже показаны отладочные изображения дождя, полученные с одной и той же позиции. На нижнем изображении – 217 тысяч капель, на верхнем, представляющем предыдущую версию игры, лишь 21 тысяча. Несмотря на возросшее число примитивов, реальное число пикселей, на которые подействовало улучшение, увеличилось незначительно – с 72 тысяч до 119.


Отладка симуляции дождя

Увеличивая количество капель дождя и водяной пыли, разработчики настроили прозрачность, используемую в системе частиц для того, чтобы итоговый эффект затуманивания, заметный на расстоянии, получился таким же, каким был раньше. Это нужно для того, чтобы графические настройки не поменяли игровой процесс.

Балансировка нагрузки на CPU в новых условиях


Обычно ограничивающим фактором в производительности PC для F1 2015 была видеокарта. Нагрузка была особенно велика на недорогих устройствах. Самой важной частью разработки и внедрения новых эффектов было обеспечение того, чтобы дополнительные частицы не увеличивали нагрузку на GPU. Вторым важным фактором, касающимся вычислительных ресурсов, было достижение хорошего распределения вычислений, выполняющихся на процессоре. Нужна была правильная балансировка нагрузки между доступными ресурсами CPU, при этом нельзя было допустить роста нагрузки в последовательности операций движка, ответственных за рендеринг.

Контроль над нагрузкой на GPU достигнут благодаря двум подходам.

Первый заключается в том, что обработка вершин была перемещена из вершинного шейдера на CPU. Это уменьшило объём работы, выполняемый над вершинами на видеокарте. Такой подход не привёл к полному снятию нагрузки с видеоядра, но её удалось снизить вдвое. Таким образом, обработка в десять раз большего количества частиц означала пятикратный рост затрат на проведение операций с вершинами.

Второе значительное изменение состояло в снижении затрат на скорость заполнения кадра, например, при рендеринге дождя. Количество капель увеличилось в десять раз, но число пикселей, которые это затронуло, выросло лишь в 1,65 раза. В случае с завихрениями из водяной пыли, которые остаются позади машины, изменения оказались ещё более существенными. Так, увеличение числа вершин с 3 тысяч до 70, на самом деле, привело к уменьшению числа обрабатываемых пикселей с 5800 тысяч до 2500 тысяч, то есть – скорость заполнения пикселей, необходимая для реализации этого эффекта снизилась вдвое. В результате, эффект, для создания которого используется в 20 раз больше частиц, не потребовал серьёзного роста нагрузки на видеокарту при выводе изображения.

Балансировка нагрузки на CPU была выполнена благодаря распределению вычислений, связанных с частицами, между как можно большим числом доступных логических процессоров. На рисунке ниже показано распределение нагрузки на системах с четырьмя и шестью ядрами (и в первом и во втором случаях со включённой технологией Intel HT). Фиолетовые и красные блоки показывают системы обработки частиц и симуляции погодных условий во время очень сильного дождя на шестиядерном процессоре (12 логических процессоров). На таком процессоре расчётами для системы частиц занимаются 6 из 12 процессоров. На четырёхъядерном, соответственно, задействовано пять из восьми, но их ресурсы приходится делить с другими задачами в движке.


Балансировка нагрузки на CPU для 6-ядерной системы (слева) и 4-х ядерной (справа)

Игровой движок, задействованный в F1 2015, использует систему, основанную на задачах для распределения нагрузки. При этом есть предварительные установки для 2, 4, 8, 12 и 16 логических процессоров. Система пытается планировать задачи так, чтобы уменьшить любые зависимости и не перегрузить один из процессоров.

Как изменился внешний вид игры


На рисунке ниже показано сравнение исходной (слева) и значительно улучшенной (справа) системы частиц. Обратите внимание на то, что водяная пыль во втором случае более чётко привязана к тому автомобилю, который поднимает её в воздух.


Водяные вихри, которые вызывают автомобили

Улучшения в обработке брызг, которые машины поднимают с дороги, теряя сцепление с ней, показаны на рисунке ниже. При этом отдельные капли заметны на фоне логотипа F1 2015 на высоких настройках качества. Кроме того, можно видеть улучшения во взаимодействии шин с трассой.


Занос

Масштабирование производительности


В F1 2015 имеется встроенный тест производительности, который использует текущие параметры графики и может быть настроен для запуска в различных погодных условиях. На рисунке показаны данные, полученные при выполнении встроенного теста в системе с Intel Core i7-5960x, с частотой, зафиксированной на 3.0 ГГц (это его базовая частота), и видеокартой NVIDIA TitanX. Там же можно видеть список использованных настроек. Показанные здесь данные – это среднее число кадров в секунду, полученное после полного выполнения теста.


Масштабирование производительности на многоядерных системах

Количеств физических ядер процессора настраивалось через BIOS. Остальные параметры системы оставались неизменными. Тесты проводились и со включенной технологией Intel HT, и без неё.


Настройки теста

На системе, в которой были включены всего 2 ядра, при выключенной технологии Intel HT, игра не запускалась, так как такая конфигурация не соответствует минимальным системным требованиям. В целом, при прочих равных условиях, включение Intel HT увеличивало производительность примерно так же, как при подключении двух дополнительных ядер. А сравнение производительности в конфигурации с двумя ядрами и включённой Intel HT, и в конфигурации с Intel HT и четырьмя ядрами, дало увеличение частоты кадров на 79%. Переход к 6-ядерной конфигурации добавил ещё 17%. Использование же 8-ядерной конфигурации при включенной Intel HT дало увеличение производительности на 27% в сравнении с 4-ядерной конфигурацией и Intel HT. Тут нужно учитывать то, что полученные результаты нельзя рассматривать как некие абсолютные значения. Мы можем лишь утверждать, что они отражают результаты тестирования на конкретной системе.

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

Во всех тестах игре был доступен большой кэш размером 20 Мб, даже в сценариях с уменьшенным количеством работающих ядер. Полученные значения производительности нельзя автоматически распространить на системы с 4-ядерными процессорами той же архитектуры. Всё дело в другой тактовой частоте и в другом размере кэша. Фактически, большой размер кэша Intel Core i7-5960x позволяет игре показывать на нём лучшую производительность, нежели на процессоре с 4-мя ядрами, с похожей тактовой частотой, но с меньшим размером кэша.

Выводы


F1 2015 – передовой игровой проект, демонстрирующий то, как можно воспользоваться возможностями современных процессоров для улучшения звукового и графического оформления. Перераспределение нагрузки между CPU и GPU способно сделать игру привлекательнее без необходимости использования более мощной видеокарты. Благодаря наличию системы частиц, расчёты для которой проводятся на процессоре, в Codemasters смогли улучшить качество изображения F1 2015. Параллельно было усовершенствовано управление автомобилями, особенно – при плохой погоде. Было налажено моделирование визуальных эффектов с использованием игровой физики.

Позволив игровому движку полностью использовать возможности технологии Intel HT и всех доступных процессорных ядер, в Codemasters смогли достичь значительного повышения производительности игровых подсистем. Это позволило добиться быстрой работы игры даже с использованием сложного графического оформления.
Поделиться с друзьями
-->

Комментарии (46)


  1. gionet
    10.05.2016 16:57
    +15

    Ну как это, кликаешь с мыслью видео посмотреть, а там в статье одни картинки… Эх


    1. kalbas
      10.05.2016 17:42
      +15

      И те мелкие.


      1. profesor08
        10.05.2016 18:24
        +1

        Статья начинается с ссылки, где есть видео — www.formula1-game.com/us/home


    1. NikitosZs
      10.05.2016 18:24
      +4

      Притом реально крохотные.


      1. AngReload
        11.05.2016 00:06
        +1

        Картинки из статьи в качестве (прошу простить ссылку на обменник):
        s000.tinyupload.com/index.php?file_id=00340873368228650862

        CooperMaster, прошу улучить графику в статье.


  1. dmitryredkin
    10.05.2016 18:21
    +3

    Ну да, ну да, крутая картинка, а фанаты до сих пор продолжают резаться в GP4 более чем десятилетней давности…


    1. Vln
      11.05.2016 00:06

      какого года игра?


      1. franzose
        11.05.2016 01:20

        Grand Prix 4 — '01 или '02.


  1. Shished
    10.05.2016 18:24
    +5

    А почему эту статью написали только сейчас? Игра вышла в июле 2015 года.
    Почему у нее такой низкий рейтинг в Стиме — 39% за все время и 53% за месяц?
    Почему не написали, что Feral Interactive портируют ее на Linux?


    1. olegchir
      11.05.2016 00:17
      +2

      Насчет рейтинга…

      Там отличная графика, нопосредственная физика и всё остальное.
      Куча багов, пустой мультиплеер, странные боты — в чем-то отличные и в чем-то кошмарно убогие, трешовый UI.
      Не знаю что конкретно, но что-то создает стойкий запах консольного порта.

      Мне кажется, для сима нужно втачиваться в первую очередь не в графон, а в контент и геймплей.
      У игры должно быть во что играть. Не во что играть — хоть зарисуйся красивыми картинками!
      Тем более что у конкурентов-то красивые картинки и пошибче будут — см Project Cars.

      C дргугой стороны у iRacing графон дно.
      И физика у iRacing не идеальная — например, на сцеплении никуда не уедешь.
      Но юзают его не за это.

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


      1. playermet
        12.05.2016 12:45

        Еще Live for Speed можно вспомнить. Графика еще хуже чем в iRacing, но лично мне даже просто бесцельно ездить кругами приятно, не говоря уже о гонках. Очень продвинутая физическая модель относительно большинства автосимуляторов.
        Весь проект при этом создан командой из всего трех человек.


  1. ZOXEXIVO
    10.05.2016 18:38
    +1

    Отличная статья! Захотелось почитать что-то подобное, но не про Formula 1


    1. jukryt
      11.05.2016 11:30
      +1

      1. ZOXEXIVO
        11.05.2016 14:19

        Спасибо, но мне интересна CPU-зависимая часть. Т.е как дробят движок и логику, если ядер много и все они слабые, тем более что со сдвоенными FPU-блоками.


  1. ainu
    10.05.2016 19:25
    +1

    А вот видео-трейлер https://www.youtube.com/watch?v=gtA9ofdY-wI


  1. dmitry_ch
    10.05.2016 19:35
    +2

    «Перед разработчиками стояла задача сделать более красиво и более привлекательно, ничего не сломав и не изменив»

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

    А судя по приведенному ролику, моменты, где машина будто в воздухе висит на асфальтом, так и остались. Будь послабее качество картинки, никто бы даже не сказал слова, а тут уже хочется «как в жизни» (не эту ли задачу ставило руководство разработкой?) — а так не получается. Этакий «эффект зловещей долины» (https://ru.wikipedia.org/wiki/Зловещая_долина), но применительно к неодушевленным моделям.


  1. Saffron
    10.05.2016 20:19

    А не можете рассказать, почему производители компьютерных игр начали отказываться от распространённых движков вроде unreal и crysis и начинают пилить собственные? Раньше они считались флагманами, и это было неудивительно — их производители концентрировали усилия на создание технологий и обслуживали сразу несколько игровых проектов. Разделение труда, эффективная экономика и всё такое. А сейчас вроде все эти движки загнулись и современные игры все выходят на своих собственных движках. Чем это можно объяснить с точки зрения здравого смысла и экономики?


    1. RomanArzumanyan
      10.05.2016 20:52
      +1

      Рост сложности архитектуры движка. Вот получат распространение низкоуровневые API типа Vulkan, и опять будет этап сложных универсальных движков.


      1. Saffron
        10.05.2016 22:33

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


        1. RomanArzumanyan
          11.05.2016 14:07

          Я ничего не сказал об обрезании поддержки железа. Речь идёт о таких API, которые дадут разработчику больше контроля над железом, и избавят процесс рендеринга от большого количества вызовов на стороне CPU для продвижения по внутренней машине состояний. Проще говоря — избавят GPU от тотальной зависимости от CPU. Тогда call stack на стороне центрального процессора «похудеет», и снова настанет пора сложных движков с большим количеством обёрточного кода.


      1. buggiZhuk
        11.05.2016 00:07

        Вулкан наследник openGL(который также низкоуровневый). А игры как делались с уклоном в directX так и будут.


        1. EvilFox
          11.05.2016 02:24

          openGL(который также низкоуровневый)
          Нет. OGL где-то так же как D3D (до 12), просто его архитектура на расширениях, которая притом ему больше вредит чем помогает.
          Кстати Вулкан можно использовать совместно с OGL.


    1. Adnako
      10.05.2016 22:35
      +1

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


    1. creker
      10.05.2016 22:50

      Тот же анрил перешел на модель с отчислением процента с продаж. Крупным ААА студиям это явно не особо интересно. Когда ты ЕА и у тебя под крылом есть DICE с их фростбайтом, то тебе ничего больше не нужно. А так, переход на свои движки начался еще на прошлом поколении. Все крупные студии и издатели имели собственные технологии. Были DICE, они делали свой двиг под свои игры, потому что ничего на рынке не подходило под их требования. Двиг вырос в такого монстра, что годится на все жанры, поэтому ЕА сейчас использует его абсолютно везде.

      А так да, слишком большая сложность движков. Большие двиги уже не покрывают требования и слишком ограничивают разработчиков. Их либо надо ковырять до неузнаваемости, либо переделывать. У всех, у кого настолько большие требования, уже и так есть что-то свое.

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


      1. Saffron
        10.05.2016 23:13

        > Были DICE, они делали свой двиг под свои игры, потому что ничего на рынке не подходило под их требования.

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

        > Тот же анрил перешел на модель с отчислением процента с продаж

        Насколько я понимаю, это опционально. Его до сих пор можно купить за много денег по фиксированному тарифу. Процент от продаж — это опция для индиков.

        Кризис вон вообще перешёл на политику «подайте кто сколько сможет». Демпинг идёт серьёзнейший у всех крупных движков. То есть они понимают, что теряют рынок и пытаются завоевать его низкими ценами. Но почему они не могут предложить вместо этого качество и поддержку, как они это делали раньше?


        1. creker
          11.05.2016 01:09

          Как так вышло, что отдельной студии удалось написать собственный движок — раньше такие проекты были обречены на отставание по технологичности от рынка, а не на опережение.

          Начали денег давать, вот и получилось. У DICE очень большая R&D работа ведется, и они умудряются делать своих соперников во многих моментах. От их недавней презентации по объемному свету реально челюсть отвисает, что это уже все работает и возможно.

          А так, батлфилд же имеет очень длинную историю. На тот момент особо не было никого, кто мог предложить нужный двиг. Крайэнжин всю жизнь был кривой слишком, анрил энжин в те времена умел только в комнатные уровни, а у БФ очень серьезные требования к движку. Так потихоньку в процессе нескольких релизов и получилась технология. ЕА увидели прогресс, явно вложились в штат разработчиков и вот у них in-house двиг.

          Насколько я понимаю, это опционально. Его до сих пор можно купить за много денег по фиксированному тарифу. Процент от продаж — это опция для индиков.

          Похоже правы https://www.unrealengine.com/custom-licensing Что-то подобное возможно они могут. Тогда отпадает этот вариант.

          Но почему они не могут предложить вместо этого качество и поддержку, как они это делали раньше?

          Сколько я читал про UE4 — он все это может и очень хорошо. Рендер там очень крутой, редактор круче некуда и всегда таким был. Но вот что-то ААА ушел в свои велосипеды. И не сказать, что игры от этого проиграли. Наоборот, качество картинки на in-house движках получается обычно лучше, особенно касается эксклюзивных проектов. Всегда так было, что очень редкие люди могли выжать из покупной технологии все возможное. Из того же анрила 3 это могли делать единицы. По памяти кроме самих epic games разве что rocksteady в бетмене, да Bioware в Mass Effect. Bioshock еще возможно.


          1. Saffron
            11.05.2016 01:44

            > Наоборот, качество картинки на in-house движках получается обычно лучше, особенно касается эксклюзивных проектов

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

            > ЕА увидели прогресс, явно вложились в штат разработчиков и вот у них in-house двиг.

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

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


            1. creker
              11.05.2016 04:25

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

              А вы посмотрите на портфолио фростбайта. НФС, масс эффект, батлфилды, миррорс эдж — все это большие игры с порой совершенно разными требованиями к движку. Покупать для каждого двиг — один на все не хватит. Анрил энжин 4 не потянет из коробки ничего из этого нормально, нужно долго пилить его. Крайэнжин кривой тормозной неудобный. Юнити для инди и технически слабый. Нет вариантов просто. А тут дайс, у которых уже есть готовая технология. Вот и приняли решение ЕА в один прекрасный день, что все будущие проекты будут на фростбайте. Фростбайт из движка для батлфилда превратился в универсальный продукт, который и рейсинги, и рпг, и шутеры тянет. При чем за счет его мощи прямым образом выигрывают игры — масс эффект до этого был в жестких ограничениях анрила 3, отчего никаких толковых исследований и богатых миров не сделать было. Теперь это возможно. Тоже самое с миррорс эдж. Студия не нужно думать, а будут ли у нас деньги купить или допилить двиг до наших амбиций. У них уже есть фростбайт, который скорее всего покроет все, что нужно.


              1. Saffron
                11.05.2016 11:19

                > Анрил энжин 4 не потянет из коробки ничего из этого нормально, нужно долго пилить его. Крайэнжин кривой тормозной неудобный.

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


            1. Cryvage
              12.05.2016 12:46

              Для гигантских корпораций, помимо текущей прибыли, существует еще такой важный пункт, как независимость и снижение внешних рисков. Независимость от другой крупной корпорации. Ведь если ты сидишь на чужом движке, ты зависишь от него. И не так-то просто поменять сходу движок, если владелец движка вдруг выставил невыгодные условия, был куплен конкурентом или вовсе разорился и прекратил существование. Всякое ведь бывает. Отбросим срочный запил собственного движка, такие вещи с бухты-барахты не делаются. Пусть корпорация решит перейти с готового движка «А», на готовый движок «Б», от другого производителя. Во-первых нужно переучивать весь штат сотрудников. Добавим еще то, что некоторым из них смена движка может не понравиться и они уйдут. Во-вторых, движки неодинаковы по своей архитектуре. Что было просто в одном, вызовет неожиданные сложности в другом. То есть, на первых проектах высоки риски срыва сроков, да и количество багов явно возрастет. Можно нехило подпортить свой имидж, провалив проект или выпустив его сырым. В общем, нет смысла выискивать все возможные трудности от такого мероприятия. Все здесь прекрасно понимают, что смена движков и технологий — это боль. Всякие мелкие фирмы и инди разработчики — заложники этой ситуации. А вот крупный игрок может обезопасить себя от проблем. К тому же свой движок — неплохой актив, который можно и другим продавать, если что. То есть инвестиция. Плюс это положительно скажется на команде разработчиков. Во-первых это способ привлечь, как опытных гуру, так и просто талантливых, амбициозных программистов. Кто бы из нас отказался разрабатывать новый игровой движок в крупной компании за хорошую зарплату? Да и миддлы сильно поднимут свой уровень, пока будут участвовать в разработке движка совместно с каким-нибудь опытным гуру. В дальнейшем, свой движок означает, что в команде будут люди, знающие его изнутри. И еще это может сильно снизить текучесть кадров.


              1. creker
                12.05.2016 13:44

                Вот насчет актива, ЕА напрочь отказывается лицензировать Frostbite. Держат только для своих проектов. Собственно, вряд ли им он принесет значимый доход, а вот иметь такое конкурентное преимущество полезно.


    1. EvilFox
      11.05.2016 02:38

      Скорее наоборот. Раньше велосипедостроителей было очень много, сейчас их поубивалось когда стремительно рынок начал захватывать Unity3D. Чтобы как-то сохранить свою прибыль те же Эпики открыли свой UE4 и сначала брали какие-то небольшие деньги за подписку а потом и вовсе сделали его бесплатным (конкурировать-то очень сложно). В уезжающий поезд постарались запрыгнуть и Crytek с их CryEngine, только беда последнего что он куда менее универсальный и соответственно ниша более узкая. Помимо Unity3d конечно существуют ещё другие свободные движки, но именно он нагнул рынок (не в последнюю очередь из-за своего магазина ассетов где можно купить как недостающие технологии так и недостающий контент, где любой может продавать свои наработки).
      Но как и раньше так и сейчас средние и большие компании стремятся к своим технологиям, чтобы не быть зависимыми от чужих решений, лицензий и технологий, хотя это не всегда так — умные обычно подбирают движок под конкретный проект и свой движок не всегда подходит (если допустим компания решила сделать игру на чуждом поле), поэтому те же близарды свои картишки сделали на юнити.


      1. EvilFox
        11.05.2016 03:49

        Помимо Unity3d конечно существуют ещё другие свободные движки
        *бесплатные и даже свободные


        1. Saffron
          11.05.2016 04:23

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

          Может быть дело в том, что сначала было укрупнение игровых контор и издатели сожрали студии. Соответственно в результате такой централизации стало окупаться производство движка внутри инфраструктуры издателя. А потом в качестве ответки появились индики и эту публику стало окучивать уже юнити. А независимые движки, которые ориентировались на профессионалов просели, так как те либо были выкуплены, либо разбежались по инди конторам.


  1. valent_in_habrahabr
    10.05.2016 22:53

    Мне как болельщику F1, интересней почитать про то, чем занимаются инженеры и что программируют.
    п.с. Лучше посмотреть квалификацию или гонку, чем в игры играть. Это зрелищный спорт. Игра не стоит даже 20% трансляции.


    1. alexpp
      10.05.2016 23:27
      +1

      А еще лучше — хоть раз посмотреть гонку вживую. В этом году получилоь съездить в Сочи на гонку — полон впечатлений!


      1. DrZlodberg
        11.05.2016 11:32

        Дело вкуса. Сам одно время угорал по гонкам, хотел съездить, посмотреть в живую. А позже так сложилось, что довелось работать на гонках. IMHO трансляцию смотреть гораздо интереснее. Это при том, что у меня был свободный доступ везде, в отличие от обычных зрителей.


  1. creker
    10.05.2016 22:57
    +4

    F1 2015 – передовой игровой проект

    Не хочу принижать явно большой труд, который вложили в этот проект, но это совершенно не передовой проект. Driveclub, Forza Horizon 2, Forze Motorsport 6, Project Cars — это передовые проекты. При этом вышли все они в одно время или даже раньше F1 2015. Уже на выходе было видно, что его рендер устарел.


    1. zorgrhrd
      11.05.2016 10:40

      Driveclub выдает какую то нереальную картинку, особенно на маленьких гифках. Живьем так и не поиграл.


  1. GennPen
    11.05.2016 00:07
    +3

    Все хорошо расписано… но только про графическую составляющую. А что с физикой? Порой, расчеты физической модели ничуть не проще, чем расчитывать графику. Не очень-то интересно кататься на машинах с аркадным управлением, пусть даже с крутой графикой.


    1. ffs
      11.05.2016 11:30
      +1

      Игры от Codemasters (на этом движке, т.е. GRID и дальше) никогда не тянули на симуляторы, все они аркады.
      Я бы почитал вот что-нибудь от разработчиков Assetto Corsa про физ. модель шин и остальные мелкие фишки которые составляют общее впечатление.


    1. beavis88
      11.05.2016 11:30
      +1

      > А что с физикой?

      -А её там нет и никогда не было, это же аркадная фигня.


      1. GennPen
        11.05.2016 12:03

        Наверное, лучше тогда в NFS поиграть, там хоть какой-то сюжет есть.


        1. beavis88
          11.05.2016 12:31

          Зойчем сразу в нфс, можно iracing например, если важна физика.


    1. freylis
      11.05.2016 16:13

      Тут палка о двух концах. С одной стороны да, хочется сложности и реалистичности. С другой стороны понимаешь, что в симулятор нельзя просто так сесть и поехать. Нужно уметь работать с настройкам, знать тонкости управления и т.п. Это как мир авиасимуляторов — прикольно, но времени жалко. А красивую аркаду включил, прокатился и забыл


  1. Eremite_b
    11.05.2016 00:07

    Жаль, что я не любитель симуляторов, хотя по количеству комментариев — совсем не жаль:)