Jump to content
Korean Random
Sign in to follow this  
Jarek

16/05/2014 - Испытание и сага о Поиске Пути Зомби

Recommended Posts

Dean "Rocket" Hall / Chris Torchia

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




Приоритеты и темпы разработки

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

Вот несколько будущих изменений, которые будут внесены благодаря нашей реорганизации:
  • Полностью новая система рендеринга (предусматривающая потенциальные обновления до DX10 или DX11)
  • Настоящая многопоточность / многоядерность для серверов и , возможно, клиентов
  • Полностью новый ИИ животных отражающий настоящее поведение животных
  • Переработанная система "действий", заменившая систему действий, привязанной к колесу мыши
  • Полностью переработана система инвентаря. изменение, возможно, не будет заметно для игроков, зато позволит подготовить почву для будущих нововведений, а также увеличить производительность и снизить количество ошибок

Предпосылка

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

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

 

Испытание

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

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

 

Результат

Я беседовал с Мартином Славковым (Martin Slavkov), программистом, принимавшем участие в этой разработке, чтобы подготовить для вас результат в виде скриншотов.

Генерация навмешей (вся генерация в галерее скриншотов на Imgur)
post-1653-0-78724400-1400314579_thumb.png

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


Использование в игре (навмеши в действии в галерее скриншотов на Imgur)
Затем движок может считывать нужный кусок навмешей. Конечно, это занимает некоторый объем памяти, но не больше 600Mb, зато грузится только тот кусок мешей, который относится к территории на которой вы находитесь. Однако, при переходе сервера на 64-битную версию, потенциальные проблемы с памятью уменьшатся.

post-1653-0-76181900-1400314581_thumb.png

Оптимизация производительности может стать весьма значительной. Сейчас наша команда работает над мультипотоковостью поиска пути ИИ, что позволит перенести поиск пути на отдельное ядро. Раньше внешняя система "пути" обрабатывала навигацию вокруг статичных и динамичных объектов, а внутренняя система использовалась внутри зданий. Сначала дизайнеры сами определяли где внутри зданий будет путь ИИ, но мы отказались от этого из-за проблем с производительностью при большом количестве агентов (объектов с ИИ).

post-1653-0-85980400-1400314583_thumb.png

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

 

Отчет главного дизайнера Криса Торчиа (Chris Torchia)
(галерея скриншотов на Imgur со всеми новыми артами)


post-1653-0-40499900-1400314584_thumb.jpg

Я рад предоставить вам отчет со множеством нового контента, который скоро появится на экспериментальном сервере. Недавно мы впервые встретились с сотрудниками наших студий в Праге и Братиславе и я смог из первых рук взглянуть на текущие работы художников и аниматоров над новыми животными. У нас уже есть базовая реализация прототипов животных, предоставленная студией Братиславы и она (реализация) выглядит просто потрясающе!

post-1653-0-76396100-1400314584_thumb.jpg

были созданы самодельные рыболовные снасти и карп, которого игроки смогут выловить в прудах. Также были созданы несколько моделей филе, которые игроки смогут приготовить. В целом эти маленькие нововведения превратятся в одно большое изменение в игре. Кстати говоря о животных = мы также познакомились с Бигом (Big) - ручная черепаха студии в Братиславе. Хм, а это дает мне идею...

post-1653-0-30197100-1400314585_thumb.jpg

Наши дизайнеры по персонажам предоставили свои работы, в том числе вместительный полицейский жилет, который как нельзя подходит к униформе ОМОНа города Орёл. также начата работа над униформами работников скорой помощи, пожарников, а также закончена работа над униформой ГОРКА-Е.

 

Очаги, Охота и Лесорубы!

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

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

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

 

Визит студии в Братиславе
(посмотреть все фотографии визита в галерее скриншотов на Imgur)

Мы посетили нашу студию в Братиславе - у них есть черепашка!

post-1653-0-91426600-1400314585_thumb.jpg

 

Следующее обновление

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

Кроме все сказанного выше, есть еще несколько вещей, которые люди оценят:
  • Различные задачи будут выполняться с разной длительностью
  • Приоритет задач основывается на том, что больше всего необходимо, а не только для улучшения дизайна игры
  • Запланированные даты выхода сборок конечно скоро будут, но они не будут абсолютны. Мы будем задерживать выход сборки, если не будем уверены в её статусе
  • Девблог больше не будет каждую неделю, он будет так часто, как только мы сможем

В заключение

Эти два месяца очень агрессивного роста стали чрезвычайно захватывающим временем для всех нас. Такой большой рост команды - также большой риск. Но этот риск окупается, и мы рады видеть какое огромное влияние принесло наша новая система поиска пути и столкновений в наш опыт DayZ. Edited by Content Manager #2
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...