Сышышь ты, выходи сюда,
поговорим !

DAYZ (RU)

Новий виклик або як зомбі шлях шукали

Цей девблог присвячується опису прогресу в роботі над найбільш проблемною для нас області - пошуку шляху зомбі.

Пріоритети і темпи розробки

Наші основні зусилля були сконцентровані на формуванні основи як для команди, так і для архітектури гри, від якої залежить якість результатів розробки в майбутньому. Тому нам треба було значно збільшити розмір команди розробників, що негативно відбилося на темпах розробки. Нинішнім співробітникам довелося шукати час і ресурси на навчання нових кадрів і планування. Нова система пошуку шляху буде хорошою ілюстрацією результативності цього нового підходу.

Ще кілька прикладів потенційних переваг нового підходу:

  • Повністю нова система рендеринга (що дозволяє перейти на DX10 або DX11, а так же перенести гру).
  • Повноцінна підтримка мультіпоточностью і багатоядерності для серверів і можливо клієнтів.
  • Повністю новий ІІ тварин, що відображає їх реальні повадки.
  • Перероблена система взаємодії, яка замінить стару, де вибір дій виконувався колесом миші.
  • Повна переробка інвентарю. Для гравців вона може і не буде помітна, але дасть потенційну можливість впроваджувати більш складні системи з більшою продуктивністю і меншою кількістю багів.

Історія

Зомбі заслужено опинилися найважчим аспектом розробки DayZ. За час роботи над грою ми усвідомили - щоб укластися в наші тимчасові рамки, нам необхідно працювати з іноземними інвестиціями зашитим в движок спочатку. У движку ІІ прораховується методом "для кожного агента", з частковим кешуванням таких речей, як цілі (інформація про загальні цілі і т.п.). У моді ми від кешування позбулися, щоб зробити прорахунок помітності та інформації про цілі за методом "для кожного гравця". Тобто зомбі в моді були лише пішаками, які активувалися наближенням гравця.

Крім проблем з поведінкою, у ІІ були також проблеми з пошуком шляху і визначенням перешкод. Ми змушували движок робити те, для чого він ніколи не розроблявся, особливо щодо інтер'єрів будівель. Ми намагалися розробити нові способи впровадження наших напрацювань, але, погравши в нинішній білд, не важко здогадатися, що очікування наші зазнали краху. Врешті-решт ми вирішили, що простіше буде зробити все з нуля.

виклик кинуто

Існує безліч цікавих рішень проблеми пошуку шляху. У ігрострой це типова задача. Проблема наша була унікальною, але ситуація унікальна: наш ігровий світ дуже великий, але вимагає такої ж точності, як і невеликий.

Відповідальна за цю область команда вибрала метод побудови навігаційних сіток (Навмешей). Серйозну проблему тепер представляла генерація навмешей для майже 2 мільйонів об'єктів на карті. Вручну - не варіант. Тому ми придумали метод розбиття світу на частини сітки і наступної генерації частини навмеша рейкастом. Все це відбувається на етапі запаковування і результат "запікається" в область даних, які зможе прочитати і сервер і клієнт. Нами використовувалися прекрасні напрацювання з "опенсорс" проектів по навмешам: Recast і Detour .

результати

Я звернувся до Мартіна Славкові, відповідального за це програмісту, з проханням проілюструвати результати якимись скриншотами.

Генерація Навмешей ( всі скріни генерації на Imgur )

Була розроблена невелика програма, яка аналізує ігровий світ, завантажує всі об'єкти, прораховує можливі шляхи переміщення мільярдами ліній і визначає, де можна переміщатися на відкритій місцевості і в будівлях. Процес дає більшу точність - як зовні, так і всередині, не дивлячись на огром світу. Наявність уніфікованість рішення для пошуку шляху робить інтеграцію набагато простіше.

Використання в грі ( повна галерея скроневої навмеша в дії на Imgur )

Потім движок отримує можливість завантажувати частини навмешей за потребою. Це займає трохи пам'яті (приблизно 600 Мб понад норму максимум), але завантажуються тільки необхідні частини. Втім, з огляду на перехід серверної частини на 64-бітну архітектуру, виникнення будь-яких проблем з пам'яттю малоймовірно.

Збільшення продуктивності може стати дуже значним. Зараз команда намагається зробити прорахунок шляху ІІ паралельним процесом на окремому ядрі. Весь новий функціонал, який потрібно для розробки цього рішення, швидше за все позначиться на темпах розробки гри, але приріст продуктивності очікується вагомий.

