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