Совсем недавно наткнулся на выступление Кевина Левина на GDC 2014 года «Narrative Lego».
В своем выступлении Кен рассказывал о придуманной в стенах студии Irrational Games системе, создающей интерактивное повествование в играх со множеством персонажей и второстепенных сюжетов, основываясь только лишь на действиях игрока, в противовес более традиционным техникам линейного повествования.
Несмотря на то, что все известные игры, вышедшие из-под руки Кена полностью линейны, а сюжет в них подается в строго определенном сценаристами порядке, идеи, предложенные им, звучат очень интересно. В этом посте будет моя вольная интерпретация его выступления вперемешку с собственными мыслями. ОЧЕНЬ ДЛИННЮЩИЙ ПОСТ — даже продолжение есть, будьте осторожны.
Кто не знает:
Кен Левин (англ. Ken Levine, родился 1 сентября 1966 года) — американский геймдизайнер, творческий директор и один из основателей компании Irrational Games. Левин известен прежде всего как создатель компьютерных игр BioShock, Thief: The Dark Project и System Shock 2.
Само выступление можно посмотреть на официальном канале GDC:
Линейные повествования несовершенны
Начал свое выступление Кен с краткой критики традиционного линейного повествования и его реализаций в играх.
Линейное повествование — древнейшая форма рассказанной истории, отлично зарекомендовала себя в литературе, театре и кино. Однако в играх начинают проявляться некоторые ее недостатки.
В частности, в линейном повествовании очень непросто реализовать сложное ветвление сюжетов. Каждый раз, когда мы хотим предоставить игроку возможность влиять на ход сюжета, мы создаем вилку альтернативных вариантов, каждый из которых приходится прописывать отдельно и полностью. Это значит, что хоть разнообразные сюжеты и реализуемы, их количество будет строго ограничено количеством таких веток, а интерактивность такого повествования будет заключена лишь в серии ключевых выборов.
Самый вопиющий недостаток классических линейных историй в играх: в большинстве случаев они игнорируют главную особенность игры как художественной формы — интерактивность. Части истории не способны влиять друг на друга сами по себе, история не реагирует на поведение игрока на низком уровне. Короче говоря,
Линейное повествование не является игровой механикой
Кроме этих, в классических сюжетах есть еще несколько недостатков:
- они дороги в производстве;
- множества концовок все еще зависят от крайне ограниченного набора состояний;
- уже состоявшийся сюжет невозможно дополнить — его можно только продолжить;
- существует множество примеров хорошей реализации линейного сюжета в игре, однако играм уже давно нужен новый подход.
Процедурная генерация — тупик
Примеров удачной и популярной процедурной генерации квестов, сюжетов и персонажей не так уж и много. Главным образом, это связано с тем, что почти в каждом из таких примеров работу сценариста целиком перекладывают на ИИ.
Кен не рассматривал в своей речи такие игры, как Dwarf Fortress или Ancient Domains of Mystery, вероятно, потому, что хоть сюжеты с персонажами и генерируются там на ходу, и даже сами становятся игровой механикой, их выразительные качества серьезно уступают классическим сюжетам, написанным живыми авторами.
Проблема кроется в традиционном подходе к написанию ИИ:
- технический подход часто направлен на симуляцию человека, а не персонажа;
- симулировать живого человека даже в рамках игры — чрезвычайно трудная задача, мало у кого это получается достаточно хорошо;
- по-настоящему мощные реализации в наше время почти недостижимы;
- излишняя амбициозность проекта может привести к параличу.
Еще меньше успешных примеров гармоничного сочетания процедурной генерации с профессионально-написанными сценариями, несмотря на то, что такой подход вполне может быть самым перспективным.
Разумеется, выбрав его, разработчик рискует столкнуться с рядом технических сложностей, однако, это не должно стать существенной преградой. Превращение написанного автором-человеком сценария в игровую механику — процесс очень похожий на становление другой важной механики в индустрии — физических симуляций.
Совершенно очевидно, что в играх далеко не сразу появилась продвинутая физика, какую мы видим сейчас: когда-то игры не умели симулировать поведение жидкостей, частиц или тканей. Все началось с простых экспериментов по столкновению твердых коробок в виртуальном пространстве — этого тогда уже было вполне достаточно, чтобы изумить игрока. Разумеется, все видели поведение подобных объектов в реальном мире и представляли себе все несовершенство ранних технологий, но это понимание не мешало людям получать удовольствие от игры.
И развиваясь, мало-помалу наращивая достоверность и выразительное богатство, игровая физика достигла того уровня развития, на котором пребывает сейчас. Возможно, подобный подход поможет и в создании интерактивных игровых сюжетов.
Новая методология
Таким образом, можно попробовать суммировать положительные качества как традиционных линейных, так и процедурных повествований, чтобы представить себе некую супер-крутую систему, в которой:
- нарративные элементы взаимодействуют друг с другом;
- новые нарративные элементы порождаются непосредственно действиями игрока;
- процесс появления нового сюжета и триггеры, которые его запускают абсолютно прозрачны по отношению к игроку.
Стоит отметить, что все, о чем здесь идет речь — не больше, чем мысленный эксперимент Кевина. Он сам не занимался техническими реализациями того, что предлагает, и Irrational Games на момент выступления тоже ни над чем подобным не работали.
Основные понятия
Левин вводит несколько новых понятий, начиная с особого класса NPC, имеющего в повествовании особый вес:
- Звезда (star)
- Персонаж, важный для истории и способный на нее влиять. У каждой звезды есть страсть.
- Страсть (passion)
- Нечто, глубоко волнующее звезду, на что игрок может повлиять. Таким образом, страсть становится неким параметром звезды, зависящем от поведения игрока, и влияющим на поведение звезды.
- Порог (threshold)
- Некая степень влияния игрока на страсть звезды, по достижению которой звезда начинает вести себя по-другому.
- Макрострасть (macro-passion)
- Шкала, обозначающее общее отношение звезды к действиям игрока. Является некоей функцией от страстей.
- Дроны (drones)
- Обычные NPC, которые, не имея собственных страстей, разделяют макрострасть своей звезды. Толпа, следующая за лидером
Таким образом, можно получить нашу типичную фентезийную звезду:
А вокруг нашего Семена (ну раз он уж вождь) вращается толпа орков поменьше, которые, в среднем, настроены по отношению к игроку так же, как и он.
Игра регистрирует действия игрока, способные повлиять на страсти звезды и соответствующим образом обновляет их состояние. Должно получится нечто похожее на все известные кармические системы (например, как в Star Wars: KoTOR), только теперь шкала живет не в главном герое, а NPC, и у каждого их может быть несколько.
Таким образом, мы можем подружиться с Семеном, если зарубим много женоподобных эльфов и достаточно активно поможем ему, например в строительстве его храма. А еще мы можем его очень обидеть, подружившись с эльфами, или, например, поделив на 0 его любимую Людочку. Все зависит от того, начислят ли наши действия достаточно положительных или отрицательных очков в шкалу его страсти, чтобы шкала его макрострасти преодолела определенный порог, и Семен стал бы относиться к нам по-другому.
Относясь к нам хорошо, Семен может давать бонусы: например, будучи вождем, он может познакомить нас с другими звездами или даже подарить шмотку. Если же мы его сильно разозлим, но прикажет дронам нас убить, например.
В своей речи Кен Левин показал небольшую сводную таблицу ключевых действий игрока, возможных поощрений и наказаний со стороны персонажей:
Достижения | Награды | Наказания |
---|---|---|
убить X | изменение цен | изменение цен |
спасти X | помощь в бою | засада |
собрать X | ресурсы | эмбарго |
создать X | баффы | дебаффы |
найти X | слухи (о новой страсти) | нападение на собственность |
уничтожить X | одолжить эквип | враждебные дроны |
поклониться X | отдать эквип | слухи (о новой страсти) |
разозлить X | поддержка дронами | |
ублажить X | появление новых звезд | |
мини-игры | влияние на враждебных звезд | |
другие ачивки |