Раніше для навігації ІІ використовувалося дві різні системи. Зовнішня система управляла навігацією між статичними і динамічними об'єктами, а внутрішня - всередині будівель. Дизайнерам доводилося вручну створювати шляху переміщення ІІ. Від цієї ідеї довелося відмовитися, так як виникали величезні проблеми з продуктивністю при великій кількості агентів.

На скріншоті вище ви можете бачити шлях між двома червоними крапками. Так як система тепер уніфікована, ІІ може знаходити більш ефективний і природний шлях, використовуючи лише крихітну частку ресурсів, у порівнянні з попередньою системою.

Звіт провідного дизайнера, Кріса стирчить ( галерея скроневої нового контенту на Imgur )

Звіт провідного дизайнера, Кріса стирчить (   галерея скроневої нового контенту на Imgur   )

Радий повідомити про майбутню купі нового контенту на експериментальних серверах. Нещодавно у нас була перша зустріч празької і братиславській студій і нам з перших рук показали чим займаються дизайнери і аніматори нових тварин. У нас є власні базові прототипи тварин, які ми потім замінимо на тварин від наших братиславських дизайнерів, а вони виконали неймовірну роботу!

З'явиться саморобна оснащення для рибного лову і короп, якого гравці зможуть зловити в водоймах. Так само створені моделі рибного філе, яке ви незабаром зможете приготувати. Все це буквально зробить переворот в ігровому процесі. До речі про тварин. У Братиславі ми зустріли Біга - місцеву офісну черепаху. Хм, це наштовхує мене на думку ...

Хм, це наштовхує мене на думку

Наш дизайнер персонажів продовжує поповнювати асортимент одягу, на цей раз новим поліцейським жилетом великої місткості і уніформою "Орел", на зразок омоновскій. Так само ми почали роботу над уніформою медиків, пожежників і закінчуємо роботу над "Гіркою".

Кoстри, oхoта і будні дрoвoсека

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

Новий експериментальний білд дасть вам уявлення про те, як все буде працювати. При рубці дерева ви отримуєте поліна, а дерево, якщо далі старатися, буде "витрачено" і впаде. Зараз щоб зрубати дерево потрібно взяти в руки сокиру і вибрати відповідну дію колесом миші. Це найкращий приклад того, чому ми хочемо позбутися нинішньої системи дій. Замість цього ми уявляємо собі, як гравець просто б'є по дереву сокирою і отримує дрова. Але це поки що плани на майбутнє.

Багаття можна буде покращувати камінням, які можна буде знаходити в кам'янистій місцевості або вибивати киркою зі скель. Багаття можна скрафтіть з "набору для багаття", який створюється з ганчірок і розпалювання. Розпалювання можна буде збирати в лісі у вигляді палиць. Всі ці збірні аспекти зажадають більше оптимізації в ході роботи над новою системою дій, але це дуже надихаючі зміни, які прокладуть шлях до більш складних систем, як, наприклад, вирощування рослин.

Візит в Братіславську студію ( всі фото із зустрічі на Imgur )

Ми відвідали нашу команду в Братиславі. У них є ЧЕРЕПАХА!

наступне оновлення

З огляду на наші поточні завдання, все підходить до того, що в стабільній гілці ми будемо випускати оновлення раз на місяць. На такий режим нас надихає Prison Architect, у якого це виходить дуже непогано. У нас немає конкретних дат для оновлень в експериментальній гілці. Експериментальні версії буду виходити лише коли це буде необхідно в підготовці стабільної версії.

Крім усього іншого, життєво важливо щоб гравці усвідомили наступне:

  • Різні завдання вирішуються в різні терміни.
  • Пріоритети в розробці розставляються на основі вимог і залежностей, а не на прагненні витягнути дизайн гри.
  • Плановані дати виходу білдів це лише наші наміри і ні в якому разі не є абсолютними дедлайнами. Ми затримаємо і відкладемо вихід билда якщо не будемо впевнені в його якості.
  • Щотижневі девблогі більш не плануються. Ми будемо випускати їх так часто, як зможемо, щоб інформувати про хід розробки.

Післямова

Для нас це дуже хвилюючий етап, так як ми закінчили двомісячний період вкрай агресивного зростання. Ми розширили штат дуже істотно, при цьому сильно ризикуючи. Ризик виправдовується і нам не терпиться побачити колосальний вплив системи пошуку шляху і визначення перешкод на враження від гри в DayZ.

Спасибі Andrakann за допомогу в перекладі і редакції.

(Джерело: dayzdev )