Разработчики о багах. Конспект трансляции

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

Всего за время трансляции они обсудили 12 багов. Эта статья — небольшой конспект всей трансляции. Без воды, с картинками и всякими интересностями. Прошу в полную новостью за подробностями.

Для начала, вот сама запись трансляции:

А теперь давайте начнем!

1. Проблема с установкой и запуском игры

Описание проблемы: У небольшого процента покупателей Astroneer игра отказывалась устанавливаться и запускаться, ссылаясь не некоторую C++ ошибку и отсутствие необходимым dll файлов.

Astroneer работает на Unreal Engine 4. Ее код написан на C++ в Microsoft Visual Studio. Игре для корректной работы необходимо наличие двух компонентов.

Один поставляется с игрой (собственно, это и есть код игры). Другой должен быть установлен на компьютере пользователя. Если он не установлен, то игра просто не может запуститься.

Как решить проблему: Убедитесь, что у вас установлены последние обновления Windows. В частности, если вы обладатель Windows 7, проследите, что у вас установлен пакет обновлений Service Pack 1.

2. Трещины и дыры в поверхности планеты

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

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

Причины появления бага:

Появляются они потому что хост (сервер) и клиент (игра на компьютере) отрисовывают поверхность немного по-разному.

Причина 1. Разные платформы (Xbox и Windows) по-разному работают с числами и процессами. Из-за этих различий появляется и разница в отрисовке поверхности планеты.

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

Разработчики обещают исправить эту проблему в будущих патчах.

3. Баг с повторным появлением ресурсов в сетевой игре

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

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

Причины появления бага:

Когда вы играете в сетевую игру, вы постоянно обмениваетесь данными с другими игроками в сессии. По некоторым специфическим причинам пересылка данных иногда проходит неудачно.

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

Косвенная причина: программист Astroneer ранее не работал над мультиплеером в играх. Для него это первый опыт. Поэтому в игре достаточно много багов, связанных с сетевой игрой.

Как решить проблему: отойдите на достаточное расстояние от проблемного места и подойдите к нему снова. Со 2-3 попытки данные отправятся нормально и все синхронизируется.

4. Чем дольше играешь, тем ниже FPS

Описание проблемы: с этим сталкивались практически все игроки. Чем больше ваза база, чем дальше вы углублялись в планету, тем сильнее проседала производительность игры.

Причины появления бага:

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

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

Немного цифр. После 2 часов игры в Astroneer она должна держать в памяти ~20 000 объектов со всеми свойствами (физика, координаты, поворот и т.д.). Это очень много.

Эту цифру удалось снизить до ~2 000 объектов, что тоже немало.

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

Но не обольщайтесь. Разработчики предупреждают, что некоторые следующие патчи (может быть и обновление), может потребовать запуска новой игры. Сохранения поддерживаться не будут.

5. Проваливание машин в поверхность планеты

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

Причины появления бага:

С машинами (и планетоходами в частности) очень много проблем. Прямо настоящая боль.

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

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

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

Более того, разработчики обещают сильно обновить, или вовсе переписать систему «спящей» физики.

6. Проблемы со звуком в сетевой игре

Описание проблемы: В мультиплеере вы будете слышать звуки исследования «неизвестных» объектов на любом расстоянии от самого исследовательского модуля.

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

Причины появления бага:

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

7. Невозможно поднять добытый ресурс

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

Причины появления бага:

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

8. Планетоходы улетают в космос

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

Причины появления бага: каждый кадр игра просчитывает физику движения ровера. Если игра понимает, что сейчас произойдет столкновение, она добавляет противоположно направленную силу к нему.

Но этот механизм достаточно плохо отработан, из-за чего эта сила слишком сильно отталкивает ровер… в космос.

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

9. Падение в текстуры после возрождения

Описание проблемы: после возрождения игрок проваливается под землю и начинает плавать в текстурах. В некоторых случаях удается выплыть обратно на поверхность. Иногда можно снова умереть от нехватки кислорода.

Причины появления бага:

Причина очень похожа на причину, описанную в разделе № 5. В момент смерти вы телепортируетесь на свою базу. Однако это происходит так быстро, что физика поверхности не успевает прогрузиться. И в итоге вы просто проваливаетесь сквозь поверхность планеты.

10. Не могу подключиться к друзьям и играть вместе

Описание проблемы: вы просто не можете подключится к сетевой игре. Игра не начинается.

Как исправить проблему:

  • Убедитесь, что человек, к которому вы подключаетесь, ваш друг в Steam, Xbox или в Windows.
  • При первом запуске Astroneer просит возможности подключаться к сети. Разрешите ей это сделать.
  • Убедитесь, что у вас и у вашего друга одна и та же версия игры. Играть вместе на разных версиях не выйдет.
  • Попробуйте поиграть позже. Возможно есть какие-то проблемы с соединением, не связанные с вами и вашими друзьями.

11. Разрезанные планеты

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

Причины появления бага:

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

Причина 1. Проблема с обработкой больших чисел. Кое-где могут появляться неточности из-за чего ломается относительное позиционирование кусков планеты и весь процесс отрисовки планеты идет коту под хвост.

Причина 2. В сетевой игре могут происходить проблемы с передачей данных между сервером и игроком из-за чего некоторые куски неправильно расположены.

12. Неполные ресурсы

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

Причины появления бага:

Причина бага кроется в том, что игра постоянно передает состояние ресурса, который плавится или перерабатывается. Однако по некоторым причинам или ошибкам конечное состояние (слиток готов, органика закончилась) не передается и ресурс остается как-бы одновременно занятым и готовым.

Сделать с таким сломанным объектом ничего не получится — надо ждать патчей.


Ну а на этом все! Пишите ваше мнение о прошедшей трансляции в комментариях ниже. Давайте вместе обсудим эти баги.

Удачи вам в Astroneer!