Реализация базовых алгоритмов системы, основанной на НРИ, программными методами с#.
Автор: Павлов М.Ю., Боднар А.В.
Источник:«Информатика, управляющие системы, математическое и компьютерное моделирование» (ИУСМКМ-2023) :
сб. материалов XIV Междунар. науч.-техн. конф. в рамках IX Междунар. Науч. форума ДНР; Т.2 Ред. кол.: Аноприенко А. Я. (пред.); Васяева Т. А.;
Карабчевский В. В. [и др.]; от. ред. Р. В. Мальчева. – Донецк : ДонНТУ, 2023. - 451 с.
ИУСМКМ-2023
Аннотация
Павлов М.Ю., Боднар А.В. Реализация базовых алгоритмов системы, основанной на НРИ, программными методами с#. . В работе рассматривается способ моделирование базовых алгоритмов системы, на основе реально существующих систем в виде НРИ – настольно ролевых игр. В основе моделирования лежит процесс разбиения систем на отдельные элементы.
Введение
Целью данной работы является разработка программного модуля, подсистемы для компьютерной игры, основываясь на НРИ
В результате поиска качественного и разнообразного отдыха человечество уходило в разные дебри, будь то спортивный или активный отдых или интеллектуальный. Одним из таких отдыхов является НРИ - настольно ролевые игры, самые популярные выходцы из данной когорты: DnD, Pathfinder, WoD, Shadowrun. В основах систем лежат характеристики персонажей, описывающие возможности и навыки, то есть система, это попытка моделирования вымышленного мира в условиях сеттинга.
Основы систем похожи, но их концепции и особенности в значительной степени отличаются. Эти расхождения обусловлены внутренними механиками и целями, которые ставит перед собой конкретная НРИ. Поэтому даже модели схожих действий в разных системах могут не повторять механику друг друга. Из этого можно сделать вывод, что программное моделирование даже простых элементов будет происходить по своим собственным, "новым" законам и сможет выделить отличные характеристики определенной системы. Так же нельзя забывать, что без "событий" элементы системы не будут применяться и не смогут взаимодействовать друг с другом. Притом важно выстроить систему так, чтобы в ней возможно было создать адаптивное событие: одна и та же конструкция может стать как обычным, так и сложно-связанным событием. Таким образом можно выделить пользу с данного моделирования:
- Получение навыков моделирования абстрактных объектов.
- Получение навыков создания системы.
- Обработка теоретических событий, для использования системы
- Изучение других систем
Языком реализации программного модуля был выбран С#, поскольку он хорошо подходит, для моделирования абстрактных объектов, образуя из них определенные типы, которые будут взаимодействовать с друг другом, согласно концепции языка[1]. Приоритетом является общие описание человека с игровыми характеристиками, через которые будет происходить взаимодействия между людьми.
Описания взаимодействий.
Для начала моделирования, мы должны понять, какие именно аспекты, будут участвовать в модели, для этого мы возьмем описания из книг с системами и рассмотрим несколько схожих ситуаций, с точки зрения двух систем. Описания событий будет происходить в трех вариациях: событие, событие, использующее механику ДнД, событие, использующее механику WoD. После моделирования нескольких событий, связанных с механиками систем потребуется выделить элементы, влияющие на взаимодействие. Для начала стоит объяснить общую механику двух система.
ДнД – использует простую формулу, которая в будущем будет именоваться проверкой характеристики: (Характеристика - 10)/2 + Бонус мастерства если персонаж владеет навыком+ дополнительный модификатор + бросок Д20(двадцатигранного кубика) против сложности броска[2].
Если цифра, выходящая из формулы больше или равна сложности, то действие успешно, но существуют два особых варианта, если на кубике выпала 20, это является критическим успехом, что является 100 процентным успехом, даже если формула не достигает сложности. Выпадение 1 является противоположным вариантом, это 100 процентный критический провал.
WoD – использует усложненную систему. В данной системе игрок кидает количество кубиков Д10 (десятигранников) в количестве имеющегося уровня навыка, при том берутся два атрибута, один из характеристик, другой из способностей персонажа, кубики кидаются по сложности ситуации. Значение кубика, которое выпало равное или большее чем сложность, считается успехом, если на кубе выпала 1, то она поглощает 1 успех, если успехов не было, но на кубике выпадает 1, это называется Ботчем или критическим провалом[3] . Если у игрока есть специальность на данное действие, в случае выпадения 10 на кубике, он бросает дополнительный кубик.
При различных ситуациях задается особый тип события, который и будет влиять на то, что будет происходить с точки зрения механики. В нашем случае мы рассмотрим 4-е вида событий, с объяснением каждого
- Социальное взаимодействие.
- Взаимодействие с окружением.
- Действия направленные против персонажа.
- Использование особенностей.
- Боевая сцена.
Социальное взаимодействие.
В данную категорию подходят все социальные действия, которые направленны на разговор или понимание собеседника.
ДнД система, просит пройти проверку харизмы используя соответствующий навык, по заявленной сложностью рассказчиком или событием.
В случае с WoD, все будет зависеть от того, какое именно взаимодействие будет происходить. Так, к примеру запугать можно не только используя харизму, но и физическую силу, показав раздраженность и агрессию к цели запугивания, но так же можно вспомнить какую-то информацию, чтобы надавить на другого человека.
Взаимодействие с окружением
Данная категория содержит в себе взаимодействие с любым предметом, объектом, попыткой разжечь костер и остальным.
В ДнД действие с определенным результатом, считается сложным, поскольку от навыков, настроения и частично удачи, будет зависеть качество выполняемого действия, так опытный ремесленник может ошибиться или в процессе появится переменная, о которой он ранее не задумывался и его изделие будет плохого качества. Действие может быть связано с конкретным предметом, так чтобы взломать дверь, нужно воспользоваться “воровскими инструментами”, то есть они должны находиться у игрока, в данном случае проверка характеристики будет проходить по владению этим инструментом, вместо навыка.
В WoD, каждое действие связана со способностью. Так чтобы водить машину, необходима точка в соответствующей способности, если же её нет, будет происходить проверка характеристики, даже если нужно будет просто куда-то доехать, в ином случае персонаж просто может выполнить данное действие. Если действие необычное и требует навыков, всегда происходит проверка, чтобы быстро доехать до места назначения и не перевернуться, нужно пройти проверку вождения + ловкости, так для всех схожих действий. Владение каким-то инструментом, тоже связаны с навыками. Использования инструментов будет зависеть от владения навыком, в таком случае, чтобы зашить рану, необходимы инструменты и владение навыком, если навыка нет, то действие происходит с повышенной сложностью или вообще не реализуемо.
Действия направленные против персонажа
Этот список достаточно обширен, это может быть манипуляция персонажем, или каким-то образом воздействовать на него. В разных системах разная реализация подобного, так в ДнД есть проверка указанной характеристики способности, так называемый спасбросок, который делает персонаж против этой способности, который может спасти или ослабить пагубное воздействие на персонажа. В WoD, для этого используется показатель силы Воли. Персонаж кидает количество кубов, равных своей силе воли против сложности Силы Воли соперника, в данном случае, необходимо получить успехов больше или равное количество против действия персонажа, который пытается использовать на вас действие.
Использование особенностей
Некоторые действия, требуют от игрока наличие определенной способности, будь то заклинание, как в ДнД или дисциплина как в WoD, но это так же может затрагивать наличие определенного предмета или же особенность.
В ДнД можно упрощать взаимодействие с чем-то другим, так например сложность на то, чтобы распознать обман может составлять 15, но если использовать заклинание “область истины” на область в которой находиться “лгун” и он провалит проверку, сложность сброситься до 0. Если же у союзного персонажа, есть навык, который использует другой персонаж, он может ему помочь, добавив преимущество к броску, тк сделав так, чтобы вместо одного 20-гранного кубика кидались два, а из них выбирался самый большой. Все особенности персонажей, используются по их основной характеристики, если в описании предмета или действия не указано другого, а также дополнительных особенностей. Так маг для использования заклинаний использует интеллект как основную характеристику и тратит ячейку уровня заклинания.
В WoD нет основной характеристики, все навыки и особенности используются по разным характеристикам, которые как-то связаны друг с другом, некоторые особенности требуют от действующего характеристики. Так, можно попытаться убедить кого-то и использовать дисциплину “Присутствие”, которая бросается по характеристикам Харизма + Исполнение по сложности 7, чем больше успехов, тем более расположены остальные к игроку. В пример траты, вампир, может потратить пункт имеющейся крови, чтобы использовать дисциплину “стремительность” и двигаться в разы быстрее.
Боевая сцена
В ДнД в ход существуют два вида действия: основное и бонусное. Основное отвечает за выполнение следующих действий: наложение заклинаний, атаки особое действия(использование предмета или особой способности), рывок (удвоение очков перемещение), уворот (помеха на атаку по данному существу) и отход (отсутствие провокации при выходе из зоны влияния вражеского персонажа)[2]. Бонусное действие отвечает за атаку легким оружием со второй руки или особых действий, описанных в классе\предмете, которым владеет персонаж.
В WoD общий ход называется сцена, в ней существует несколько ходов, в зависимости от количество заявленных split. Игрок может в начале сцены, выполнить особые действия, после чего сделать во время своего хода одно действие или любое количество рефлекторных. Игрок может заявить о split, тем самым совершив в одну сцену два действия, но по одному в ход, за это полагается штраф. Теперь игрок будет кидать кубы меньше на (количество split действий + ход), то есть, если игрок делает два действия в первый ход он кидает на 2-а куба меньше, а на следующий на 3-и
Моделирование объектов и описания путей взаимодействий

