?

Log in

No account? Create an account

обратно | туда

У меня тут случилось гениальное прозрение. К сожалению, не на политические темы. Опять РПГ. И наверняка опять буду говорить прозой, и кто-то всё это до меня уже выдумал.

Впрочем, не факт, что сказанное можно использовать только в мирных, игровых целях. Формализация - вообще штука опасная...

Заранее извиняюсь перед теми, кто не владеет соответствующими понятиями. Некоторые простые вещи очень сложно объяснить коротко. Так что под катом будет заумь класа "шиза", предупреждаю сразу. И - сразу же окрысившись - не надо пенять мне за свежеизобретённые выражения типа изолуда или дум-окрестность С-точки. Как хочу, так и пишу. Лавры Лема покоя не дают. Кто хочет, может развивать выдвинутые здесь положения.

Итак, у нас есть игровое пространство. Это многомерное пространство, где каждому измерению - каждой оси - соответствует одно из изменяемых свойств одного из объектов или субъектов игры. Задачу выделения наиболее важных осей откладываю на полку "вторые сложные вопросы": там будет оптимизация по весам через переходы к "состояниям" того или иного объекта как суперпозициям его свойств. Например "дракон мёртв"="дракон не дышит"+"дракон не шевелится"+"дракон не пылкает огнём"+"не ворует принцесс". Но пока рассматриваем игровое пространство без этой оптимизации, то есть очень-очень-очень многомерное.

В этом пространстве можно найти как отдельные точки, так и области, соответствующие определённым состояниям Системы, каковым точкам и/или областям присваиваются метки "Старт" или "Финиш" (S и F). S-точкам соответствует состояние Системы в момент входа в неё Игрока, F-точкам соответствует состояние системы, в котором игра прекращается. Очевидно, что F-точки могут быть, в свою очередь, помечены как выигрышные или проигрышные (Fw или Fd) - герой убил дракона или наоборот; и то, и то гамовер, но с разными чувствами. Можно ввести такие понятия, как "подпространство побед" или "подпространство мёртвых героев".

Назовём Игрой последовательность состояний Системы от Старта к Финишу. В доселе описанном антураже для условий полной аналитичности действий Игрока и Системы это будет изолуда, точки которой будут определяться равнодействующей усилий Игрока по попаданию в Fw-точку или увеличению скорости смены состояний Системы, а также усилий Системы по приведению Игрока в Fd-точку (поражение Игрока) или приведению скорости смены состояний Системы к нулевой. В общем случае усилия Системы этими задачами не исчерпываются. В общем случае на решение любой из перечисленных задач Система может усилий совсем не расходовать.

Головоломка - (puzzle) - Игра, в которой Система не расходует усилий на приведение Игрока в Fd-точку (боёв нет, надо соображать, каким предметом на какой подействовать, чтобы перейти в следующую картинку).

Экшн - (action) - Игра, в которой Система не расходует усилий на торможение движения Игрока.

Естественно, надо говорить не об этих идеальных случаях, а о Puzzle-аспекте какой-то Игры и её Action-аспекте, которые как раз и определяются усилиями Системы, направленными на решение задачи торможения Игрока или его поражения.

Класс Игр, где А-аспект присутствует, но подчинён Р-аспекту, называется Квест. Класс Игр, где Р-аспект присутствует, но подчинён А-аспекту, называется РПГ. Чёткой границы у этих классов нет, в т.ч. и между собой. Важно: здесь играет роль именно соподчинение аспектов, а не просто их наличие. Есть игры, в которых наличие А-аспекта и Р-аспекта очевидно, но они не зависят друг от друга (решение головоломки на время - например, тетрис).

Пусть дополнительным условием в определении Игры являются заранее заданные набор или последовательность точек или областей в игровом пространстве (пространстве состояний Системы, напоминаю, а не просто видимом игровом мире), через которые Игра должна пройти при старте из любой S-точки до прибытия в любую Fw-точку. Этот набор или эта последовательность будут называться Сюжетом Игры, а точки или области, ему принадлежащие, назову сюжетными точками или областями (С-точками или С-областями). Простейший пример С-точки - переход на следующий уровень в аркаде.

