Интервью GSC Game World
|
Интервью GSC Game World | |
| Дата публикации |
|
| Интервьюер | gamedev.ru |
| Собеседники | Андрей Прохоров, Олесь Шишковцов, Антон Большаков, Алексей Сытянов |
2003
Прохоров Андрей — руководитель проекта, главный художник
Олесь Шишковцов — главный программист
Антон Большаков — мэнеджер проекта
Алексей Сытянов — геймдизайнер
+ плюс большая часть команды в рамках своей специализации
Игроки попадут в мир индустриальной катастрофы, поражающей своей масштабностью. Все локации, которого соединены в одну глобальную карту. Мир, наполненный необъяснимыми явлениями с искаженными законами физики, населенный жуткими созданиями, мутированными существами. Игрок сможет выбирать любой маршрут, и не будет ограничен в своих путешествиях по Зоне. Его ждут свободные путешествия, исследования зоны, сражения с монстрами, выполнение как сгенерированными, так и сюжетными событиями, а также раскрытие главной тайны Зоны. Тревожная атмосфера Зоны будет держать игрока в страхе. Никто не будет уверен в том, что ждет в следующих пяти метрах. Встретит ли аномалию, затаившихся в тени мутантов или скрывающееся нечто, еще не известное никому ранее. И одним из самых опасных и непредсказуемых противников в Зоне будет человек - сталкер.
Предыстория S.T.A.L.K.E.R. выстроена, как гипотеза реальных событий произошедших в восьмидесятые годы прошлого века. Тогда в Чернобыле функционировала огромная антенна, излучение которой было признано некоторыми специалистами, как психоактивное. На некоторых наших фотографиях, сделанных во время поездки в Чернобыль, конструкция антенны видна на горизонте. По неподтвержденным слухам, проводился многолетний эксперимент по психотропному воздействию на психику людей. Вокруг подобных экспериментов вертится сюжет Сталкера - здесь есть место и теории заговора, и противостояние спецслужб. В нашей игре мы как бы додумываем то, что и в самом деле могло произойти. Это история о пост-ядерном мире со своими законами и персонажами. Это клубок из переплетенных психологических и физических опасностей - психотропное оружие, зомбированные люди, телепатия, телекинез, существа-мутанты, смертельные аномальные зоны.
Для нас геймплей Сталкера - это новый этап в развитии компьютерных игр, это слияние жанров 3D Action и RPG, и попытка создания практически настоящей виртуальной реальности с населяющими ее "живыми" персонажами. Мир, где Зона живет не зависимо от действий игрока, совершают свои подвиги персонажи игры и происходят свои трагедии. Это наша попытка создать новый жанр игр, что-то вроде живой РПГ. Это позволит открыть невероятную степень свободы при прохождении игры и высочайший реплайабилити с изменчивой сюжетной линией.
Первоначальные цели игрока будут заключаться в исследовании Зоны и сборе артефактов, которые можно будет продать или обменять. Игрок попадает в огромный и опасный мир Зоны, о котором в начале практически ничего не будет знать. Большая составляющая геймплея заключается в том, что игроку предстоит исследовать Зону - добывать информацию, которая позволит ему выживать, обходить смертельные ловушки Зоны и справляться с ее созданиями. Изучение собранных крох информации приоткроет масштабную картину Второй Чернобыльской катастрофы.
|
Для многих может показаться неожиданным, что мы называем Сталкер RPG, и не даем игрокам растущих характеристик и уровней. Мы сделали это специально, у нас есть основание на такое решение. Мы хотим, чтобы игрок повышал свое реальное мастерство, выживал в мире благодаря своим способностям, а не умениям виртуального героя. Наше мнение такое - ролевой игра становится тогда, когда у игрока есть возможность выбрать себе свою роль в нашем опасном мире.
В игре большая часть игрового процесса это выживание (survival) игрока, для нас это, прежде всего, выживание в Зоне, тщательное планирование экипировки, осторожное перемещение, нежелание вступать в схватки с сильными противниками, и первые спутники в дороге - голод, раны и смерть. В Зоне дефицит боеприпасов, каждый патрон на счету. Сплошь и рядом, подкрадывание, наблюдение, опасливые перебежки. Любой сталкер знает, что бродячие стаи легче обойти, чем перестрелять. Сталкер не коммандос, он выживает, а не выжигает. Например, в местах концентраций аномалий вообще, страшно дышать, и неосторожное необдуманное движение может привести к мгновенной смерти. Сталкер нуждается в отдыхе и пище. Без отдыха сталкер может потерять сознание, а без еды умереть от голода. Одно из интересных нововведений, будет возможность, есть мясо мелких животных и птиц (вороны и крысы).
Игрок зарабатывает деньги, выполняя задания подпольных торговцев, заказы научных лагерей. Продавая аномальные образований за деньги игрок покупает аппаратуру, оружие и защитную экипировку, которая позволяет игроку проникать в те области, которые ранее были недоступны. Также игрок может торговать с другими сталкерами, которых встретит внутри Зоны. Новое оборудование позволит игроку пройти через новые смертельные аномалии, получив, таким образом, доступ к новым локациям. В Зоне практически все покупается и продается. Попадая в Зону зеленым новичком и имея лишь пистолет, игроку предстоит долгий путь исследований и приключений, выживание в которых зависят от вооруженности и экипировки игрока, на которые ему в свою очередь необходимы деньги.
Зона полна редкими и уникальными вещами, за которыми будут охотится сталкеры, ученые и военные. Добыв ученым определенные образцы или информацию, можно будет получить прототипы уникального оружия или оборудования.
Компания GSC Game World находится в Киеве, городе, расположенном в 100 км от места крупнейшей техногенной катастрофы в истории человечества - Чернобыльской атомной станции. Имея ТАКОЕ место под боком, трудно было удержаться от идеи сделать по этим событиям игру. Ну и, скрывать нечего, творчество Стругацких, нами очень любимое, сыграло такую же важную роль в формировании идеи игры.
Идея Сталкера и Зоны, да еще и в реально существующем месте, как нам кажется, будет иметь успех на фоне поголовной идеи борьбы с террористами и инопланетянами в 3D шутерах, порядком набившей оскомину.
Оригинального в игре будет много. Действительно много. И главное, чем мы можем гордиться, это не фотореализм графики и продвинутая физика - нет, это - Система Симуляции Жизни. Она представляет собой иерахическую двухуровневую систему одновременного просчета всех игровых событий, ОДНОВРЕМЕННО на ВСЕХ уровнях Зоны.
Не страшно, но как то муторно, что-ли. Припять, конечно, произвела самое тягостное впечатление. Сама станция и подходы к ней в идеальном порядке, все вычищено, выдраено. Деревни засыпаны белым песочком. Лес вырос заново. А вот брошенный город производит очень гнетущее впечатление.
Эти наши две поездки дали нам, ни много, ни мало, а материал для всей игры! Строения, текстуры, атмосфера.
Слишком общий вопрос. Мы делаем все для того, чтобы добиться реалистичности в игре. Наша задача создать реальный игровой мир, когда максимум его деталей будут ассоциироваться у игрока с действительностью - будь то комната здания, течение времени, реакция объектов на воздействия или поведение АИ. Психологический эффект от этого будет гораздо сильнее, нежели от мультяшной игры, созданной по технологии cell-shading. Особенно это важно для нас, так как особую роль в игре играет атмосфера.
Если имеется ввиду оружие, оборудование, машины, артефакты и т.д., то, например, в Зоне игрок сможет найти и использовать более 40 видов оружия. Путешествия по Зоне предполагаются длительными, поэтому и объектов, которые игрок может найти и использовать будет также очень большое количество. Чем ценнее предмет, тем реже он будет встречаться :) Будут и уникальные экземпляры, которые стоят времени, необходимого на их поиск :)
|
Если имеются ввиду динамические объекты в сцене, то практически все объекты в сцене будут динамическими. Мы разрабатываем собственную мощную физическую библиотеку, которая дает нам большие возможности в игре. Объекты имеют реальные физические характеристики, правильно рассчитываются взаимодействия, смоделированы взрывные волны, осколочные взрывы, разрушаемые объекты, составные физические объекты и многое другое. Опять же динамическими объектами может пользоваться как игрок, так и противники. На этом основан, например, телекинез.
Специфичные физиологические процессы у персонажей ;) ...ну и загрузка уровней - в жизни ее нет :)
1.4 ГГц, 256Мб, 128Мб видео... хотя точные данные будут известны ближе к концу проекта :)
|
На сегодняшний день игра работает на карточках Ge-Force 2 (или аналоги) и выше. Однако позже мы можем принять решение отказаться от поддержки Ge-Force 2 и минимальным требованием станет Ge-Force 3 (или аналоги), так как получается, что мы ведем два рендера, что достаточно утомительно и трудоемко. Решение об увеличении минимальных системных требований мы будем принимать, основываясь на статистике, которую собирает издатель. Если к моменту релиза процент карт класса Ge-Force 2 будет незначительным - мы откажемся от их поддержки, если значительный - поддержка останется.
Для DirectX 9 поколения видео-карт мы пишем новый рендер. Это наиболее технологичная разработка на сегодняшний день, которая является следующим поколением технологий после Doom3. Играя в Сталкер в версии DX 9 рэндера Вы увидите, как будут выглядеть другие 3D игры где-то с 2005 года. Основные нововведения это полностью динамического освещение и мягкие тени, которые отбрасываются от всего на всё, а значит и отказ от лайтмапов и вертексного освещения, сверхвысокая детализация - до 3 000 000 полигонов в кадре, фотореалистичность графики и кинематографичность за счет ряда новых эффектов.
Ограничения количества полигонов на уровень практически нет. Главное, чтобы хватило оперативной памяти на сервере, где считаются уровни. На 32-bit-ных процессоров у нас стоит по 2 Гб. Сейчас с появлением Opteron - ов мы увеличим этот объем вдвое.
В кадре с DX 7,8 рендером можно видеть 300 тыс. - 1.2 мил. Полигонов. С DX9 рендером - до 3-х миллионов.
По контрольным точкам.
И то и другое и... третье :) Для геометрии которая не меняется - используются статические буфера, для динамических моделей - динамические буфера. В принципе сцена побита на кусочки которые сразу загружаются в видеопамять. Динамические буфера используются только для скелетных моделей и всяких там партиклов.
Да пока и не вставал вопрос, чтобы написать свой толковый менеджер видеопамяти. Не всегда, но есть другие рычаги, например понизить качество.
А так, низкоуровневое управление - через DirectX. Высокоуровневое - писали сами.
|
| Демонстрация проекции видео на статические и динамические объекты. |
DirectX 9
Мы используем практически все новые возможности DX9, даже чуть больше, так как разрабатываем отдельный рендер под DX 9. Список фич Вы все знаете по спецификациям DX9 - HLSL, occlusion culling... повторять их, я думаю, нет смысла. Поэтому расскажу, например, как мы используем Pixel Shader 2.0 +. Несколько из пиксельных шейдеров реально превышали спецификации ps_2_0 по количеству инструкций. Кроме этого, особенно легко было упереться в dependant-read limit (4 по ps_2_0). Для получения "идеального" PCF просто необходимо было использовать градиентные инструкции (ddx/ddy), которые доступны только в ps_2_x - железе. В общем, базового ps_2_0 нам явно не хватало :) Вот если-бы еще иметь и "dynamic flow control", причем с так называемым "early-out"... :)
Мы используем повсеместно Bump Mapping в DX9 рэндере, где большое количество динамических источников света, что делает использование Bump Mapping эффективным. В DX8 рендере мы практически не используем Bump Mapping, так как при отсутствии динамических источников света Bump Mapping-а не видно, да и качество наших текстур делает его использование не особо нужным.
Хотя ограничений нет - у нас еще большой задел по полигонам, который мы часто заполняем объектами детализации. Но стараемся подходить к моделлингу без фанатизма, руководствуясь принципом рациональности. В среднем на модель получается 7000 полигонов.
Эффект зернистость, изменение насыщенности и цвета, искажения изображения, "motion" эффекты и много других. С помощью построцесс эффектов художники и геймдизайнеры могут создавать потрясающие атмосферу в игре, кинематографичность и игровые фишки. Поэтому мы активно используем их. Есть ещё много идей по постпроцесс эффектам, особенно в новом рендере.
|
| Кинематографический эффект с зернистостью. |
Все просто. Программисты выносят параметры в ресурсный текстовый файл. Меняем параметры - видим результат.
|
| Обратите внимание, что спекуляра нет на месте выбитой плитки. Хорошо виден эффект Glow от пола дальней комнаты. |
В основном нет. Но на тех объектах уровней, которые не требуют высококачественного освещения и правильных теней - используем вертексное. Тем самым уменьшаем кол-во лайт-мап.
Тени от подвижных объектов - это проекционные текстуры меняющие свою интенсивность в зависимости от плотности лайт-маповой тени.
Уже реализованы осадки (дождь). В ближайшее время закончим течение времени, смену дня и ночи, другие погодные эффекты, изменение погоды. Снега нет за ненадобностью.
Наверное, больше всего - физика. Плюс большое количество текстур. Вообще, любой аспект игры в отдельности не представляет какой либо сложности для производительности. Проблема, что в игре этого всего очень много - полигонов, персонажей, объектов, физики, текстур и т.д. Все это очень скрупулезно приходится обрабатывать, оптимизировать и т.д.
Мы с самого начала ориентировались на то, что игра будет совмещать открытые и закрытые пространства, поэтому вся математика сразу же разрабатывалась под эту задачу - выбирались самые удачные алгоритмы и решения. Поэтому у нас не возникло здесь трудностей. Наверное, главным здесь было правильно сделать ставку на концепцию движка, которой мы руководствуемся при разработке X-Ray Engine, а не скажем на BSP, который был весьма популярным в 1999 году.
Сектора и порталы задаются левелдизайнерами. В то время как PVS + окклудеры — динамические.
|
5000 полигонов на 1 куб метр - других ограничений нет.
Лоды на ландшафте и моделях делаются движком автоматически, используя алгоритм Sliding Window VIPM with Hugue's Hoppe QEM. Лоды для растительности автоматически генерятся в редакторе в 6-ти проекциях, а в самой игре происходит автоматическая подмена модели растения на спрайт с нужной проекцией.
Ограничений нет. В редакторе автоматически генерятся несколько проекций деревьев для LOD-ов. Дальние деревья переключаются в спрайты.
Модели травы и других детальных объектов (до 64 типов на уровень) правильно освещаются, появляются динамически в любом задаваемом радиусе. Появление - масштабированием модели. Все детальные объекты задаются в редакторе уровней.
Мы используем смешанное текстурирование: комбинация базовой текстуры с одним слоем detail map + врезанные оттекстуренные участки, подогнанные под базовую текстуру.
У нас есть редакторы уровней, шейдеров, партиклов и персонажей. Но моделлинг изначально делается в обычных 3d пакетах. После чего мы экспортируем модели в соответствующий редактор и делаем необходимые операции. Например, в редакторе уровней расставляется освещение, детальные объекты, деревья, физические объекты, монстры, аномалии и все другие игровые объекты. В редакторе уровней вскоре появиться и под-редактор сложных физических объектов.
Лучший SDK для Light Wave. Плагины разработанны для 3dMax, Maya, Light Wave.
|
| Демонстрация физики: машина, сбивающая множество нагромождённых объектов. |
Физика смерти, ударные волны, гравитационные аномалии (изменение вектора гравитации), повреждения от двигающихся физических объектов, честная физика автомашин (рессоры, двери, руль) и многое др... Это общая система, которая оперирует жесткими, полу-жесткими телами и разнообразными Joint-ами.
Физику не покажешь на скриншотах. Через неделю выйдет наш Е3-ый ролик, где можно будет посмотреть некоторые возможности физики.
Сложность в определении понятия инверсной кинематики. По большому счету, это придуманное определение, которое обозначает сильно упрощенную и обрезанную физику. У нас честная физика. В принципе, такие упрощенные настройки для модели можно сделать в физическом движке.
Физика смерти у нас полностью честная - когда человек падает вниз и чудом :) цепляется стопой за ступеньку лестницы - он будет висеть пока стопа не будет выбита из зацепления. При попадании учитывается импульс пули или взрывной волны и места, куда она попала, модель при падении будет честно взаимодействовать со всей геометрией. Можно взять труп за ногу и потащить его за собой. В стопке ящиков, можно взять нижний, потащить его и все ящики будут сдвигаться по разному с учетом трения и других сил. Можно приводить еще много примеров возможностей физики, хотя конечно это надо видеть :)
Если видеокарта поддерживает вершинные шейдеры - используем их. В остальных случаях все делаем на процессоре с помощью SSE / 3Dnow! / x86 FPU
В персонаже в среднем 50 костей. 2 костям может принадлежать вертекс.
Да, мы используем анимации для человекоподобных персонажей, созданные с помощью Motion Capture. Естественно с рядом изменений и дополнений. Все не человекоподобные монстры сделаны естественно "ручками".
Талантливый аниматор естественно может сделать анимацию не хуже чем анимация, которая была сделана с помощью Motion Capture. У обоих способов создания анимации есть свои плюсы и минусы. И в зависимости от проекта, задач, где будет использована анимация, наличия/отсутствия хороших аниматоров и т.д. нужно выбирать либо один, либо другой способ.
Такая возможность у нас есть, но так как Сталкер не построен на скриптовой технологии, а использует симуляцию жизни, то мест где можно ее применить достаточно не много. Мы используем лицевую анимацию везде, где она необходима.
AI персонажи "слышат", "видят" и в каждый момент времени проводят оценку вероятности победы, учитывающие многие факторы, как то: "мое оружие"-"оружие противника", кол-во патронов, кол-во союзников и врагов, состояние здоровья "мое"-"противника" и т.д. На основании этого персонажи могут атаковать или панически бежать, уклоняться от боя или преследовать и т.д. Плюс к этому компьютерные противники реализуют честный алгоритм поиска врага, основанный на поиске наиболее благоприятных мест укрытий.
Хотим отметить тот факт, что игрок не является центром вселенной в этой игре. Он всего лишь один из персонажей. Те же сталкеры - NPC умеют все то, что может игрок, они равные противники и так же как он выполняют задания, общаются, торгуют, сражаются. Животные и мутанты также имеют свои собственные цели в мире Зоны, зоны обитания, повадки, созданий с которыми они уживаются и или сражаются. Весь мир Зоны - живой. Это стало возможным благодаря разработанной нами Системе Симуляции Жизни. Ее разработка и была самым сложным моментом.
Предполагалась динамическая загрузка уровней в процессе игры. Мы от нее отказались. Т.е. справились, можно сказать, блестяще :)
6 программистов, 6 левелдизайнеров, 4 моделлера-текстурщика, 3 аниматора, 2 гейм-дизайнера, 1 сценарист, 1 звукорежисер.
Всем. Трудно выделить.
Программисты общаются между собой посредством цифр 0 и 1. С остальными обычным языком. Под пиво получается лучше :). Художники приблизительно так : "Блин, Саня, когда ты сделаешь ту фигню в редакторе?!.. я жы тебя уже давно прошу!!"... Начальство нами гордится СИЛЬНО... Гы-ы :)
Если серьезно, то система формализованная и скучная, но эффективная :). Проектом руководит - руководитель проекта, художниками - главный художник, программистами - главный программист (фактически их двое), геймдизайнерами - главный геймдизайнер. Вся работа ведется по плану. Есть планы на этапы - альфа, бэты :, на месяц план и на каждую неделю. В понедельник - собрание, в пятницу приемка работы. Всем кто успевает по плану - премия, всем кто нет :. %№?#. Пока все успевают :)
Да, с одним моделлером-текстурщиком мы работаем дистанционно... Пожалуй, это единственное, кем может работать удаленный сотрудник.
Настоящим - УСПЕШНЫХ проектов. Будущим - попутного ветра в... :)
|
Источники
- ↑ "GSC Game World. S.T.A.L.K.E.R. Oblivion Lost." 13.06.2003 Архивировано 15.11.2025








