Сегодня мы рады предложить вам еще раз заглянуть под капот! На этот раз мы предлагаем вашему вниманию интервью с некоторыми членами нашей команды, которые работают над новой грузовой системой как для ATS, так и для ETS2 в предстоящем обновлении 1.54. Поэтому, не откладывая в долгий ящик, мы позволим экспертам объяснить, что представляет собой эта новая система, и познакомим вас с их работой!
По мере того как наши игры продолжают расширяться, количество типов грузов и прицепов значительно увеличилось, что усложняет управление старой системой. Чтобы понять, почему были необходимы изменения, полезно взглянуть на то, как работала предыдущая система.
До сих пор казалось, что игра, объединяющая прицеп с грузом, таким как часть оборудования, на самом деле была созданной вручную моделью, причем каждая пара прицеп-груз хранилась отдельно на диске. Такой подход требовал огромного количества уникальных моделей, что затрудняло эффективное добавление нового контента и занимало много места на диске.
Программист Саймон, также известный как 50keda, который работал над этой задачей с самого начала, объясняет это более подробно.
«В нашем мире каждый груз должен быть каким-то образом прикреплен к прицепу. Визуальная привязка груза к прицепу, включая выбранную модель для погрузки, является частью того, что мы называем грузовой системой. Эта система управляет тем, как визуальные модели груза подключаются к соответствующим прицепам, что играет важную роль в экономике в целом. По мере расширения наших проектов количество грузов и прицепов увеличилось настолько, что прежний подход стал неприемлемым. Управление растущим количеством прицепов и грузов стало непосильной задачей, что привело к увеличению сроков выпуска и повлияло на порядок интеграции новых грузов и прицепов», — делится он с нами.
Смети, наш старший художник по транспортным средствам, объясняет, что в течение некоторого времени эта проблема становилась все более актуальной и требовала решения. «Ситуация усложнялась с появлением новых грузов и множества фирменных прицепов к игре. Каждый груз был прикреплен ко всем прицепам этого типа, то есть, если у нас было 3 платформы, нам также требовались 3 конкретные модели для перевозки грузов — и каждый вариант груза обычно имеет два или три визуальных элемента. Кроме того, у нас были фирменные прицепы, поэтому комбинаций было огромное количество. Передо мной стояла задача переделать трейлеры».
Нашей целью было упростить процесс подключения новых грузов и прицепов, избавив от необходимости вручную управлять их сочетаниями, как объясняет Саймон: «Мы могли бы добиться этого, если бы код автоматически объединял грузы и прицепы на основе упрощенных правил, а не создавал отдельные модели для каждого типа прицепов. Это означает, что для каждого груза будет определена своя модель, методика погрузки и способ крепления. Хотя этот подход может быть сопряжен с некоторыми первоначальными трудностями и поначалу может оказаться несовершенным, он закладывает основу для дальнейшего расширения и совершенствования. Например, при программной загрузке груза, такого как поддон, вам нужно будет смоделировать только один поддон. Затем код определит правильное количество моделей и разместит их на прицепе в соответствии с выбранной методологией загрузки», — объясняет Смети.
Таким образом, самым большим преимуществом новой системы является то, что она больше не требует от наших 3D-художников ручного создания готовых пар прицеп-груз. Вместо этого она динамически подбирает любой совместимый прицеп с любым совместимым грузом, процедурно определяет его размещение и создает правдоподобные элементы крепления, которые значительно облегчат работу нашей автомобильной бригады.
Наш продюсер Карел координировал проект и сыграл ключевую роль в контроле за его ходом, помогая обеспечить бесперебойное завершение.
«Когда я присоединился к команде разработчиков, мне сначала было просто любопытно, как будут обрабатываться деревянные бревна в новой системе, поскольку я в основном работал над смежной функцией — динамической загрузкой груза (un). Однако, когда я осознал, какой объем работы требуется выполнить — заменить тысячи комбинаций грузов и прицепов всего на несколько сотен «умных», — я взял на себя производственные обязанности, чтобы Саймон мог сосредоточиться в первую очередь на разработке. Это включало в себя оценку времени, планирование, отслеживание прогресса, привлечение большего числа дизайнеров и тестировщиков автомобилей с 3D-графикой, планирование выпуска и многое другое. И, конечно, огромное спасибо нашей команде контроля качества, которая взяла на себя тяжелую задачу по тестированию всех комбинаций и сообщению о бесчисленных проблемах», — делится с нами Карел.
Естественно, нам также пришлось переработать модели грузов, чтобы обеспечить их бесперебойную работу с новой системой, которая автоматически соединяет грузы с прицепами. Матей, наш дизайнер транспортных средств с 3D-графикой, взялся за эту задачу.
«Вместо того чтобы создавать шесть или более различных моделей грузовых автомобилей, я разработал единую версию и, при необходимости, разделил ее на несколько вариантов для более разнообразных грузов, например, для двух версий кондиционеров. После доработки модели я проверил, все ли в порядке, и установил специальные фиксаторы, чтобы определить, как и где груз будет крепиться к прицепу. Затем система динамически распределяет груз в зависимости от его размера, веса и длины прицепа. Этот новый подход упрощает создание моделей грузов и вносит больше разнообразия в игру», — рассказывает нам Матей.
Петр, еще один дизайнер автомобилей с 3D-графикой из нашей команды, работает над той же задачей — и, по его собственным словам, ему это нравится.
«Я присоединился к проекту Новая Грузовая Система в период с августа по сентябрь, работая вместе со Смети и Саймоном. Моя основная задача — как тогда, так и сейчас — перевести существующие грузоперевозки в новую систему. Для меня это был захватывающий переход от 3D-моделирования к активной разработке новой игровой функции, которая показалась мне одновременно стимулирующей и увлекательной», — говорит Петр.
Наш программист Макс сыграл ключевую роль в интеграции новой системы доставки грузов в экономику игр, среди прочих задач, о которых он расскажет ниже.
«Основной частью моей работы над новой грузовой системой было ее проектирование и подключение к остальной части игры. Автоматическое размещение и привязка независимых моделей грузов должны упростить любую работу по моделированию в будущем. Повторная калибровка экономичных данных гарантирует, что они будут работать со всеми текущими комбинациями грузов и прицепов. Остаются некоторые проблемы, поэтому у нас определенно есть планы по улучшению в следующий раз», — говорит Макс.
Это изменение значительно улучшит работу нашей автомобильной команды, поскольку позволит им создавать еще больше комбинаций грузов и прицепов по мере того, как мы продолжаем расширять наши игры. Несмотря на то, что на первой итерации могут возникнуть проблемы, стоит усовершенствовать систему, поскольку это не только повышает эффективность, но и экономит дисковое пространство и память, устраняя необходимость хранить бесчисленные готовые комбинации.
Саймон шутит, что этот проект может открыть новые возможности для обеих наших игр. «На данный момент мы сосредоточены на переработке всех грузов и прицепов, чтобы они были совместимы с новой системой и при этом выглядели визуально правдоподобно. Тем не менее, система cargo открывает двери для бесчисленных возможностей. Этот проект, безусловно, будет интегрирован с системой динамической загрузки грузов (un), и мы стремимся усовершенствовать способ расчета количества предметов, которые могут поместиться на прицепе. В настоящее время логика довольно проста и не всегда будет точной, но она уже демонстрирует потенциал системы. Проявив немного воображения, это могло бы даже привести к некоторому уровню взаимодействия игроков, но посмотрим, к чему это нас приведет».
Мы надеемся, что вам понравился этот закулисный взгляд на новую грузовую систему с точки зрения наших коллег, которые над ней работают.
Увидимся в пути!