Таким образом Игра из одной изолуды становится суммой нескольких - между С-точками. Соответствие Игры и Сюжета можно представить как соответствие множеств изолуд и С-точек, то есть И-графом, где С-точки или С-области будут вершинами, а изолуды - рёбрами. Почему не просто графом? Потому, что изолуды в игровом пространстве в общем случае не есть прямые - об их форме я буду говорить ниже.

Сами понимаете, простор для теоретизирования и вывода правил построения Сюжетов необъятнейший - достаточно заняться проецированием определений теории графов на вышеописанную систему. Всё это на полке со "вторыми сложными вопросами". Я ограничусь выводом Алгоритма Героя - под Героем в данном случае понимается эффектор Игрока, определённый по правилам и на языке Системы и способный изменять её состояние. Фигурка на экране, размахивающая мечом.

Если Игроку известен Сюжет (координаты С-точек в игровом пространстве), то его задача сводится к построению гамильтоновой цепи минимальной длины. Короче, провести наикратчайшую дорожку от Старта к Финишу (Fw) через все необходимые С-точки. Это решается алгоритмом Прима. В случае наличия нескольких Героев, ведомых одним или несколькими Игроками, может быть использован алгоритм Краскала (короче, это стандартные алгоритмы трассировки в проектировании радиоэлектронной аппаратуры - довольно простые и легко программируемые).

Если Игроку Сюжет неизвестен, то дополнительно появляется задача определения С-точек или С-областей и их последовательности. Если Игроку доступно всё игровое пространство, то задача определения С-точек или С-областей сводится к построению множества изолуд из различных S-точек и возможно более точному определению точки их пересечения или области, где расстояние между ними минимально (все дороги ведут в Чёрный Замок), исключая при этом из рассмотрения Fd-точки (различные формы прямого и опосредованного суицида Героя) . Принимая определённые таким образом точки или области за С-точки или С-области, строим изолуды уже от них и определяем следующие С-точки и области. Можно так же воспользоваться методом ветвей и границ. После определения всех С-точек строим гамильтонову цепь.

Предыдущее в радость Мастерам и тестерам. Однако в общем случае информация по игровому пространству Игроку доступна далеко не вся (и слава Богу, а то не идеальный Игрок, а человек и играть бы не стал). В игровом пространстве присутствует своего рода fog of war ("туман войны", FOW), конфигурация которого определяется возможностями Героя по получению информации об игровом пространстве и возможностями Игрока по оценке этой информации.

В общем случае, FOW влияет на точность оценки координат предполагаемой С-точки или С-области, то есть сходящиеся изолуды уходят в FOW до того, как становится ясно, где именно они сходятся и сходятся ли вообще. Кроме того, состояние Системы из-за действий Героя меняется - идёт перемещение по некоторой траектории в игровом пространстве, в общем случае не изолуде.

Отсюда Алгоритм Героя, в предположении, что Герой находится в S-точке, будет выглядеть следующим образом.

1. Сбор доступной информации Героем.
2. Оценка собранной информации Игроком.
3. Проектирование множества изолуд (то есть умозрительное представление Игроком некоторого множества развитий событий).
4. Оценка их сходимости к некоторой точке или области игрового пространства.
5. Выбор наилучшей по сходимости точки или области (B-точки) при исключении из рассмотрения Fd-точек.
6. Если сходимость к B-точке всё равно хуже заранее заданной, то -
6.1. Определение точки в свободном от FOW игровом пространстве (I-точки), пребывая на которой, Герой может в наибольшей степени уменьшить уровень FOW в В-точке (получить информацию о ней).
6.2. Принятие целью I-точки.
7. Если сходимость к B-точке лучше или соответствует заданной, то принятие целью B-точки.
8. Определение траектории к текущей цели (то есть последовательности действий Героя по такому изменению Системы, которое приведёт к нужному состоянию - B-точке или I-точке, смотря что выбрали).
9. Движение по определённой траектории на заранее заданную дискрету (то есть исполнение некоторой части определённой в предыдущем пункте последовательности действий).
10. Если Герой не находится в Fw-точке, то вернуться на п.1.

