Ответ на статью «Введение в теорию магии»

в 19:07, , рубрики: game development, магический движок, магия, теория магии, метки: , ,

В статье пользователя wes поднят вопрос математической модели магии. Здесь приводится одна из альтернативных точек зрения на вопрос «механики» магии и приведены простые модели.

Общие сведения

Магические действия напрямую связаны с восприятием мира. Говорить «процесс» для восприятия не совсем уместно, так как процесс – это функция времени, а время при восприятии – это один из результатов восприятия.
Такая субстанция, как «время», и связанное с ним понятия «настоящее» (происходящее сейчас) позволяют устраивать коммуникацию между людьми, и фиксировать успех или провал заклинания.
Маг может воспринимать не только настоящее, но и будущее, причем будущее бесконечновариантно. Настоящее и прошлое тоже бесконечновариантны, но пользы магу от этого мало.

Механика магии

Расстояние восприятия – сложность потенциального восприятия человеком какого-либо объекта или субъекта. Чем сложнее воспринять нечто, тем больше расстояние восприятия. Например, расстояние между магом и им самим нулевое. Для магии важно расстояние восприятия между магом и результатом его магии.
Магическое действие, связано с будущим. Возможно, самым ближайшим, наступающим через мгновение, но с будущим. (Магические действия с прошлым невозможно зарегистрировать). Магическое действие – это восприятие одного из вариантов будущего и связь его с настоящим. При этом, это только один из вариантов, есть и другие варианты будущего.

Маг тратит ману на построение связи настоящее-будущее. Чем больше маны вложено (обозначим эту величину M) в связь этого варианта с настоящим, тем вероятнее он наступит.

Каждый человек обладает маной. Маги отличаются от остальных умением управлять маной. Все люди, в том числе маги, постоянно рассеивают ману. Рассеивание (D) тратится на связь настоящего с вариантом будущего «по-умолчанию». Этот вариант будущего «по-умолчанию» определяется особенностями энергетической структуры человека.

Распределяется рассеиваемая мана по закону: чем ближе расстояние восприятия некого феномена, тем больше из общего числа рассеиваемой маны тратится на этот феномен. Поэтому довольно много маны рассеивается на самого себя и заклинания изменения себя довольно сложны. Также из-за этого закона маги стараются соблюдать секретность – чтобы не уменьшать расстояние восприятия для других людей и не получать дополнительное сопротивление заклинанию из-за их рассеиваемой маны на вариант будущего «по-умолчанию».

У каждого человека уровень «чистоты» его энергетической структуры разный. Чем выше уровень чистоты (или иными словами уровень мага – level, lvl), тем меньше тратиться маны на рассеивание. Уровень мага может как повышаться, так и понижаться со временем. Значение показателя lvl для самого «прокачанного» мага равено нулю. Чем выше число lvl, тем маг менее эффективен. У обычного человека lvl=1.

1 >= lvl >= 0

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

Специальные магические знания (Knowledge, K) позволяют более эффективно тратить ману на заклинания, воспринимая будущее более точно и подробно. Как и уровень мага, уровень знания в количественном выражении чем меньше, тем лучше. Высший уровень знания K=0, отсутствие знания – K=1

1 >= K >= 0

В зависимости от уровня знания мага, меняется «стоимость заклинания». Чем больше знаний, и чем выше уровень (чем меньше значения lvl и K), тем меньше стоимость. У мага-новичка, не обладающего специальным знанием, «стоимость заклинания» = «цена заклинания».

Cost(spell) = (a*lvl+b*K(spell))*Price(spell) где a и b – коэффициенты, такие, что (a+b)=1

Знание обычно относится к группе заклинаний. Например, школа огня – это группа заклинаний, в которую входит fireball, inferno и прочие. Тогда K(fireball)=K(firemagic).

Для успеха заклинания с вероятностью 50% необходимо, чтобы мана, потраченная магом на заклинание, оказалось равна совокупно полученной другими вариантами будущего рассеянной маны. Эта величина складывается из стоимости заклинания и «собственного сопротивления» (SelfResist, SR). Собственное сопротивление – это пассивно рассеянная самим магом мана. Если в магии каким-либо образом участвуют еще люди, то их эффект сопротивления (Resist, R) тоже нужно учитывать.

Вероятность исполнения заклинания p=M/(M+Cost+SR+R)

Пример1. Маг кастует в уединенном месте заклинание summon wolf. Тогда для успеха50% нужно затратить как минимум
M = Cost(summon wolf)+SR(summon wolf) – никаких других активных участников, кроме мага нет, и из сопротивления действует только SR.
Пример2. Маг кастует фаербол в соперника. Тогда для успеха50% нужно
M = Cost(fireball)+SR(fireball)+R(fireball)
R здесь — пассивное сопротивление оппонента
R(spell)=c*Cost1(spell), где Cost1(spell) – стоимость заклинания для оппонента, а c — коэффициент

У обычных людей (lvl=1) резисты максимальны. Маги, повышая свой уровень lvl и уровень своих знаний K, теряют резисты и становятся более чувствительны к магии. Следует заметить, что это не сопротивляемость эффекту заклинания, а сопротивляемость исполнению заклинания. Сопротивление мага эффекту уже наложенного заклинания – отдельная тема.

Модель для SR такова: чем больше затрачено маны, тем сильнее SR, чем более опытен маг, тем SR слабее

SR(spell) =с*Cost(spell) + f*M*lvl где c,f – коэффициенты.
Если в битве с N оппонентами маг кастует заклинание, то минимальное число маны для успеха с вероятностью 50%

image

Максимально доступное магу количество маны таково, что поток ее пассивного рассеяния равен потоку восполнения. Рассеяние маны происходит тем интенсивнее, чем больше маны запасено магом и тем слабее, чем более высок уровень мага

D = mana*lvl*g где mama – текущий запас маны, а g-коэффициент.

Поток восполнения маны H = (1-lvl)*mod + H0 где H0 – константа, а mod – модификатор

Значение mod связанно с текущими эффектами: что маг ел и пил, спал ли он, находится ли он в месте силы.

После исполнения заклинания и затраты M маны, уровень мага изменяется, так как его собственная энергетическая структура становится менее совершенна.
Новый уровень мага lvl1=lvl+M/(M+j) где j – константа>0

Определенные практики могут повысить уровень мага (числовое значение lvl приэтом уменьшится). При этом маг получает некий практический опыт – Experience (XP). Для игровой модели можно считать, что маг зарабатывает очки XP а потом тратит на lvl и K.

Модели в статье, как можно более линейные. Возможно, в практической реализации модели нужно будет больше нелинейности.

Автор: ITguru

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js