Приоритеты развития и темпы:
Нашей главной целью было создание архитектуры, как в команде, так и в игре с тем, чтобы в будущем достигнуть совершенства. Это предполагало радикальное увеличение размера команды, работающей над игрой. Что возымело серьезное и быстрое воздействие на развитие, по мере того, как наша существующая команда тратила время и ресурсы на обучение и планирование. Новый Zombie Pathfinding является хорошим примером того, что этот подход приносит результаты.
Некоторые примеры будущих главных изменений в результате этого нового фокуса:
Полностью обновленная система рендеринга (с учетом потенциальных модернизаций DX10 или DX11 , также порты ).
Правильная многопоточность / многоядерность серверов и, возможно, клиента.
Абсолютно новый животный И.И. (искусственный интеллект) , который идеально отражает поведение настоящих животных.
Переработанная система «действие», использующая колесо мыши.
Полный рефакторинг системы инвентаризации. Для пользователя изменения почти не заметны, в то время как более продвинутая система обеспечивает высокую производительность и малое количество ошибок.
История:
Зомби оказался одним из самых сложных для разработки компонентов игры. Когда мы разрабатывали игру мы поняли, что вcе то время что у нас было, мы должны были работать в рамках параметров ИИ. ИИ рассчитывается по принципу "посредством агента", с кэшированием таких вещей, как цели (общая целевая информация , и т.д. ... ) . В моде , это было снижено в пользу расчета видимости по принципу " посредством игрока" . Это означало, что зомби в моде были просто пешками , активированные движущимися вокруг игроками.
В дополнение к этим проблемам мы также столкнулись с проблемой противоречий в AI. Мы получили механизм запуска, таких действий, которые по идее не должны существовать, особенно в отношении интерьеров зданий. Мы попытались реорганизовать это, чтобы оставить изменения, но, как видно , они не оправдали наших ожиданий . В итоге мы решили, что было бы легче разработать новый подход с нуля.
Задача:
Есть много интересных решений, доступных для "поиска пути", но это довольно стандартные решения в видео игровой индустрии. Наша проблема не уникальна, но вот ситуация: наш мир очень большой и требует соответствующую точность.
Ответственная за это команда решила использовать навигационные сетки. Однако возникла серьезная проблема с генерацией этих сеток с почти двумя миллионами объектов на карте. Делать это вручную -не вариант. So a method was devised to split the world up into grids, and then raycast at a precise interval and generate chunks of navmesh. This is all done during the packing process and "baked” out into data that can be read by the server and client. This uses the wonderful approaches outlined in the open source navmesh project Recast and Detour.
Результаты:
Я говорил с Мартином Славковым, чтобы он помог изложить результат со скриншотами.
Была разработана небольшая программа, чтобы прочесть мир, загрузить все объекты, а затем создать путь через отслеживание миллиардов для расчета способности движения. Это дает большую точность в то время как работает на очень больших масштабах. Единое решение для поиска пути упрощает выполнение задачи.
Так же движок получит по необходимости возможность для загрузки частей "навмеши" (хз что это такое, мб объяснит кто). Это займет некоторый объем памяти (около 600 мб), но загружаться будут только необходимые объекты. Хотя, учитывая переход серверной части на 64-битную архитектуру, проблем с памятью скорее всего не будет.
Производительность может быть значительно увеличена. В данный момент команда пытается просчитать путь ИИ параллельным процессом на отдельном ядре. Функционал, требующийся для создания этого решения, скорее всего отразится на скорости разработки игры, но прирост производительности будет заметен.
Раньше для навигации И.И. использовались две разные системы. Внешняя занималась управлением навигацией между статичными и динамичными объектами, а внутренняя система -в зданиях. Дизайнерам нужно было вручную делать пути перемещения И.И. Нам пришлось отказаться от этой идеи, в связи с большими проблемами производительности.
Выше, на скриншоте, показан путь между двумя красными точками. Поскольку теперь система унифицирована, И.И. может находить наиболее эффективный и естественный путь, при этом практически не использую ресурсов, в сравнении со старой системой.
Отчет ведущего дизайнера, Криса Торчиа (остальные скрины в Imgur галереи)
С радостью сообщаю о грядущем огромном количестве нового контента в экспериментальной ветке. Не так давно была встреча пражской и братиславской студий, нам показали все, чем занимались и занимаются дизайнеры и аниматоры над новыми животными. У нас имеются свои прототипы животных, но вскоре мы заменим их на животных братиславской студии.
Появится самодельная оснастка для рыбной ловли и карп, которого игроки смогут поймать в водоемах. Так же созданы модели рыбного филе, которое вы в скором времени сможете приготовить. Все это буквально сделает переворот в игровом процессе. Кстати о животных. В Братиславе мы встретили Бига - местную офисную черепаху. Хм, это наталкивает меня на мысль…
Наш дизайнер персонажей продолжает пополнять ассортимент одежды, на этот раз новым полицейским жилетом большой вместительности и униформой "Орел”, наподобие ОМОНовской. Так же мы начали работу над униформой медиков, пожарников и заканчиваем работу над "Горкой”.
Кoстры, oхoта и будни дрoвoсека:
В прошлом патче мы решили не публиковать костры и охоту в их текущем состоянии. Мы предположили, что они в таком виде помешают геймплею, а не улучшат его. Сэкономленное время было использовано на улучшение геймплея, а так же на определение лучших способов его поддержки.
Новый экспериментальный билд даст вам представление о том, как все будет работать. При рубке дерева вы получаете поленья, а дерево, если дальше усердствовать, будет "израсходовано” и упадет. Сейчас чтобы срубить дерево нужно взять в руки топор и выбрать соответствующее действие колесом мыши. Это лучший пример того, почему мы хотим избавиться от нынешней системы действий. Вместо этого мы представляем себе, как игрок просто бьет по дереву топором и получает дрова. Но это пока планы на будущее.
Костры можно будет улучшать камнями, которые можно будет находить в каменистой местности или выбивать киркой из скал. Костры можно скрафтить из "набора для костра”, который создается из тряпок и растопки. Растопку можно будет собирать в лесу в виде палок. Все эти собирательные аспекты потребуют больше оптимизации в ходе работы над новой системой действий, но это очень воодушевляющие изменения, которые проложат путь к более сложным системам, как, например, выращивание растений.
Визит в братиславскую студию (все фото со встречи на Imgur)
Мы посетили нашу команду в Братиславе. У них есть ЧЕРЕПАХА!
Следующее обновление:
Учитывая наши текущие задачи, все подходит к тому, что в стабильной ветке мы будем выпускать обновления раз в месяц. На такой режим нас вдохновляет Prison Architect, у которого это получается очень неплохо. У нас нет конкретных дат для обновлений в экспериментальной ветке. Экспериментальные версии буду выходить лишь когда это будет необходимо в подготовке стабильной версии.
Помимо всего прочего, жизненно важно чтобы игроки осознали следующее:
Разные задачи решаются в разные сроки.
Приоритеты в разработке расставляются на основе требований и зависимостей, а не на стремлении вытянуть дизайн игры.
Планируемые даты выхода билдов это лишь наши намерения и ни в коем случае не являются абсолютными дедлайнами. Мы задержим и отложим выход билда если не будем уверены в его качестве.
Еженедельные девблоги более не планируются. Мы будем выпускать их так часто, как сможем, чтобы информировать о ходе разработки.
Послесловие:
Для нас это очень волнующий этап, так как мы закончили двухмесячный период крайне агрессивного роста. Мы расширили штат очень существенно, при этом сильно рискуя. Риск оправдывается и нам не терпится увидеть колоссальное влияние системы поиска пути и определения препятствий на впечатления от игры в DayZ.
Материал:
Источник: http://dayzalone.ru/ |