Очень простой пример. Герой заявляется в город, где правит ацкий колдун, сидящий в архетипическом Чёрном Замке и делающий оттуда горожанам всякие пакости. Примем, что Игра заключается уничтожением колдуна. Итак, Герой начинает действовать. Он собирает сведения и приходит к выводу, что при большинстве вообразимых развитий событий колдуна придётся навещать на рабочем месте, т.е. в замке - определена B-точка. Однако Герой ни черта не знает ни об уязвимости Замка, ни о страже, ни о возможностях колдуна, то есть FOW B-точку застит качественно. Тогда Герой начинает думать, а где бы чего разузнать. Ага, в кабаке собираются местные, обмениваются историями - I-точка. Герой идёт в кабак, причём по дороге то и дело проверяется на предмет слежки (см. п. 9). Если слежка есть, то этот факт надо оценить, добавить в копилку и, возможно, пересмотреть тактику. Если нет, то Герой доходит до I-точки, где подают пиво.

Предположим, в I-точке Герою втолковывают, что колдуна можно уделать только мечом-кладенцом. Хоп! П.1, 2, 3 - и прежняя B-точка меняется - ибо какой смысл лезть в Замок без кладенца, на убой? Появляется новая B-точка - меч-кладенец. Где, неизвестно, FOW мешает. Стало быть, определяем I-точку, то есть ищем Бабу-Ягу, которая всё это разъяснит... И так далее.

Разумеется, успех Алгоритма Героя сильно зависит от таких характеристик, как способности Игрока по оценке информации, дисциплины воображения Игрока (умения генерировать умозрительные представления развития событий), а также приемлемых для Игрока порога сходимости изолуд и величины дискреты.

Естественно, любая Система, в которой идёт Игра, конечна; то есть число объектов, субъектов и их свойств конечно; следовательно, мерность игрового пространства тоже конечна. Равно как и реализующие Систему мощности тоже ограничены. Отсюда приходим к упрощениям - например, колдун должен быть непременно убит, а не парализован, не пострижен в монахи, не отправлен в длительный творческий отпуск. Далее - колдун должен быть убит мечом-кладенцом, а не отравлен и не затрахан до смерти. Следовательно, должен быть честный бой. Сумма упрощений: когда Герой появляется в окрестностях колдуна, тот его атакует - с разговорами или без, но атакует. Если Герой оказался без меча, колдун, подчиняющийся Сюжету, всё равно его атакует и убивает - вместо Fw-точки получаем Fd-точку, но Финиш всё равно достигнут.

Эти упрощения в общем можно описать как некую окрестность С-точки, при попадании в которую изолуда (или просто траектория состояний Системы) начинает стремиться к С-точке, становящейся, таким образом, аттрактором. Получается что-то вроде воронки. Кто ходил в Morrowind, тот знает - в дикой местности герой оказывается возле монстра, привязанного к какому-то квадрату карты - тот его атакует. Герой, если не в силах драться, убегает, монстр возвращается на своё место. Вот тут те же дела, только в игровом пространстве, а не в изображении игрового мира. Описанную окрестность С-точки (грубо - "радиус воронки") я назову дум-окрестностью. Реализовываться эта дум-окрестность может самыми разными средствами - вовсе не обязательно боем.

На полку со "вторыми сложными вопросами" уходят вопросы пересечения дум-окрестностей разных С-точек и поведения Игры в таких областях; вопросы зависимости силы притяжения внутри дум-окрестности от расстояния до С-точки и т.п.

Отмечу так же, что в игровом пространстве могут быть расположены и аттракторы, не относящиеся к С-точкам - заранее установленные или случайным образом генерящиеся (субквесты, например, или атаки случайных грызунов при транзите Героя из локации в локацию).

