Неделя 21 (март 1): Ролевые параметры и снова рецепты.
Итак, прошлая неделя была коротковата и закончилась на том, что я наделил шмотки ролевыми параметрами и даже начал передавать их персонажам при одевании. Новая неделя началась вообще на отличненько.
Прежде всего, чтобы понимать что вообще происходит, я сделал отображение ролевых параметров персонажа в интерфейсе его инвентаря. А то было как-то непонятно и неочевидно правильно ли все работает. Из-за сложности работы с интерфейсом редактора юнити, бонусы персонажа не отображаются у меня в редакторе. И особо не напрягаясь, скопировал схему интерфейса из оригинального Hustle Custle.
На видео показано как одевание предмета в слот персонажа меняет его ролевые параметры.
Единственное, чем наверное тут можно немножко погордиться — это тем, что для отображения ролевого параметра игрока используется та же плашка, что и для отображения ролевого параметра предмета в интерфейсе информации о предмете. И в качестве заголовка используется она же, с выключенной картинкой.
Для отображения пришлось придумать довольно странный список и классификацию типов ролевых параметров, которые нужны только для интерфейса. И то, что не перечислено в этом списке, в интерфейсе отображено не будет. Нужно же это для того чтобы отображать ролевые параметры игрока независимо от их количества и порядка приобретения — ведь шмотки в разном порядке надевать можно, а другой зацепки за порядок в данном месте просто не существует.
***
После того как персонажи начали получать ролевые параметры от шмоток, настала очередь проверить, работает ли созданный еще на второй неделе механизм передачи ролевых параметров от персонажей постройкам. Всего-то 5 месяцев прошло. Но следующий шаг намного интереснее: сделать механизм влияния ролевого параметра на рецепты. И тут я снова задумался. Благо в этот раз всего на два дня.
В общем, идея такая: чем больше значение ролевого параметра постройки, тем быстрее производится рецепт. Вроде бы просто и понятно. Но только если производство рецептов не является частью игрового цикла и со временем игрок не улучшает постройки и не получает доступ к новым рецептам.
Если оставить систему неизменной, то открыв новые рецепты игрок будет сразу иметь бонус ко времени их производства.
- Если ролевой параметр уменьшает время напрямую: скажем, 100 очков уменьшают время производства на 5 минут — то со временем игрок получит бонус который будет превышать время производства рецепта. Можно даже попробовать рассчитать что к 5 уровню игрок будет иметь очков на 30 минут и чтобы сделать короткий рецепт на этом уровне то нужно ставить ему время 31 минуту. Если же мы хотим иметь рецепт 3 уровня который всегда будет иметь большое время то можно смело ставить ему пару часов.
- Если же ролевой параметр уменьшает время относительно: например, 100 очков уменьшают время производства на 10% — то либо бонус будет расти очень медленно (бонус в 10% не очень-то интересен и заметен, особенно на рецептах малой длительности), либо игрок очень быстро достигнет 100%.
Я не очень хочу чтобы время производства рецепта зависело от какого-то расчетного значения бонуса игрока. Одному игроку повезет иметь редкую шмотку и большой бонус, а другому не повезет… поэтому первый вариант я считаю неподходящим. Хотя нормального аргумента против, придумать что-то не получается.
Итак у меня есть два варианта как в целом решить проблему того, что игрок может своим бонусом перекрыть время производства.
- Первый вариант: сделать так чтобы с ростом уровня постройки для определенного значения бонуса требовалось больше очков ролевого параметра.
- Например, на первом уровне 100 очков дают 50% бонус, а на втором только 25%.
- Это жестоко, этому сложно придумать разумное объяснение из жизни (мы улучшили конюшню до автомобильного завода и поэтому вдруг лошадей стало сложно производить), зато это легко показать в игре.
- И мотивация улучшать персонажей и шмотки будет железобетонная: хочешь снова быстро делать рогатки — иди учиться.
- Главное, лично для меня, что в таких условиях бонус в 100% недостижим, просто потому что я его контролирую.
- Второй вариант: сделать так чтобы рецепты делись на уровни со своими требованиями к значению ролевого параметра.
- И при открытии постройки второго уровня давать игроку доступ к рецептам второго уровня. При этом рецепты первого уровня никуда не деваются и имеют старый бонус.
- А желание дотянуть бонус для рецептов второго уровня будет еще больше двигать бонус первого.
- Но, при этом для рецептов низки уровней вполне достижим бонус в 100%.
- Это более гуманно, это более понятно с точки зрения жизненного опыта (улучшение конюшни до автомобильного завода не лишает нас технологии производства лошадей), но это пипец не объяснимо интерфейсом. Вот от слова совсем. Ну то есть конечно объяснимо, хардкорная аудитория разберется…
***
Есть еще три интересные вещи, связанные с механизмом выбора бонуса к времени производства рецепта на основании ролевого параметра постройки.
Во-первых, я могу сделать учителей! Это персонажи, которые будут ускорять обучение других персонажей. Причем для учителей уж точно нужно делать второй вариант — первый не подойдет: мы же не можем сказать что учитель стал хуже работать потому что начал работать в новом, более современном здании. Да и то, что персонажи смогут быстрее обучаться скилам низких уровней — это даже хорошо. То же относится и к строителям.
Во-вторых, я относительно легко могу сбалансировать ролевой параметр с возможностями, которые есть у игрока. Например, я хочу чтобы на первом этапе игрок мог получить максимум 50% бонус. Значение ролевого параметра, которое может получить игрок ограничено его скилом. Грубо говоря, на 10 уровне шмотки, она начинает требовать 10 уровень скила, который игроку еще не доступен из-за того что школа 1 уровня может учить только до 9 уровня скила. В результате получается вполне понятный диапазон значений в зависимости от редкости шмотки. Ну кому-то повезет. Хорошо, я не против. Главное, что даже при максимальной редкости, значение бонуса будет вполне конкретным и оно не будет для меня неожиданностью.
В-третьих, есть не очень надежный но способ заставить игроков пользоваться рецептами с низким бонусом ко времени производства при наличии рецептов с высоким. Просто относительное количество очков ценности этих предметов должно быть в пользу первого. Предмет первого уровня с бонусом 50% должен давать 10 очков в минуту, а предмет второго уровня с бонусом 25% должен давать 15 очков в минуту. Разобраться в этом игроку будет довольно сложно, но тем и интереснее. Довольно большой простор для поиска МЕТЫ игры.
***
Это все прекрасно, но не очень-то и важно. Я вроде утвердился в мысли что мне нужен первый пак контента и в его рамках мне нужна даже не таблица, а просто список бонусов, соответствующих какому-то количеству очков ролевого параметра.
Заполнил, загрузил, подключил… красота.
На видео показано как изменение ролевого параметра влияет на время производства рецепта. Просто снять персонажа из постройки тяжелее чем установить.
Тут тоже получилось несколько довольно интересных моментов.
Во-первых, система устроена настолько надежно, что мне понадобилось только создать параметр реального времени производства рецепта, учитывающего влияние бонусов, и заменить им обращения к базовому времени из конфига. Это очень круто и приятно, когда есть система, устойчивая к изменениям. Пусть я, возможно, и потратил на нее больше времени чем следовало бы.
Во-вторых, я настал момент когда в игру, видимо, действительно можно играть. Мне нужно было протестировать изменение бонуса при установке более крутой шмотки. А для этого нужна… более крутая шмотка. И я ставил в производство лопаты в ожидании лопаты третьей, синей редкости. Шанс ее выпадения примерно 1 из 40. У меня в инвентаре есть фиолетовый меч, выпавший на 5 серых и 3 зеленых. А синяя лопата все не появлялась и не появлялась.
В общем, на 12й серой лопате игра таки выдала мне синюю. Очень круто…