Простая формула для корректировки цены на основе спроса и предложения - PullRequest
2 голосов
/ 19 апреля 2011

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

Что я уже выяснил:

  • Мне не нужна сложная, «реалистичная» система, а просто простой множитель, основанный на некоторых статистических данных.
  • Я хочу, чтобы алгоритм был устойчивым к злоупотреблениям и небольшому количеству игроков, поэтому этот множитель долженне генерироваться динамически, а храниться вместе с другими торговыми данными и обновляться один раз в несколько дней
  • . Таким образом, требуемые статистические данные должны быть небольшого объема - будет много NPC, каждый со своим списком предметов,цены и статистика - поэтому он может быстро расти в размерах с развитием игрового мира.

Проблема в следующем: Какой тип формулы будет «лучшим» для этого вида множителя?

Отказ от ответственности:

  • Это может показаться связанным с Моделирование спроса и предложения , но мне не нужна библиотека, просто сомСоветы о том, как это сделать самостоятельно.
  • Я знаю, что, возможно, уже существует экономическая модель, имитирующая эту проблему, но я никогда не изучал экономику, поэтому даже не знаю, что мне следует искать.
  • Нет, это не домашняя работа, но, вероятно, она звучит как одна, поэтому я добавляю тег: P

1 Ответ

5 голосов
/ 19 апреля 2011

Я разработчик игр, который изучал экономику, поэтому я могу дать вам ответ экономистов двумя руками.

С одной стороны, у вас есть экономика, где формула удивительно проста. Просто найдите его в Google или просмотрите главу 1 любой книги по экон. Вы можете использовать эту формулу, но поскольку экономика связана с личным поведением, она игнорирует сложности принятия человеком решений и просто называет это максимизацией (введите все, что здесь максимизируется). Это означает, что для того, чтобы использовать действительно простую формулу, вы должны реализовать действительно сложный ИИ, если игроки не будут единственным производителем / потребителем. Если вы не строите симуляцию, это не хороший путь.

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

Начните с предположения базовой стоимости предмета. Это не должно быть необычным спросом или предложением. Определите разумный инвентарь. Этот инвентарь не обязательно должен быть суммой, доступной в одном магазине, но доступной в целом. Затем определите максимальную сумму, которую кто-либо заплатит за один из них. Опять же, это просто для развлечения. возьмите доступное по оси x и стоимость по Y и вычислите уклон.

Меч довольно широко доступен, поэтому предположим, что в любой момент вы можете получить 10 на 5 золотых. Теперь предположим, что никто никогда не заплатит больше 20, если их всего 1. У вас есть две точки 10, 5 и 1, 20. Когда линия пересекает y = 0, торговцы больше не будут покупать меч.

Линейные "кривые" довольно распространены в экономике. большинство кривых, таких как знаменитая кривая Лаффера, на графике действительно почти плоские.

...