Ну, и в заключение немного о форме изолуд и траекторий в игровом пространстве вообще. Как и было сказано выше, они определяются усилиями Игрока (и возможностями героя), а также усилиями Системы. В общем, следование от точки к точке в игровом пространстве можно представить как преодоление потенциального барьера некоторой высоты. Важно - барьер может быть и завязан на С-точку и её дум-окрестность, а может быть и независим от неё. Преодоление барьера может исполняться двумя способами: уничтожение барьера или обход его. Первый путь чаще встречается в РПГ, второй в Квестах.

Для уничтожения барьера Игрок обычно должен произвести преобразование энергии в условиях данной Системы, направленное на выгодное изменение свойств Героя - например, набрать экспы и повысить свой уровень с повышением характеристик, или насшибать денег и прикупить мощное снаряжение. Чаще всего эта задача решается упорядоченным сканированием точек в окрестностях потенциального барьера на предмет действия там условий преобразования (проще говоря, поиск оплачиваемой экспой или деньгами работы). Отсюда можно прикинуть примерную форму траектории. Можно рассматривать "раскачку" Героя перед барьером как отдельный Сюжет низшего уровня по отношению к Сюжету Игры и применить к его генерации и прохождению рассуждения, приведённые выше.

Алгоритм обхода барьера также сводится к сканированию точек вокруг него с целью определения его формы в игровом пространстве. Задача эта может усложняться фактом действия в дум-окрестности, то есть неверный выбор порядка сканирования может спровоцировать движение Системы к аттрактору, когда Игрок ещё не готов к этому.

Вот, пожалуй, и всё на сегодня. Возможно, займусь ещё описанием роли Мастера как части Системы. А в общем, подход богатый и весьма формализуемый. А то задолбали, извините, новые компьютерные РПГ на сюжетах экономить. Нету вдохновения, давайте алгеброй.

Comments

( Всего-то 19 — добавить )
john_petrov
21 фев, 2006 08:06 (UTC)
Ниасилил патамушта стихи (с).

А девиз "Нету вдохновения, давайте алгеброй!" - классный. Точный и универсальный.
(Анонимно)
22 апр, 2013 08:54 (UTC)
Xorauguynaaxiet
tiepikeBame xaikalitag (http://vikawieier.com) Pancecoberown [url=http://uillumaror.com]iziananatt[/url] hathobcharf http://gusannghor.com Tuplequeehafe
darkhon
21 фев, 2006 08:22 (UTC)
Ну, буквов много, но в принципе - правильно. Хотя пригодно для компьютерных игр, а вот живьем в AD&D - и НЕ по модулю! - все куда сложнее. Сюжета как такового (типа самого главного) нет, а есть куча как дум-точек, так и тех, в которых думать надо.
Да и вообще, при нормальной команде ситуация "король плачется, что принцессу дракон украл и предлагает коня или полцарства тому, кто найдет" вовсе не обязвательно сводится к "найти драгона и загубить животину, принцессу вернуть на место".
Причем помимо "у нас и так дел хватает", возможны варианты вплоть до оптовой поставки принцесс дракону.
17ur
21 фев, 2006 08:31 (UTC)
Естественно, чем свободнее мир, чем больше вариантов. Но это всего лишь повышает размерность задачи (мерность игрового пространства), а принципы и подходы остаются теми же.
sash_aka_cacx
21 фев, 2006 08:23 (UTC)
ППКС. Принял на вооружение.
hoopoe
21 фев, 2006 08:50 (UTC)
РПГ ацтой, рулят Сапер и Пасьянс
17ur
21 фев, 2006 09:00 (UTC)
За диггерохульство Вас пристрелят... :-)
hoopoe
21 фев, 2006 09:06 (UTC)
Повинен смерти! Забыл про игру всех времен и народов...
ippow
21 фев, 2006 12:10 (UTC)
Ну, теория колебаний и системный анализ рулят везде, однозначно :-)
17ur
21 фев, 2006 12:52 (UTC)
Я и говорю - проза.:-)
ono_it
21 фев, 2006 13:59 (UTC)
Поэтическое описание конечных автоматов
Студенты не заснут...
17ur
21 фев, 2006 16:13 (UTC)
Ну, это у Вас методичка в проекции на конкретику - причём явно не исчерпывает всего, что сказано в головном посте (навскидку: И-графы с циклами). Кстати, не возражаете, если я придумаю как-нибудь какой-нибудь сеттинг и подарю Вам на вычитку? А о Мастере я всё равно отпишусь, и не надейтесь. Конечно, с учётом только что прочтённого. :-)
mithgol
21 фев, 2006 21:13 (UTC)
«Случайные грызуны» — гениальный эпитет!
17ur
22 фев, 2006 05:37 (UTC)
Critters - вполне конвенционный термин для компьютерных оппонентов в экшне или РПГ. Случайные - метод генерации. Так что ничего особо гениального.
p_gusev
25 фев, 2006 18:02 (UTC)
Слишком поздно
Хороший анализ, но RPG уже не приносят былых прибылей. Сейчас все деньги утекают в сектор платных MMORPG. Причина проста: человек платит за коробочку не более 50-70 долларов, а месяц игры может стоить 10-20 гринов. В этом классе доминируют 2 диаметрально противоположных подхода:

