Этот вопрос закрыт для ответов, так как повторяет вопрос Составление формулы для теории вероятности?

Как устроена математика в лутбоксах?

Разрабатываем многопользовательскую игру, и хотели бы внедрить туда лутбоксы (но не в виде какой-то обдираловки, а с хорошими, жирными шансами).
Собственно сабж, хотим разобраться, как делать прогнозируемые по доходности лутбоксы (примеры лутбоксов - сундуки в CSGO / DotA 2)? Есть ли какие-то математически задачи на эту тему? (искал - не нашел, задача о рюкзаке подходит сюда не сильно). Если кто-то имеет опыт разработки подобного, но не готов делиться информацией бесплатно - готовы заплатить.

Как это видим мы:
Берем, например дистанцию в 5000 открытий лутбокса (стоимость одного открытия - 10 рублей).
Заработать мы хотим на этом от силы - 10%, то есть 5000Р, значит из этого лутбокса должно выпасть 5000 шт. ценностей на общую сумму 45000Р.
И тут возникает вопрос - а каким алгоритмом выбрать эти самые ценности в данном кол-ве и с общей суммой?
Так как в лутбоксе предметы могут быть разной цены (от 1-2 рублей и до 3000-10000 тысяч), нам бы хотелось чтобы кол-во дорогих предметов было как можно большим, по отношению к количеству дешевых предметов.
  • Вопрос задан
  • 1248 просмотров
Ответы на вопрос 2
anton541
@anton541
С точки зрения маркетинга, вам нужно будет указать потребителю (который открывает кейс), каков процент шанса на выпадение определенного предмета. В этом случае алгоритм довольно прост - делите определенные предметы по "классам" и устанавливаете шанс выпадения определенного класса (к примеру 1%-15%-30%-54% - по стоимости предметов соответственно). После этого, вы устанавливаете шанс на выпадение предметов в определенном классе (схема такая же). Либо вы этот шанс не будете указывать, но он все равно является ключевой задачей алгоритма.

Сам алгоритм: вы берете определение 1000 (больше, если оборот будет большой) открытий коробки, и распределяете в процентом соотношении на конкретные ID по этой тысяче (то есть у вас получается к примеру 10 человек получили золото, 150 получат серебро, 300 получат бронзу, 540 получат дырку от бублика) и рандомите все это, устанавливая определенные правила алгоритма (например, чтобы подряд не выпадали, или чтобы на каждые 200 дырок выпадало по 2 золота) и составляете цены.
После 1000 открытий коробки счетчик сбрасывается и начинает крутить по новому.

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

Счетчик алгоритма лучше брать с запасом, ибо чем меньше счетчик, тем "палевнее" работа алгоритма. Когда у вас счетчик выпадения идет под 10.000, то все это выглядит действительно как "Рандом". Ибо в этом случае увеличивается число "комбинаций" выпадающих предметов за каждые 10 открытий (условно)
Ответ написан
dollar
@dollar
Делай добро и бросай его в воду.
Математика простая, нужно лишь использовать понятие математического ожидания.

Каждый предмет имеет некую стоимость либо в рублях, либо в игровой валюте, либо во времени, либо это некий аналог мощи/силы - не важно. Спросите у своего геймдизайнера (балансера), что почём. Прикручивая шанс к предмету, вы как бы уменьшаете его стоимость. То есть если Меч тысячи истин стоит 500 руб, то при шансе 1% его мат. ожидание будет 5 руб, очевидно. Далее просто складываете все мат. ожидания в сундуке - это будет мат. ожидание стоимости сундука, вот и берите его за основу. Затем можете увеличить или уменьшить эту стоимость сундука на некоторую величину, какую захотите, чтобы это было достаточно "честно" для вас. Как по мне, честность здесь сомнительная. Эту математику многие игроки тоже понимают, хотя бы интуитивно (когда шансы видны). Здесь нужна не честность, а баланс. Так что лучше делегировать всю эту математику геймдизайнеру, или кто там у вас отвечает за монетизацию.

Далее, в геймдеве часто используют как раз-таки, так называемый, нечестный рандом. Он может быть по-разному нечестный, но сути это не меняет. Например, более-менее справедливый вариант: если Меч тысячи истин (с шансом 1%) не выпадает с 200го лутбокса, то игра должна впихнуть его, чтобы игрок был в конце концов счастлив. А если игроку выпал этот Меч тысячи истин, то чтобы он более не выпадал следующие 50 лутбоксов, а то уж больно жирно. В целом, шанс так и остаётся 1%, так что обмана, как такового, нет. Но, конечно, если игроки будут знать эти детали, то начнут абузить вашу систему по-чёрному, что в итоге приведёт к искажению шансов. Как говорится, думайте сами, решайте сами, нужны или не нужны вам заявленные хорошие жирные шансы. Хотя в рамках маркетинга вы, конечно, можете использовать любые слова, но это уже лучше делегировать маркетологу. А здесь в вашем вопросе эти слова слегка неуместны.

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

Ещё к слову, каждая механика вводится для какой-то цели. Отталкивайтесь от этой цели, когда формируете состав лутбокса и прочие его особенности. То есть задача - добиться поставленной цели, а не просто ввести фичу для галочки. Обезьянничать - плохо. Нужно понимать, зачем в CSGO / DotA существуют лутбоксы и каким образом они делают игру лучше. Может быть, оно вам и не нужно вообще в вашей игре.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы