JackCL
Как бы так не опустить руки...
Сегодня прочитал, что "Причина, по которой люди быстро сдаются — они смотрят, сколько еще нужно сделать, вместо того, чтобы увидеть, как много уже сделано". Это в общем правда, но слабый мотиватор.
Сейчас я доделываю систему репутации, которая на самом деле не репутация (хорошая/плохая), а известность среди широких масс (в числовом выражении). Она является не прибавкой, но модификатором отношения к игроку NPC-персонажей.
Рассмотрим практический пример. У каждого НПС есть значение, определяющее его отношение к игроку; все достаточно просто - со знаком плюс - положительное, со знаком минус - отрицательное, чем больше число - тем сильнее отношение. +1, например, означает, что герой вызывает у NPC легкую симпатию, +5 - дружеские чувства. А дальше в дело идет репутация (модификатор).
Допустим игрок в начале игры разговаривает с NPC-барменом отношение которого к игроку +1. При этом репутация игрока на этот момент выражается в каких-то небольших числах (только что приехавшая в Хэмпстед-хиллс Тиффани никому не известна).
Что думает NPC с точки зрения логики и здравого житейского смысла?
"О, я говорю с симпатичной и опрятной на вид ведьмой, но я вижу ее первый раз в жизни. Возможно, она в нашем городке надолго, возможно и нет. Возможно, она на самом деле такой приятный человек, каким кажется, а возможно внешность обманчива. Я буду с ней вежлив, но пусть не ждет от меня скидок за "красивые глаза".
Что при этом происходит с точки зрения механики игры? Как перевести логику в область математики?
Для этого и используется репутация в качестве модификатора.
Игра вычисляет действительное отношение NPC к игроку беря за основу начальное отношение +1 и умножая его на репутацию (которая путем нехитрых преобразований оказывается дробным числом меньше единицы).
Итоговое действительное отношение NPC (при его легкой симпатии к героине) будет равно 0 - то есть оказывается нейтральным.
Ну и стоило ли огород городить?
Вообще-то да. Рассмотрим пример, когда героиня уже заработала репутацию.
При встрече с ней тот же NPC-бармен думает примерно так:
"О, я говорю с симпатичной и опрятной на вид ведьмой. Она частенько попадалась мне на глаза и это не первый наш разговор. Она довольно долго прожила в нашем городке, знакома со многими жителями и хорошо известна в округе. Возможно ее поступки не всегда и не всем нравятся, но у нее есть определенная репутация - это ведьма с которой нужно считаться и будет полезно, если я продемонстрирую свою к ней симпатию, сделав скидку на выпивку".
Далее игра вычисляет действительное отношение к игроку с использованием репутации в качестве модификатора, но при этом репутация уже выражается достаточно большим числом, которое в ходе преобразований дает нам дробное больше 1. Возможно это будет 1, возможно и 2.
Таким образом мы получаем отношение со стороны бармена уже не столь нейтральное: +1 или даже +2, а это уже кое-что.
Основная прелесть использования системы репутации в качестве модификатора к отношению заключается в том, что она позволяет сгладить действительные значения отношений NPC к игроку в начале игры (и симпатизирующий +1 бармен и испытывающий сильную неприязнь -5 промышленник демонстрируют одинаково нейтральное отношение, потому как действительные значения будут рассчитаны игрой как +0.1 и -0.5 что с точки зрения игры является после округления одним и тем же 0); зато к середине и к концу игры, когда игрок и его героиня Тиффани становятся широко известными реакция NPC становится намного более выраженной (наш бармен может делать скидки, но в разумных пределах, поскольку его действительное отношение даже с модификатором 2 не превысит +2, зато неприязнь промышленника к несимпатичной ведьме, ставшей местной знаменитостью, перерастет в настоящую ненависть -5 * 2 = -10). Также искреннее дружелюбие +5 станет +5 * 2 = +10 любовью, ну и так далее и тому подобное.
При этом, заметьте, что реакция условно нейтральных NPC всегда будет приблизительно нейтральной, хотя и меняющейся (как в случае с барменом), а вот реакции ключевых (сюжетных) становятся все более и более явно выраженными.
Конечно, в игре будут меняться в зависимости от действий игрока и базовые значения отношений NPC и это тоже хорошо по понятным причинам.
ps. Примеры с барменом и промышленником приведены для иллюстрации механики, на самом деле я еще не приступал вплотную к упорядочиванию данных NPC-персонажей.
pps. Этот пост написан в основном для того, чтобы показать как игровая механика делается самыми примитивными методами. Фактически все что нам нужно - это две переменные (отношение NPC и репутация), фокус только в том, чтобы детально продумать, как правильно они должны взаимодействовать на протяжении игры, чтобы оказывать нужное влияние на геймплей.