1. "Рельсы". Герои движутся в мире со строгими правилами и границами по цепочке квестов. Если квесты не делать, то героя прокачать трудно. Требования к умению думать минимальны. Игра для всех.

Пример: World of Warcraft.

3. "Абсолютная свобода". Четко заданы только границы мира и правила игры, остальное остается на откуп игрокам. Безбашенный PvP, неограниченные возможности для развития героя и совершенствования скилла.

Пример: EVE online.

Классические десктопные RPG может спасти только дивная атмосфера игры, но для этого девелоперу надо рисковать, идти ва-банк, а это мало кто любит. Вот и клонируют по которому разу Диаблу, Фоллаут, Арканум, Героев и т.п.
mjr_blayne
1 мар, 2006 10:15 (UTC)
Герой зачастую стремится найти не максимально краткий путь, а самый приятный. Вы, наверное, из тех, кто сразу бежит тырить Power Armor в Navarro?
(Анонимно)
8 мар, 2013 23:05 (UTC)
Азарт – наш профиль
[url=http://azart-online.net/igrovye-avtomaty-na-dengi.html]игра с выводом денег[/url]
[url=http://azart-online.net/igrovie-avtomaty/island-2-ostrov.html]игровые автоматы скачать бесплатно[/url]


Все знают, что практически каждый человек – существо, которому как воздух нужны острые ощущения и патовые ситуации. И для многие азартные игры становятся как раз тем самым источником гормона азарта в организме. Вот поэтому игровые автоматы пользуются очень неплохой популярностью у игроманов всяких сословий, образований и материального достатка. Кто-то идет за азартом в казино, кому-то достаточно услуг обыкновенного уличного автомата, а те, у кого нет огромного количества свободного времени отдают свою любовь онлайн-играм. Сегодня для того, чтобы поиграть в новую игру гарантированно не нужно отправляться в игровой салон на дальнем конце города и тратить ваши заработанные тяжким трудом денежные знаки. azart-online.net осуществляет свою деятельность для тех, кто ценит время и деньги, но все так же жаждет волнительных ощущений от игры. На сайте онлайн-игр azart-online.net вы сможете отыскать максимально известные на сегодня онлайн-игры, от наивных и «детских» до вполне серьезных партий, например, в покер. Добро пожаловать на сайт azart-online.net!

[url=http://azart-online.net/igrovye-avtomaty-na-dengi.html]игры на деньги онлайн[/url]
[url=http://azart-online.net/casino/]бесплатное казино[/url]
(Анонимно)
16 апр, 2013 15:47 (UTC)
Xorauguynadugxh
tiepikeBame xaikalitag (http://vikawieier.com) Pancecoberown [url=http://uillumaror.com]iziananatt[/url] hathobcharf http://gusannghor.com Tuplequeehafe
( Всего-то 19 — добавить )

Latest Month

Ноябрь 2019
Вс Пн Вт Ср Чт Пт Сб
     12
3456789
10111213141516
17181920212223
24252627282930
Разработано LiveJournal.com
Designed by Lizzy Enger