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

Мало какие игры захватывали воображение разработчиков так, как Teardown — физическая песочница, известная своими полностью разрушаемыми воксельными окружениями. Созданная Tuxedo Labs и позже опубликованная Saber Interactive, игра быстро стала выдающимся примером того, как творческое моделирование и возникающий игровой процесс могут переопределить жанр.
Вместо того чтобы следовать традиционным структурам миссий, Teardown предлагает игрокам тщательно планировать свой подход, манипулировать окружением и сеять хаос в мирах, где почти всё можно разрушить.
С недавним добавлением многопользовательского режима техническая сложность систем игры возросла ещё больше. Мы поговорили с Деннисом Густафссоном, основателем Tuxedo Labs и создателем Teardown, о проблемах синхронизации разрушений между игроками, философии дизайна, стоящей за воксельным движком игры, и о том, почему создание мира, в котором всё может сломаться, представляет собой уникальный набор технических и игровых проблем.
Вы также можете прочитать больше о том, как в Teardown был добавлен многопользовательский режим, в этом devblog.

У Teardown сложилась прочная репутация благодаря полностью разрушаемому окружению и игровому процессу в стиле песочницы. Оглядываясь назад, с момента запуска, какими аспектами дизайна или технологии игры вы гордитесь больше всего сегодня?
Деннис Густафссон, основатель Tuxedo Labs: Как программист, работающий с физикой, полностью разрушаемое окружение было чем-то вроде святого Грааля с тех пор, как я заинтересовался моделированием в конце девяностых. Возможность наконец-то реализовать это, пожалуй, является наиболее значимым аспектом. Я также очень горжусь игровым процессом, который использует возможности технологии, используя разрушение не только как визуальный эффект, но и как фактически полезное и даже необходимое для выполнения задач.
Как изменилось видение Teardown с течением времени, особенно по мере того, как игра расширялась за счёт нового контента, инструментов и функций, ориентированных на сообщество?
Деннис Густафссон: Teardown как платформа для модов выросла гораздо больше, чем мы ожидали, и мы стараемся использовать это. Теперь есть моды с целыми кампаниями, которые значительно отличаются от игрового процесса, на котором была построена игра. Введение многопользовательского режима также расширяет возможности Teardown за пределы одиночной игры, с новыми игровыми режимами и возможностями моддинга, которые мы изначально не планировали.
Воксельный мир Teardown позволяет создавать невероятно детализированные и динамичные разрушения. Можете объяснить, как работает воксельная система и как она обеспечивает физику игрового процесса, которым известна игра?
Деннис Густафссон: Динамическое разрушение в традиционных играх невероятно сложно, в первую очередь потому, что объекты представлены только поверхностями без каких-либо сведений о том, что находится внутри. Добавьте к этому трудности с числовой точностью при разрезании мешей и ограничениями выпуклости, связанными с физическими движками, и вам, как правило, приходится довольствоваться предварительно раздробленными объектами, которые ломаются каждый раз одинаково. Объекты Teardown представлены и смоделированы как воксельные объёмы на регулярной сетке, и весь движок построен вокруг этого. Это значительно упрощает многие вещи как в физике, так и в графике при их разрушении.
Разрушение в таком масштабе может быть чрезвычайно затратным с точки зрения вычислений. Какие приёмы или оптимизации использовала команда, чтобы обеспечить стабильную производительность?
Деннис Густафссон: Когда я впервые начал переписывать обнаружение столкновений для работы с вокселями, я думал, что это будет ужасно медленно, но на самом деле всё оказалось не так плохо, как я сначала думал. Во время раннего доступа я потратил много времени на оптимизацию физики и разрушения, используя как SIMD, так и многопоточность, чтобы использовать возможности современного оборудования. Для консольных портов Saber удалось ещё больше повысить производительность, так что это был долгий путь с участием многих людей.
Освещение играет огромную роль в визуальной идентичности Teardown, особенно с его отличительной воксельной трассировкой лучей. Как технически работает система освещения и с какими проблемами столкнулась команда при реализации глобального освещения в реальном времени в разрушаемом мире?
Деннис Густафссон: Teardown фактически не реализует глобальное освещение (свет не отражается от поверхностей), но мы используем трассировку лучей для окклюзии окружения, мягких теней и зеркальной окклюзии. Рендерер Teardown сильно отличается от большинства игр. Как и остальной движок, он использует воксельные объёмы для представления объектов, поэтому треугольники здесь ни при чём. Вместо этого графический процессор проходит через эти воксельные объёмы вдоль луча, чтобы увидеть, где он во что-то попадает. Звучит дорого, но у нас есть несколько слоёв ускоряющих структур, чтобы поддерживать производительность. Многие дизайнерские решения для рендерера Teardown, в том числе отсутствие глобального освещения, обусловлены тем, что он был создан до того, как аппаратная трассировка лучей стала доступной.
Мультиплеер вносит совершенно иной уровень сложности при работе с физикой и разрушениями. Каковы были самые большие технические трудности при внедрении мультиплеера в Teardown, особенно в плане синхронизации разрушений и физики между несколькими игроками?
Деннис Густафссон: Мы с самого начала знали, что не сможем синхронизировать разрушения, отправляя воксел-данные по сети — это просто слишком много данных. Вместо этого мы сделали так, чтобы части сетевой синхронизации основывались на детерминизме. Сервер отправляет конкретные команды разрушения всем клиентам, которые затем применяют их к сцене точно так же и в том же порядке на всех машинах. Некоторые части движка, например физика, всё ещё используют традиционную синхронизацию состояний, так что это комбинация обоих подходов.
Присоединение в процессе игры было серьёзной головной болью. Поскольку разрушения зависят от команд, применяемых ко всем машинам, такие команды также должны быть применены к любому новому клиенту, присоединяющемуся к игре. Поэтому мы ставим эти события в очередь и применяем их к сцене во время присоединения. Чтобы всё было разумно, нам пришлось ограничить размер этого буфера и отключить присоединение в процессе, когда было внесено много изменений; в противном случае присоединение заняло бы вечность.
Сцена моддинга в Teardown стала одной из самых активных частей сообщества. Как игра была спроектирована для поддержки моддинга с технической точки зрения, и какая часть оригинальной инструментальной цепочки доступна создателям?
Деннис Густафссон: Запросы на поддержку моддинга были ещё до первоначального релиза, так что у нас было ощущение, куда это идёт, но наш первоначальный план состоял в том, чтобы сначала закончить игру, а потом добавить поддержку моддинга. Однако вскоре после выпуска раннего доступа (в котором была только первая половина кампании) сообщество уже вовсю занималось обратным проектированием, документированием, созданием собственных инструментов моддинга и платформ для обмена модами. Это заставило нас быстро переключить внимание и приложить больше усилий к официальным возможностям моддинга и интегрировать Steam Workshop. Сейчас мы предоставляем моддерам практически все наши внутренние инструменты. Есть несколько функций отладки и профилирования, которые мы не используем, в основном потому, что они очень сложные и не очень полезны для моддинга.
Были ли какие-нибудь моды или творения сообщества, которые удивили команду, продвинув движок дальше, чем вы ожидали?
Деннис Густафссон: Это случалось бесчисленное количество раз за годы. Я думаю, что первый раз я действительно упал со стула, когда кто-то реализовал рабочую портальную пушку, включая возможность пропускать объекты или прыгать через неё, и даже собственный трассировщик лучей, чтобы видеть сквозь порталы.
Поскольку игра продолжает развиваться, есть ли какие-нибудь технические улучшения или системы, которые вы сейчас исследуете, которые могли бы ещё больше продвинуть разрушения или симуляцию в Teardown?
Деннис Густафссон: Было уделено много внимания подготовке мультиплеера к запуску, и я думаю, что это всё ещё будет в центре внимания в течение некоторого времени. У нас есть новые технологии, над которыми мы также работаем, но большинство из них предназначено для новой игры в полностью переработанном движке.
Для разработчиков, заинтересованных в создании системного разрушения или физического геймплея в своих проектах, какие уроки из разработки Teardown вы бы поделились?
Деннис Густафссон: Я бы посоветовал людям не стесняться писать свои собственные технологии. Обычно это не рекомендуется, но я думаю, что это отличный способ сделать по-настоящему уникальную игру. Время, необходимое для настройки всего, может быть пугающим, но к концу проекта у вас будет всё именно так, как вы хотите, и вы сможете работать быстрее, чем в любом существующем движке. И что ещё более важно — писать собственные технологии гораздо веселее!
Деннис Густафссон, основатель Tuxedo Labs
Интервью провёл Дэвид Ягнео
Автор: Dennis Gustafsson
Материал подготовлен на основе статьи 80.lv. Перевод — Skills Up.