Рисунок 1 – типы модели системы DnD

Рисунок 2 – описание функции класса action

Рисунок 3 – Типы системы WoD

Рисунок 4 – основные функции системы WoD
Выводы
В процессе моделирования разных систем можно прийти к следующему выводу: многие системы, выполняющие схожие функции, могут сильно отличаться друг от друга. Эти различия обусловлены целью и сферой применения каждой из них. Успешным моделированием можно считать то, в результате которого мы получаем представление системы, выполняющей все поставленные перед ней задачи без задействования лишних переменных. Если в ходе работы над схемой обнаруживаются избыточные элементы, модель считается неудачной.
При построении моделей важно уметь выделять конкретный набор элементов из их общей совокупности. Также исследователь должен обладать навыками по выделению закономерностей.
Список использованной литературы
1. Pro C# 9 with .NET 5. Foundational Principles and Practices in Programming by Andrew Troelsen, Phillip Japikse; Publisher(s): Apress– 1392 стр.
2. D&D Player’s Handbook (Dungeons & Dragons Core Rulebook)/ Mark Mearls Jeremy Crawford. Manufacturer Wizards of the Coast - 331 cтр
3. Achilli, Justin. Vampire: The Masquerade Revised Edition. White Wolf Game Studio, 1998 – 370 стр