Выбор алгоритма нарастания цены

Я пишу сейчас свою стратегию и одной из фишек — создание доспеха/юнитов с своими уникальными параметрами.
И естественно чем выше параметр, тем дороже он будет стоить.

Я пришел в тупик, когда вопрос зашел за сам алгоритм повышения цены.

Первый раз взор пал на процентное повышение. Но я быстро от него отказался, т.к. у него есть большой недостаток.
Когда параметр поднимается на 1,2,3 уровня, цена почти не изменяется, но при изменении уровня на 1000 пунктов (да, такое тоже возможно), то цены вырастают с условных 1000 монет, до 1ккк и более, что очень не хорошо.

Второй вариант был использовать фиксированную цену за уровень. Но тут я наткнулся на неприятнейший баг.
К примеру у юнита есть параметр «Ловкость», который стоит 1200 монет и есть доспех, у которого параметр Ловкость стоит 1000 монет за уровень. Если игрок сольет -100 ловкости персонажа и добавит их в доспех, то он получит по 200 монет, на каждом уровне параметра.

Сделать везде одинаковую цену я не могу, т.к. сделать латный доспех с очень хорошей маневренностью почти нереально, по этому цена на параметр ловкости будет очень высока, а на кожаную броню тяжело добавить сопротивление ударам.

Может у кого-то есть опыт решения подобных задач?
  • Вопрос задан
  • 2720 просмотров
Решения вопроса 1
Singerofthefall
@Singerofthefall
Попробуйте как-нибудь так.
Для каждого параметра в каждом доспехе вам нужно установить что-от вроде «редкости», или «ценности». Например, на тяжелом доспехе бонус к мане будет почти ничего не стоящим, а бонус, например, к хп, будет стоить дорого.

Дальше выберите какую-то функцию, по которой цена будет расти в зависимости от значения атрибута. Если у вас атрибут сначала растет медленно, а потом «ускоряется» (например нормальная броня на 5 уровне — 10, на 10м — 20, а на 15 — сразу 100), то вам наверное подойдет какая-нибудь логарифмическая функция. Если наоборот, сначала растет редко, а потом замедляется (например на 5 уровне — 10, на 10 — 20, на 15 — 27, на 20м — 30 и т.д.), то подойдет какая-нибудь показательная функция.

Ну а потом вы сможете подсчитать изменение цены для каждого атрибута в зависимости от этой функции, умножить на коэффициент «полезности» для атрибута, и получить цену.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы