система мечты

Поскольку все, кто обещал на МРИ вести «блог разработчика», своих обещаний не сдержали, буду считать, что я за них отдуваюсь. Для начала несколько тезисов, которыми я руководствуюсь относительно систем.
1) Система состоит из модуля генерации персонажей и модуля разрешения конфликтов/задач. Первый предоставляет числа, которыми оперирует второй, они не обязаны быть чем-то связаны и решают разные задачи.
2) Какие задачи должен выполнять модуль генерации? Ну, в идеале, он должен быть интуитивно понятен, не включать в себя сложной математики, но вместе с тем обладать встроенными механизмами защиты от мини-максинга, избыточной оптимизации и всего такого прочего. Еще, в идеале, он должен мешать генерить нежизнеспособные билды, если они возможны. по-хорошему, последняя задача решается пакетной генережкой. То, чем я обладаю сейчас, хорошо справляется с минимаксингом, но сложен, включает в себя всяческие числа фиббоначчи и так далее.
3) Чего я хочу от модуля разрешения задач/конфликтов? в первую очередь мне требуется плавно меняющаяся детализация. Я хочу иметь возможность рассматривать любую ситуацию с высоты птичьего полета или под микроскопом, как сцену или как атомарные действия. Пока что мне видится только один метод решения этой задачи — многоступенчатые навыки с увеличивающейся специализацией. Бой->атака->оружие->фехтование->клинки. Я останавливаюсь на той ступени, на которой мне нужно, могу сделать встречную проверку навыка «бой» обоих сторон, если мне не важно, чем именно и как стороны собираются пользоваться в бою, а могу поднять детализацию до уровня типов используемых маневров и вооружения. Тут в дело вступает математика. Диапазон значений, которые я получаю из чарлиста, должен соответствовать тому диапазону, который я получаю на кубах. Если идти в лоб, то числа будут расти по мере того, как мы подключаем дополнительные уровни скиллов и поэтому разная детализация будет требовать разных бросков, это не очень красиво и я пока думаю над тем, как сделать так, чтобы числа были примерно одними и теми же, вне зависимости от того, какой уровень детализации мы берем.

В процессе размышлений появились две сырые идеи, правда, скорее всего, обе не подойдут, хотя и могут быть использованы где-то еще. Первая — генерация по тэгам. Напоминает FUDGE и ризус. Персонаж описан набором ключевых слов, его эффективность в некотором действии равна количеству ключевых слов, аффилированных к действию. Тэги действий, тэги параметров, тэги зон, тэги предметов. Бой+кулаки+трактир дают +3 эффективность в драке на кулаках в трактире. Но помимо драки тэг «трактир» применяется вообще ко всем действиям в трактире. Недостатки — одноранговость всех тэгов уменьшает вариабельность, и диапазон получающихся чисел невелик. Сейчас думаю над тем, чтобы вводить прегенеренный список тэгов, их взаимосвязи, и ранжирование, чтобы были тэги типа «бой+3». (Приятель, услышав эту идею, предложил индюшатину, в которой даже бросков нет. Тебе требуется Х аффилированных к проблеме тэгов, чтобы решить ее, ты можешь либо притягивать за уши недостающие тэги, руководствуясь rule of cool, либо заявками пытаться изменить ситуацию так, чтобы повысить эффективность. Например, заманить врага на свалку, тэгом которой обладаешь, или навязать ему дуэль на гаубицах.)
Вторая — написать систему, в которой вместо списка скиллов, параметров, знаний и трейтов будут вписаны, как обьекты «скилл», «параметр», «знание», «трейт». Каждый из этих обьектов ведет себя строго конкретным образом в системе. Ну там «для проверки скилла бросьте ХдХ + показатель скилла против сложности». Игрок сам решает, что будет для него скиллом, что знанием, а что трейтом. Возможно, решает на ходу, в процессе игры. Ну типа «я хочу воспользоваться тэгом город, как знанием, для того, чтобы». Эта идея совсем сырая, пока что понятия не имею, что смогу из нее выжать.

Собственно, по вышесказанному могу добавить еще кое-что. Не нужно бояться в процессе разработки выкопать велосипед. Задача — не сделать новую систему, задача — сделать удобную. И порой бывает проще написать ее самому, чем лопатить кучу уже созданного. Кроме того, зачастую, размышление над уже изобретенной вещью с нуля может подать неожиданную идею или заставить по новой посмотреть на уже сделанное, лучше его понять.

З.Ы. Чувствую себя Ванталой на ниве написания систем, вероятно, если бы я постил все те идеи, которые порой я выбрасываю из своей головы в никуда, по причине их полной бесполезности, то моя слава могла бы поспорить с его славой.

21 комментарий

avatar
Вторая — написать систему, в которой вместо списка скиллов, параметров, знаний и трейтов будут вписаны, как обьекты «скилл», «параметр», «знание», «трейт». Каждый из этих обьектов ведет себя строго конкретным образом в системе. Ну там «для проверки скилла бросьте ХдХ + показатель скилла против сложности». Игрок сам решает, что будет для него скиллом, что знанием, а что трейтом. Возможно, решает на ходу, в процессе игры. Ну типа «я хочу воспользоваться тэгом город, как знанием, для того, чтобы». Эта идея совсем сырая, пока что понятия не имею, что смогу из нее выжать.

Мне однозначно нравится!
avatar
мне тоже, но пока это лишь изящно звучит
никаких мыслей по практической реализации пока нет
avatar
Много чего хотел написать, но наверное почти все не к месту. Потмоу скажу только одно — если не то не чистый hack and slash, то нежизнеспособных билдов быть не может. Если кончено при генерации нет взято комбинации трейтов вроде полный паралич, немота, слепота, глухота и при этом не sci-fi жанр.
avatar
ну я специально указал «если такие билды возможны»
опять таки, могут быть более и менее жизнеспособные
вообще, в идеале, должна быть жизнеспособной любая «реалистичная», чтобы под этим не подразумевалось, концепция
сейчас же, в текущей моей системе генережки, жизнеспособность больше зависит от применения нескольких оптимизаторских трюков с числами и формулами
я, как автор, знаю их, и поэтому делаю персонажей более эффективных, чем те, кто не знают, поэтому обычно с чарниками вожусь сам, генеря людей по выданной концепции
по счастью, это обычно не идет в ущерб концепции, которую надо оцифровать
или же, если мне лень возится с формулами, то я просто могу расставить ожидаемые значения для нужных показателей, потому что я знаю, чего примерно можно получить
avatar
Я останавливаюсь на той ступени, на которой мне нужно, могу сделать встречную проверку навыка «бой» обоих сторон, если мне не важно, чем именно и как стороны собираются пользоваться в бою, а могу поднять детализацию до уровня типов используемых маневров и вооружения.
Сразу представляется дерево навыков: «Наука д4» -> «Физика д10» -> «Квантовая физика д6». И бросок всех подходящих дайсов с дерева…
avatar
я именно о чем-то таком и думаю, разве что мне, по иррациональным причинам, претит бросание кучи разных кубиков (хотя, видимо, придется преодолеть эту неприязнь)
но суть проблемы вот в чем
сложность, которую я выставляю для проверки одного общего навыка (в данном случае науки) должна отличаться от сложности, выставляемой для проверки всего дерева, по понятной причине возрастания получающихся при броске чисел
это мне кажется некрасивым, потому что требует держать несколько таблиц сложностей в голове (общие проверки/специализированные проверки/узкоспециализированные проверки) и я пока не вижу решения проблемы
и ведь это только одно древо навыков, а мне хочется реализовать комбинации типа «использую навык А с параметром Б и знанием В» (пытаюсь заколоть (бой/фехтование/шпага) врага на опережение (ловкость/реакция) посреди массовой драки (навык драки в свалке) в таверне (знание местности: таверна))
разве что превратить все проверки во встречные, и так же точно наращивать их дайспул
я могу вскрыть (ловкость рук) замок (дайспул генерик замка), а могу вскрыть (ловкость рук/механика/замки) амбарный замок производства Абнера Гриза (и дайспул замка растет за счет деталей)
но это уже слишком громоздко выглядит на первый взгляд
avatar
Конечно, универсальные детализированные системы всегда будут громоздкими. Это цена универсальности.
Если же мы начинаем говорить про «мы хотим красивой маштабируемой боёвки» или «мы хотим систему для комплексного проблемсолвинга с красивым описаловом», то можно говорить о более изящных решениях.
avatar
Конечно, универсальные детализированные системы всегда будут громоздкими.
Да, тут требуется самому себе поставить некое ограничение на предел детализации, иначе можно утонуть в этих деталях
впрочем, вот возьмем, к примеру, гурпс, как универсальную систему
ведь можно ее урезать до ультра-лайт версии
она универсальна потому, что есть хороший механизм проверок, годящийся и для пилотирования космолета и для удара дубиной и для убеждения толпы
вот мне сейчас достаточно будет придумать механизм проверок, позволяющий маштабирование, и на этом остановиться
дальше громоздкость будет только в руках того, кто будет делать под этот механизм набор скиллов
ограничится ли он десятком, или впилит их под сотню
avatar
GURPS как раз пример плохого дизайна игры.

