Представляємо вам інтерв'ю з Юбером Корріво, який розповість про створення ігрового оточення з урахуванням сюжету і достоїнств Dawn Engine, оптимізації гри і важливих нюансах, які впливають на її сприйняття.
вступ
З програмами для розробки комп'ютерних ігор я познайомився в 1995 році, коли мені було 14 років. Тоді я встановив на комп'ютер Lightwave 3D, Truespace і 3DS третьої версії. Я захоплювався тривимірною графікою «газонокосильщика». Пам'ятаю, як малював літаки і різні ландшафти, використовуючи лише трикутники. Для мене відкрився цілий світ трикутників.
У 18 я вже створював тривимірні моделі будівель, а трохи пізніше почалася моя кар'єра в ігровій індустрії. Я влаштувався на роботу в Microids, де працював над Post Mortem і Syberia II, був головним художником Still Life, хоча у всіх цих іграх не було по-справжньому тривимірної графіки. Пізніше я перейшов в Gameloft, де працював над різними проектами для мобільних платформ, брав участь в розробці Rainbow Six Vegas і Prince of Persia (2008) від Ubisoft, і нарешті осів в Eidos Montreal, розробляючи Deus Ex: Human Revolution.
Deus Ex: Mankind Divided
Deus Ex - гра про вибори і наслідки. Розробляючи ігровий світ, ми не могли дозволити гравцеві дістатися до мети без пригод. Відправившись виконувати чергове завдання, він повинен уважно вивчити навколишній простір і спробувати різні варіанти. Найважливіше для мене було надати ігровому світу відчуття цілісності і завершеності, об'єднати сценарій з візуальним розповіддю. Ви читаєте електронні листи або записні книжки, і у вас в голові поступово вимальовується картина того, що відбувається, ви переймаєтеся духом всесвіту. Я думаю, в цьому ми перевершили багатьох.
Мені дуже сподобався світ Deus Ex і я можу задовбати кого завгодно міркуваннями про майбутнє кібернетичних поліпшень. Коли я вперше приступив до роботи над Deus Ex, мені довелося як слід перейнятися його всесвіту. На мій погляд, це обов'язковий ритуал для кожного, хто хоче знайти себе в ігровій індустрії. Головний сценарист Мері ДеМарль порадила мені кілька книг різних авторів, після чого я разом проковтнув всю бібліографію Вільяма Гібсона. Я прочитав практично все книги Рея Курцвейла і безліч творів інших авторів з єдиною метою - полюбити світ Deus Ex. Що мені прекрасно вдалося: з усіх ігор, над якими я коли-небудь працював, ця серія сподобалася мені найбільше.
Виробничий процес
Для початку ми повинні визначитися зі способами проходження завдання ... що досить складно, враховуючи той факт, що два різних гравця ніколи не пройдуть Deus Ex однаково. Втім, ми схильні вважати, що більшість гравців піде по шляху найменшого опору. Тобто у нас вийде щось на кшталт: «Дженсен приземляється на даху, спускається на кілька поверхів, знаходить в кабінеті банкіра компромат, а потім залишає будівлю через парковку». Зрозуміло, це дуже спрощений приклад. Для нас в першу чергу важливо визначитися з об'ємом і тематичною спрямованістю художнього оформлення. У наведеному раніше прикладі нам будуть потрібні одна ігрова область під дах, одна під офіс і одна під парковку. Це сама загальна інформація, від якої вже можна відштовхуватися.
На цьому етапі ми починаємо закладати основи майбутнього проекту. Розробники рівнів створюють макет, який визначає можливі способи проходження і розвитку місії, в той час як художники займаються тим, що ми називаємо «прототипом карти»: шматочком, за яким можна судити про загальну тематичної спрямованості її художнього оформлення. Прототип карти створюється на основі концептуальних малюнків. Якщо результат нас влаштовує, ми застосовуємо цей стиль до всієї карті.
Наступний крок - підготовка альфа-версії. Ми заповнюємо необхідними модулями кожну тематичну групу. На даному етапі дах вже повинна виглядати як дах, а офіс як офіс. Щоб оточення не здавалося надто порожнім і стерильним, розробники рівнів розставляють різні об'єкти, що допомагають гравцеві сконцентруватися на важливих деталях (порожні простору притягують погляд, відволікаючи від усього іншого).
Потім ми починаємо надавати ігровим областям більш «обжитий» і правдоподібний вигляд. На цьому ж етапі проводиться тонка настройка основного оточення. Спочатку ми намагаємося якомога швидше підготувати архітектуру карти для альфа-тестування і лише потім приступаємо до розстановки об'єктів і поділу ігрових просторів.
Наступний етап можна назвати свого роду бета-фазою. Ми переходимо до більш дрібним деталям. Наприклад, вирішуємо, чи варто робити доступ до парковці з каналізації і чи варто звести ще один офісний поверх, що відокремлює гравця від важливої докази. Намагаючись дотримуватися встановленого графіка, ми щосили прагнемо зробити ігрове оточення різноманітним. Якщо нам не вистачає часу, може вийти щось досить нудне ... але ми намагаємося до цього не доводити.
Тепер саме час для усунення дрібних недоліків. У цей момент все наша увага звернена на розповідь. Уже зараз гравець може бродити по картах, розмовляти з персонажами і знайомитися з сюжетом, але нам ще належить надати ігровим областям неповторний і впізнаваний вигляд. Ми збираємо відгуки сценаристів, розробників додаткових завдань і вислуховуємо думку творчого директора. Думка розробників додаткових завдань для нас є особливо цінним, адже якщо чесно, ми не знаємо, чим вони там займаються і що потрібно зробити для того, щоб вплести їх роботу в загальне оповідання. Ми даємо їм достатньо часу, але при цьому практично не взаємодіємо один з одним.
Наприклад, на створення всіх вулиць і будівель Праги пішло шість тижнів. А потім ми два роки перебудовували все і вся, становили додаткові вимоги до проектування рівнів, основного сюжету і додаткових завдань. І ще кілька місяців знадобилося, коли гра набула кінцівку.
Ігровий движок Dawn Engine
Основна перевага Dawn Engine - це здатність одночасно обробляти практично необмежену кількість ігрових ресурсів. Хоча обмеження, звичайно є, і в якийсь момент ми з ними зіткнулися, але тим не менш, це відмінний движок для масштабних проектів. Крім того, ресурсооріентірованность движка розширила можливості художників, за часів розробки Human Revolution багато в чому уповати на програмістів. У нас навіть є окрема команда, відповідальна за роботу з «розумними об'єктами» - тими, з якими ви взаємодієте в процесі гри. В її ведення потрапляють практично всі ігрові об'єкти, від зброї і всіх пов'язаних з ним механік до роботів, машин і книг, при попаданні в які в боки летять шматки паперу.
Прага, основне місце дії Mankind Divided, наповнена безліччю різних деталей, що стало можливим лише завдяки Dawn Engine.
Всі частини ігрового світу так чи інакше пов'язані з ігровим процесом. Ви розробили оточення, що дозволяє вибрати власний шлях - скритність, груба сила або щось середнє. Наскільки складно проектувати оточення з урахуванням різних варіантів проходження?
Цим займаються розробники і художники оточення. Розробники відповідають за сценарії і характерну для серії Deus Ex варіативність проходження. Вони ж планують загальну структуру рівнів. Художники створюють моделі і текстури, намагаючись найбільш ефективно використовувати пам'ять і потужності відеокарти, а також надати спроектованим структурам правдоподібний вигляд. Розробники оточення бачать в рівні майданчик, яка повинна розважати гравця і розвивати сюжет, в той час як для нас, художників, важливіше відобразити суть ігрового світу Deus Ex. Час від часу це призводить до конфліктів між художниками і розробниками, в процесі яких ми намагаємося виробити компромісне рішення, яке влаштовує обидві команди.
Ось, наприклад, підхід до системи укриттів і переключення з виду від першої особи до виду від третьої. У проектуванні оточення Mankind Divided величезна кількість нюансів, яких не було в інших проектах, над якими я працював. Уявіть собі метровий куб вільного простору, який повинен бути у кожного кута, дивана, столу або машини. Уявіть, як художникам створювати модель машини, у якій такий куб повинен бути як спереду, так і ззаду. А адже це обов'язкова умова для можливості використовувати об'єкт як укриття. Але ми впоралися з цим.
Думаю, вентиляційні ходи знайомі кожному фанату серії Deus Ex. Ми так і не зуміли зробити їх архітектурно правдоподібними. Проектувальники оточення постійно використовували їх як альтернативний шлях з пункту А в пункт Б, однак логічно обґрунтувати їх наявність в кожному конкретному випадку нам виявилося не під силу. Щоб хоч якось відійти від шаблонних вентиляційних ходів, ми скористалися отворами в міжкімнатних перегородках і технічними просторами для прокладки кабелів.
Розроблені вами оточення в будь-який час доби виглядають відмінно: хоч вдень, хоч вночі. Як вам це вдалося?
Ключову роль тут відіграє, звичайно ж, освітлення. Однак не варто забувати про ресурсооріентірованності движка Dawn Engine, що дозволяє задати властивості і сценарій поведінки будь-якого об'єкта на карті. В даному випадку відбувається перевірка рівності змінної, наприклад, 2 для ночі або 3 для дощової погоди, і запуск присвоєного цьому значенню сценарію обробки об'єктів. Завдяки Dawn Engine, ми можемо на льоту змінювати параметри скла або, наприклад, під час дощу застосувати до землі ефект сильної вологості. Для створення деяких з таких ефектів потрібні були чималі зусилля, але ми впоралися. Зрештою все упирається в терміни розробки.
Ігрові сцени наповнені безліччю ледь помітних деталей і об'єктів. Це унікальний в своєму роді рівень ручної опрацювання ігрового світу. А скільки там «пасхалок»! Чи не могли б ви розповісти, як вам вдалося створити настільки правдоподібні ландшафти?
Саме цьому аспекту ми приділили особливу увагу, в тому числі і в розробці Human Revolution. З тих пір технології зробили крок вперед і тепер подібний рівень деталізації доступний практично всім ... тому нам довелося як слід постаратися. Окремим рядком я б виділив Місто Голем, що ввібрав в себе безліч художніх образів жанру кіберпанк. Приступивши до його розробки, ми попросили головного художника Мішеля Лано розмістити в ігровій області якомога більше різних проводів і кабелів. Чим більше тим краще. Як виявилося, він великий фанат проводів і кабелів, так що розкидав він їх дійсно від душі. Думаю, стільки немає ні в одній іншій грі. * Сміється *
Крім того, ми витратили чимало часу на опрацювання сюжетних елементів оточення, адже саме вони відповідають за атмосферность ігрового світу. Те, що на етапі альфа-розробки здається звичайною ігровий областю, в кінці кінців може перетворитися в дитячий сад посеред нетрів технологічної антиутопії. Ви помітили ляльок, зроблених дітьми з вішалок?
Світ Deus Ex дивно опрацьований, в ньому так багато рівнів і ігрових областей - і все це без завантажувальних екранів! Як вам вдалося настільки оптимізувати ігрове оточення? Mankind Divided відмінно працює на будь-якій платформі і при цьому виглядає чудово.
Дякувати за це варто технічних фахівців і всіх тих, хто відповідав за движок Dawn Engine. Втім, і без нашої допомоги не обійшлося. Використання унікальних об'єктів з такою деталізацією в масштабах тісному, в общем-то, Праги, швидко призводить до нестачі пам'яті. Якби ми обпалювали (запікали) хоча б деякі ресурси гри на основі моделей з високою роздільною здатністю, ви б ніколи не змогли б в неї пограти. (Прим. Пер. - Baking (дослівно «випал, запікання») - процес консолідації системи даних в спрощеної і постійній формі. У моделюванні використовується, наприклад, для перетворення декількох текстур сцени в одну текстуру або для «запікання» гри світла і тіні нема на картинку, а на текстуру, що дозволяє істотно економити продуктивні ресурси і час на обробку моделей). Все тому, що для полігональної сітки з повною картою розгортки (яка робиться для запікання) потрібна велика текстура, що покриває всю поверхню створюваного об'єкта. В бойовиках від першої особи вимоги до якості текстур ще вище, адже тут гравець буде досить часто розглядати їх в упор, вони будуть прямо перед очима персонажа, чого можна уникнути в іграх від третьої особи. Аж вже якщо ми говоримо про бойовику, де можна поставити кілька холодильників на дах автомобіля і застрибнути на висоту чотирьох метрів або й зовсім вхопитися за коник даху за допомогою телепортації ... Не можна заощадити ні на чому, адже гравець може забратися куди завгодно.
Тому для всіх наших об'єктів або, принаймні, всіх, що побільше табуретки, ми робили дві розгортки. Одна складалася з безлічі острівців, кожен з яких відображав деталі конкретної частини полігональної сітки. Зазвичай це були всякі механічні деталі. Ми розтягували їх наскільки можна. В якомусь сенсі ми стискаємо при цьому текстуру вручну, розтягуючи її частина і укладаючи в розгортку на дуже тонкому, детальному рівні. На це йде багато часу, та ще й доводиться вводити додаткові вершини. Крім першої розгортки ми використовували і другу, яка створювалася звичайним способом, більш звично і природно, щоб покрити ту саму механічну основу текстурами матеріалів і плитковими текстурами. Природно, що ми намагалися при цьому для кожної текстури втиснути якомога більше текстур в канал RGB. Для цього ми скорочуються текстури в градаціях сірого в кожному каналі з використанням формату BC1 або виключали синій канал з карти нормалей текстури, виділяючи його для інших цілей.
Цей житловий барак «побудований» Мішелем Лануа, дизайнером рівнів, який відповідав за опрацювання Міста Голем. Його можна розглядати в якості гарного прикладу того, як ми «оптимізували» текстуру за допомогою розгортки. Всі механічні деталі розміщені на наборі текстур, представленому у вигляді файлу з відбитками. Ми розтягуємо розгортку UV1 для кожної деталі, для якої тільки можна.
Приклад крайніх заходів, яких ми намагаємося уникати через времязатратності - карта нормалей, яку ми використовували для всіх архітектурних об'єктів в Хенгша (Deus Ex: Human Revolution). Таке стиснення ми більше не використовуємо, але текстура демонструє, як ми в принципі розтягуємо деталі моделей. Ця карта нормалей використовувалася для більшої частини будівель в нижніх кварталах Хенгша.
Подивіться на малюнок "stretched_uv_process" - ми взяли шматочок загальної текстури Хенгша і «розтягнули» його, додавши додаткових вершин, причому досить істотно. Таким чином порівняно невеликий набір текстур можна застосовувати для великої кількості різноманітних об'єктів навіть в дуже високій роздільній здатності. Ось тільки доводиться жертвувати часом - його на відпрацювання і «обрізання» геометрії (такі елементи на малюнку відзначені тонкими сірими лініями) йде дуже багато. Уявіть, що було б, якби той барак з Міста Голема ми моделювали з помощ ма цього методу. Полігональний сіток НЕ напасешся.
Ми відмовилися від таких крайнощів, до яких вдавалися в HR, і більше не використовуємо описаний вище метод для будівель, але все ще застосовуємо його для інших об'єктів: зброї, машин, роботів, меблів і взагалі всього крупніше табуретки, за винятком об'єктів, на яких мало окремих деталей (наприклад шматок скелі або залізобетонні блок). Текстура з відбитками є дуже хороший приклад того, як зменшити обсяг роботи, що вимагається для створення полігональних сіток, шляхом збереження великих шаблонів механічних деталей з подальшим «розтягуванням» груп деталей замість того, щоб робити це знову і знову з однієї і тієї ж деталлю.
Для зображення скошених країв ми, по суті, розривали нормаль вершини (Прим. Пер. - це вектор, асоційований з вершиною, призначений для заміни справжньої геометричної нормалі до поверхні. Зазвичай нормаль обчислюється як нормалізоване середнє нормалей поверхні граней об'єкта, що містять вершину). У нас не вистачало обсягів пам'яті для того, щоб проектувати нормаль вершини на текстуру, тому ми розробили інструмент, за допомогою якого можна було задати, для яких вершин потрібні скошені нормалі, причому цю інформацію він назавжди зберігав в пам'яті для будь-якої заданої полігональної сітки, так що навіть при істотній зміні сітки інформація про нормаль вершин зберігалася. Це важливо, адже розрив нормалей вершин - справа ризикована, тому що будь-яка зміна сітки надає на нормалі дуже великий вплив. Так що ми просто зберігали поверхні, які потрібно було скошувати, і автоматично обробляли нормалі заново кожен раз при експорті. На це йшло більше пам'яті, відведеної на обробку вершин, зате ми суттєво економили ресурси, не розміщуючи всю цю інформацію безпосередньо в текстури.
Всі ці обмеження не поширювалися, звичайно ж, на моделі персонажів. Ми намагалися виділити достатньо пам'яті для того, щоб художники за моделями могли працювати прямо з запеченої скульптурою, не вдаючись до описаних вище хитрощів.
Обговорити статтю на форумі
Наскільки складно проектувати оточення з урахуванням різних варіантів проходження?Як вам це вдалося?
Чи не могли б ви розповісти, як вам вдалося створити настільки правдоподібні ландшафти?
Ви помітили ляльок, зроблених дітьми з вішалок?
Як вам вдалося настільки оптимізувати ігрове оточення?