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