По сути, тебе нужен механизм позволяющий бесконечно дробить заявку, уточняя её…
avatar
я тут подумал, что на самом деле он мне не нужен
не стоит того
не могу найти ему достаточно положительных черт, которые бы скомпенсировали недостатки
хватит и пары уровней детализации, совершенно необязательно делать механизм, рассчитанный на произвольное количество деталей
а если уровней всего два, то можно даже написать два разных механизма
avatar
Да. Грубо говоря разрешение одним броском и комплексное противостояние. Типа SC из четвёрки, или подсистем (погони, прочее) из ДА.
Разбитое на раунды с проверками на каждом этапе. С зарабатыванием успехов или нанесением «урона» противнику.
avatar
Персонаж описан набором ключевых слов, его эффективность в некотором действии равна количеству ключевых слов, аффилированных к действию. Тэги действий, тэги параметров, тэги зон, тэги предметов. Бой+кулаки+трактир дают +3 эффективность в драке на кулаках в трактире.
Осторожно с этим подходом. Линейно складывая произвольные бонусы, можно скатиться к очень некрасивой картине как на этапе создания персонажа, так и в процессе игры. Противопоставлять ал Lady Blackbird (или хаки) и PDQ/PDQ#?
avatar
Ах, да. Исправлять посты нельзя. Даунгрейд такой даунгрейд.
avatar
Последнее предложение не читать. С упомянутыми в нем системами советую ознакомиться, как с ходившими предложенным тобой путем.
avatar
Линейно складывая произвольные бонусы
произвольные — в смысле с произвольными значениями или с произвольной «природой»?
avatar
Максимизация числа слагаемых ни на концепт персонажа, ни на качество игры хорошо не влияет. Ну, в большинстве случаев. А попытка максимизировать с стороны игрока будет, если она игромеханически эффективна. С этим делом нужно внимательнее.
avatar
есть два типа «оптимизации», которые мне известны
первый — это оптимизация механическая, на стадии билда
а вторая, она, наверное, кому-то покажется манчкинством, но я ее очень люблю — это оптимизация на месте, формата «я считаю, что этот навык может мне помочь в достижении цели. Нет? А если я вот так заявку построю?» вот оптимизация на заявках мной, когда я водил, всегда поощерялась, потому что создавала интересные заявки
и даже систему мы в конечном счете построили располагающую к этому, потому что навыки в ней широки настолько, насколько игрок сумеет их обосновать
поэтому если игрок себе возьмет сперва 10 тэгов, аффилированных на первый взгляд к боевке, а потом хитрыми ухищрениями будет натягивать их на небоевые ситуации — я буду ок с этим
avatar
Используя твой пример, на уровне генережки проблема будет с тем, что линейно сложенных 10 тегов, посвященных боевке (еще хуже, если какого-то рода широкофункциональной магии), будут заведомо сильнее одного тэга, скажем, «воин». Какие конкретно из этого вытекут проблемы — не скажу, так как не знаю условий генережки. Но навскидку, в первую очередь надо опасаться абьюза (вполне ненамеренного, может быть) таких труднорегламентируемых категорий, как ширина понятия и применимость в конкретном сеттиге.

В процессе игры же «оптимизация на месте» может выливаться не только в интересные комбинации способностей, но и в вещи некрасивые как художественно (типа свашбаклера, который фехтует только и исключительно вися на люстре (утрирую)) и пожизнево (типа выклянчивания у мастера признания валидности тэга (суровая правда жизни)). Опять же, пока системы нет в готовом виде, могу только примерно обозначать возможные подводные камни.
avatar
10 тегов, посвященных боевке (еще хуже, если какого-то рода широкофункциональной магии), будут заведомо сильнее одного тэга, скажем, «воин»
это как раз не самая главная проблема, потому что хочешь эффективного воина, бери много тэгов на бой
проблема в другом — нельзя быть широко эффективным в бою в целом, потому что нет подходящих тэгов, можно только качать эффективность в специализациях
но в целом мысль про тэги была побочным продуктом других размышлений и вряд ли куда-то пойдет
в том числе из-за проблем оптимизации, указанных дальше
avatar
Ну типа «я хочу воспользоваться тэгом город, как знанием, для того, чтобы».
Явно не схоже с твоей концепцией, но именно сия фраза напомнила навыки из Feng Shui. В ней один навык означал сразу и профессиональную компетентность и багаж знаний и социальную сеть.
Эту же идею себе стянула MHRP. Чем то и на Bulldogs! c Fate Core похоже.
avatar
Если идти в лоб, то числа будут расти по мере того, как мы подключаем дополнительные уровни скиллов и поэтому разная детализация будет требовать разных бросков
Можно глянуть в сторону Вархаммера, который варгейм, а не РПГ. Там используется таблица для значений от 1 до 10.



Что-нибудь вроде такого.
В результате, если идти «бой>атака>оружие>фехтование», то на каждом уровне у нас будет вполне конечное сравнение без постоянно растущих бонусов и укладывающееся в рамки выбранного кубика/кубиков.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.