Рубрика развивается при поддержке
Gamedev
Andrey Panfilov
12 550

Введение в баланс экономики

В закладки
Аудио

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

В ней вы найдете такие увлекательные вещи, как:

  • числа!
  • больше чисел!
  • скриншоты таблиц с числами!
  • быстрое и невнятное введение в тервер!
  • скрипт на Питоне!
  • непонятные графики!
  • ссылка на гугл-таблицу!

Запрыгивайте и поехали.

Теория

Что вообще такое баланс?

Это просто числа. Числа и взаимосвязи между числами - в общем, система.

Я привык делить баланс на две крупные категории:

1. Боевой баланс

Blizzard - World of Warcraft

2. Экономический баланс

CCP Games - Eve Online

Если системы в балансе нет, наступает дизбаланс. Это не то, что мы хотим, ведь правда?

Сегодня я хочу немного поговорить об экономическом балансе.

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

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

Или возьмем жизнь современного человека: каждый день мы ходим на работу - тратим энергию, чтобы получать деньги - чтобы не умереть - тратим деньги, чтобы покупать еду, платить за жилье, в общем - чтобы восстанавливать энергию.

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

Практика

Ну ладно, а теперь к делу! Давайте сами построим простой игровой цикл.

Игра:

  • игрок может убивать монстров
  • игра разбита на уровни
  • с монстров падает золото
  • игрок тратит золото на покупку оружия и банок здоровья

Условия:

  • есть 10 уровней
  • есть 5 комплектов оружия помимо стартового
  • нужно, чтобы игрок провел в игре 20 дней

Основная идея циклического баланса в том, что в определенных точках игрок должен тратить то, что накопил - собственно, обеспечивая баланс доходов и расходов.

В конце статьи будет ссылка на гугл-таблицу с расчетами.

1. Распределяем контент по дням

Начнем с некоторых допущений. Нам нужно, чтобы игрок играл 20 дней, но у нас есть только 10 уровней, и только 5 комплектов оружия. Так что придется заставить игрока погриндить - сначала чтобы пройти уровень, а потом чтобы получить новое оружие.

Что нам делать с этими цифрами? Мы могли бы придумать какую-то формулу, но игра простая, данных не так много, так что можем просто использовать здравый смысл:

  • в начале стоит выдавать контент щедро
  • чем дальше, тем реже его можно выдавать - в надежде, что у игрока уже сформировалась привычка играть в нашу игру

2. Доходы и расходы

Теперь давайте посчитаем доходы и расходы игрока. Во-первых, давайте перейдем от "игрок получает уровень X на день Y" к "игрок проводит X дней на уровне Y":

Теперь давайте посчитаем, сколько золота игрок должен получить на каждом уровне. Мы могли бы считать это сразу в лоб, но давайте используем промежуточную метрику: сколько золота игрок получил бы на уровне в день, если бы провел весь день на этом уровне.

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

Допустим, что доход в день на уровне X равен X, умноженному на некий коэффициент k:

f(X) = X * k

И пусть k равен 100, потому что почему нет?

После того, как мы получили значения дневного дохода, посчитать доход на уровне довольно легко - мы просто умножаем наш доход в день на уровне на количество дней, которое игрок проведет на этом уровне:

Отлично, теперь нам нужно посчитать расходы. Придется опять использовать какие-то предположения, потому что первые варианты баланса почти всегда на них построены:

  • игрок играет ровно так, как мы считаем, что он играет
  • он покупает и использует банки здоровья мгновенно, сразу после получения урона
  • он покупает оружие мгновенно, сразу как у него хватает на это золота
  • в конце каждого уровня у него должно оставаться 0 золота

Начнем с дней и уровней, в которые игрок не покупает оружие. Очевидно, это значит, что там он тратит 100% того, что зарабатывает, на банки здоровья:

Что насчет остальных уровней? Тут мы опять можем позадаваться какими-то пропорциями, которые кажутся нам логичными. Например, предположим, что на первом уровне игрок тратит 30% своего дохода, чтобы купить оружие, а потом пропорция сдвигается в сторону более дорогого оружия.

Теперь несложно посчитать, сколько золота игрок тратит на банки здоровья там, где покупает оружие - потому что это просто все золото, которое он не тратит на оружие. Заодно давайте убедимся, что все посчитано правильно, и у игрока в конце уровня не остается золота.

3. Монстры

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

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

Но погодите, разве весело получать каждый раз одно и то же количество золота за каждого монстра? Ну уж нет, мы можем лучше.

Что обычно делает гейм-дизайнер, когда сталкивается с проблемой того, что что-то "слишком предсказуемое"? Он использует рандом, и теперь у него две проблемы.

Допустим, мы хотим, чтобы было как-то так:

  • с монстра может упасть "мало" или "много" золота
  • "мало" золота может упасть с большей вероятностью, чем "много"

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

Теперь давайт выберем какие-то вероятности. На мой вкус 70% выглядит достаточно высоким шансом, а 30% - достаточно низким:

Но что теперь?

Быстрое отступление про теорию вероятностей

В теории вероятностей наше "золото с одного монстра" можно было бы назвать математическим ожиданием (или просто матожиданием) случайной величины. Случайная величина "золото, выпавшее с монстра" принимает здесь всего два значения: золото min и золото max, и никогда не равно "золоту с одного монстра", но в среднем, после достаточного количества убитых монстров, игрок получает "золото с одного монстра" за каждого убитого монстра.

Brett Jordan для Unsplash

Можно подумать об это так: возьмем обычную игральную кость (ее еще иногда называют D6, потому что у нее шесть граней). Давайте поиграем с ней в простую игру:

  • кидаем кость
  • добавляем выпавшее к своему счету
  • кидаем опять
  • и так далее

Сколько очков мы получим за бросок в среднем? Если бросить кость тысячу раз (нам же нечем больше заняться) и взять арифметическое среднее, мы получим какое-то число, довольно близкое к 3.5.

Этот результат может выглядеть не очень интуитивно, потому что у кости нет грани с 3.5 очками, но такова жизнь.

Но можно ли как-то получить этот результат без того, чтобы много раз бросать кость? После первых 900 раз игра немного надоедает.

К нашему счастью, средний результат броска кости D6 - это и есть ее матожидание. Посчитать его можно так:

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

Поскольку мы считаем, что кость - честная, вероятность выкинуть любую из граней одинаковая и равна 1/6 (потому что у кости 6 граней).

Так что матожидание игральной кости:

M = 1 * 1/6 + 2 * 1/6 + 3 * 1/6 + 4 * 1/6 + 5 * 1/6 + 6 * 1/6 = 3.5

Все сходится. Слава богу, что мне больше не надо бросать кость.

Снова к монстрам

Итак, в нашем случае "золото за одного монстра" - это матожидание награды за убийство этого монстра:

М = золото(min) * p(min) + золото(max) * p(max)

Мы уже знаем M и выбрали p(min) и p(max), но у нас по-прежнему одно уравнение и два неизвестных, так что нужно либо найти где-то больше уравнений, либо избавиться от одного из неизвестных.

Давайте решим, что "мало" золота - это половина нашего "золота за одного монстра":

золото(min) = M / 2

Теперь несложно найти золото(max):

золото(max) = ( M — золото(min) * p(min) ) / p(max)

4. Банки здоровья

Теперь осталось только посчитать количество банок здоровья, которое игрок покупает на каждом уровне. Давайте считать, что есть только один тип банок, и они всегда стоят одинаково:

5. Резюмируем

Мы построили грубую модель простой игровой экономики. Мы:

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

Модель намеренно не очень хорошая, и сейчас мы с вами в этом убедимся.

6. Проверка

Я написал простенький скрипт на Питоне, чтобы проверить свой баланс:

import random monsters_count = 3 gold_min = 9 p_min = 0.7 gold_max = 36 p_max = 0.3 golds = [] for j in range(100): gold = 0 for i in range(monsters_count): roll = random.random() if roll < p_min: gold += gold_min else: gold += gold_max golds.append(gold) print(“У среднего игрока: “ + str(sum(golds)/len(golds)) + “ золота”)

Если вы не знаете Питон - ничего страшного. Вот все, что происходит в этом скрипте:

  • задаем значения переменных для количества монстров, наград в золоте, вероятностей для уровня 1 (мы их только что посчитали)
  • создаем пустой массив
  • повторяем сто раз, как будто играют сто игроков:
  • “кидаем монетку”
  • на основе заданных шансов решаем, получит игрок "мало" или "много" золота
  • повторяем столько раз, сколько монстров на уровне
  • складываем полученное "игроком" золото
  • добавляем в массив, который до этого создали
  • берем арифметическое среднее по массиву и выводим в человекочитаемом виде

Если хотите, можете попробовать выполнить этот скрипт сами. Для этого вам понадобится пойти на сайт Питона, нажать "Downloads" и следовать инструкциям для вашей ОС. Питонов бывает два: Python 2 и Python 3. Я использую 3.

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

Итак, результаты:

У среднего игрока: 53.19 золота

Выглядит неплохо! По расчетам должно было получиться 50, но результат не так уж далек от требуемого. В конце концов, в наших расчетах мы много чего округляли, а рандом не гарантирует ничего на 100% (на то он и рандом), так что все в пределах нормы.

Это ловушка, в которую часто попадают начинающие гейм-дизайнеры. Жизнь среднего игрока выглядит нормально, но существует ли средний игрок на самом деле?

Давайте немного улучшим наш скрипт и добавим код для визуализации результатов. Если вы хотите повторить это у себя, вам нужно будет пойти в консоль (cmd для Windows, Terminal для Mac) и написать "pip install seaborn", а потом "pip install matplotlib", чтобы установить библиотеки визуализации данных, которые я буду использовать.

import random import seaborn as sns import matplotlib.pyplot as plt monsters_count = 3 gold_min = 9 p_min = 0.7 gold_max = 36 p_max = 0.3 golds = [] for j in range(100): gold = 0 for i in range(monsters_count): roll = random.random() if roll < p_min: gold += gold_min else: gold += gold_max golds.append(gold) print(“У среднего игрока: “ + str(sum(golds)/len(golds)) + “ золота”) sns.set() fig = sns.distplot(golds, kde=False) fig.set(xlabel=’Количество золота после уровня 1', ylabel=’Количество игроков с таким количеством золота’) plt.show()

Теперь код делает то же самое, но вдобавок строит график распределения количества игроков по количеству золота у них в конце уровня.

Упс. 40 игроков действительно получили около 55 золота, но:

  • 40 других игроков получило примерно 35, что меньше, чем было надо. Скорее всего, они будут не очень счастливы в игре, потому что им будет не хватать золота на новое оружие или банки здоровья.
  • 17 игроков получили примерно 80 золота, и еще 3 получили примерно 100, что означает, что для них игра будет слишком простой

Почему так получилось?

Проблема, разумеется, в том, как с монстров падает золото.

Тут примерно как на этой картинке:

В среднем стрелок попал в "яблочко", но в действительности ни один отдельный выстрел в него не попал.

Как нам исправить сиутацию?

Добавить больше монстров

Для начала стоит понять, что рандом лучше работает на больших числах.

Если взять уровень 10, то там игроку нужно убить 15 монстров с "маленькой" наградой в 100 золота и "большой" наградой в 434 золота, чтобы заработать 3000 золота на этом уровне. Если прогнать все это через скрипт, мы получим следующее:

Картина все еще не очень, но что, если бы на уровне 10 было сто монстров? В таком случае, с каждого монстра падала бы "маленькая" награда в 15 или "большая" награда в 65 золота, с матожиданием в 30 золота с монстра.

Как видите, теперь количество золота распределено гораздо ближе к матожиданию: 2800-3200 золота вместо 2000-3500.

Можно пойти дальше и заставить игрока убивать 200 монстров вместо 100, и чем больше будет монстров, тем плотнее будет распределен результат.

Сузить разброс наград

Давайте представим, что золото(min) равно M / 1.5, а не M / 2:

Можно заметить, что результаты теперь стремятся ближе к 50. Они будут стремиться ближе и ближе, пока мы не достигнем точки, в которой золото(min) = золото (max) = M.

В следующей главе:

Баланс боевки! Посчитаем ХП игрока, скейлящаеся от его уровня, ХП монстров, урон игрока и монстров, и так далее.

Кстати, вот ссылка на мою гугл-таблицу:

Вопросы, на которые можно попробовать ответить перед следующей главой:

1. Сейчас баланс устроен так, что траты на банки на некоторых уровнях ниже, чем не предыдущих. Это не обязательно плохо, но как нам это поменять, если захотим?

2. Что поменяется в расчете монстров, если вместо одинаковых монстров в пределах уровня будут одинаковые монстры и один босс? А если будут монстры, несколько мини-боссов и босс?

3. Что сделать с наградами за монстров, если мы хотим, чтобы впечатления игрока меньше зависели от рандома?

4. Как нам посчитать доходы и расходы экспы, если мы хотим, чтобы у игрока был уровень?

{ "author_name": "Andrey Panfilov", "author_type": "self", "tags": [], "comments": 75, "likes": 297, "favorites": 770, "is_advertisement": false, "subsite_label": "gamedev", "id": 87068, "is_wide": false, "is_ugc": true, "date": "Sat, 14 Dec 2019 17:49:57 +0300", "is_special": false }
Разработка игр для PC, консолей
и мобильных платформ
Я готов!
0
75 комментариев
Популярные
По порядку
Написать комментарий...
31

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

Ответить
8

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

Ответить
2

Пиши, полет на реактивной тяге - это тоже прогресс. А то обсуждение одного и того же раз за разом довольно уныло.

Ответить
2

Я бы почитал такую депрессивную статью.

Ответить

Взаимный Орзэмэс

Andrey
1

пиши

Ответить
2

Правда это только часть геймдизайна) В посте геймдизайнер из мобильной галеры коих там довольно много. Но в само понятие входит и создание экспириенса для игрока и механики, и наратива, и визуала. Геймдизайн касается всех аспектов разработки, довольно интересное направление)

Ответить
–1

Очень смешные поллюции от человека, явно начитавшегося про ГД в интернетиках и называющего мобайл галерой, бгг

Ответить
0

Работаю в геймдеве 5+ лет. В мобайл галере тоже был. С оупенспейсом и всеми сопутствующими. Мобайл галера это не про жанр, а про компании. В моих кругах такое обозначение часто ходит.

Ответить
–2

Мебелью работаешь?)

Потому что твои влажные фантазии про ГД к реальности имеют мало отношения, зато очень похожи на то, что школьники друг другу на геймдев.ру упоенно рассказывают

Ответить
0

Вам видимо виднее)

Ответить
–1

Ну, в общем, как бэ да
У меня, о, ирония, тоже 5 лет в геймдеве - только не мебелью

Ответить
0

Ору просто) ЧСВ прям безмерное. Насчёт того кто в такой ситуации мебель я бы всё таки задумался. Если вы не знали, геймдев это не только с пацанами "убийцу майнкрафта" на мамкины деньги делать)

Ответить
–2

Да-да, именно поэтому я и подчеркнул разницу между собой и тобой с твоими пацанами.

Ответить
0

Ты вроде как должен быть человек с фантазией для такой работы, а по факту чего-то умнее дешёвых дворовых шутеечек выдавить не получается?

Ответить
0

Посмотрел я твои проекты, ультра-печально что у людей в команде есть человек вроде тебя... Как с привлечением аудитории, печально правда? Ссылки на собственном сайте пробовали подключать? Что-то важное может в новостях показывать? Паблик с "водой" это конечно круто и очень типично для русского "геймдева", но, к сожалению, это никому не интересно. Пока уровень организации и выхлоп напоминает одного умника делающего вырвиглазные ассеты и плагины для юнити с завышенным ЧСВ. Вы случайно не родственники? Так что, товарищ "продюсер", почитайте на досуге побольше о разработке, организации труда и маркетинге, пока что-то прям печально с этим. 

Ответить
0

Забавно, что прочитал этот понос я, а вытирать монитор от соплей тебе)

Смотри не лопни там что ли

Ответить
0

В ответ по делу не умеешь, да?) неужто сгорел?

Ответить
11

Как пример работы инфа интересная, но это же дизайн мобильных дрочилен; правила 10 уровня не хватает только. Изыди демон!!!

Ответить
3

хм, а можно подробнее про правило 10 уровня?

Ответить
15

Да, примерно что Кирилл описал чуть ниже. Внушительная часть мобильных дрочилен до 10 уровня (может варьироваться, но довольно часто это именно 10 уровень) тебе пытаются "втюхать", что это очень интересная игра, у тебя не кончается энергия / золото / здоровье / попытки, потому что ты получаешь новый уровень в нужный момент и запасы "расходного материала" автоматически пополняются. А вот начиная с 10 уровня новое "сюжетное задание" делает очень резкий скачок, чтобы побудить тебя заплатить. Могут закидать специальными предложениями (естественно ограниченными и только для тебя любимого), или еще чего похлеще, главное - ты будешь вынужден сделать перерыв, а если не хочешь - давай 5 долларов. Самое тупое, что приличный процент посылает игру на хуй, но определенная часть игроков действительно совершает покупки, и вот из-за ̶т̶а̶к̶и̶х̶ ̶п̶и̶ из-за наличия такого спроса + мажоров, которые могут просто взять и купить какую-нибудь херню за 100 000 рублей, все эти дрочильни и остаются на плаву. Они реально приносят деньги, а игровая индустрия как и любая другая это бизнес и ничто другое. Те кто пытается быть другим - не выживают, за парой-тройкой исключений; хотя лично я уверен на 100%, что рано или поздно их время придет. Я лично запускаю такое лютое китайское дерьмо на разных платформах, что я физически не представляю как можно в ЭТО играть. А люди платят, в особо "тяжелых" случаях счет идет на миллионы рублей, как-то так.

Ответить
1

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

То что казуализация никогда ничего хорошего не приносила ни одной медиа-отрасли, оно предсказуемо. Но другой экономики у них для нас нет. Ничего, придёт время и Tencent будут подкидывать этим вашим Дубовским на допиливание очередного Мора, будут подбрасывать корм индюкам на их творчество. Впрочем уже. Меценатство тоже иной раз может быть хорошим капиталом. Даже такие казалось бы бездушные сущности как китайские людоедские корпорации проинвестируют в "искусство", если это посулит им выгоду. Бездушной корпорации тоже нужен позитивный PR, чтобы от неё не бежали как от поветрия. Но заказывать музыку они будут, от этого никуда не деться.

Ответить
6

Тоже не слышал про 10-й уровень, но предположу, что речь про правило "Игрок должен проиграть в конце первой сессии" или "наткнуться на пейволл во второй". 
Реально про сложность мобильных дрочилен.
Оно +- про 10-й уровень каких нибудь 3 в ряд (10 уровней по 3 минуты)

Ответить
1

Да там вполне Diablo III описана. Золото с монстров падает. Понимаете?

Ответить
8

"Золото с монстров падает"
короткое мнение Боби Котика про аудиторию игр близард 

Ответить
4

Мне кажется, что тут очень всколзь упомянуты важные моменты - исходные.
10 уровней и 5 мечей установлены как данность (и часто так и бывает), так же как и то, что в начале игроку чаще сыпятся оружие и проходятся уровни.
А меж тем, это имеет под собой веские основания - и весь дизайн в смысле математики подчинен этим требованиям.
Конкретно в статье указано несколько таких исходных - количество оружия и уровней, время игры и, предположительно, интерес для игрока

- Оружие и уровни - это ограничение по контенту - нам столько сделают художники за пол года и сделать больше будет сильно дороже и денег нет
- 20 дней - это бизнес требование, предполагается, что за это время игрок купит у вас 10 шапок или будет считать, что 30 баксов за полную версию потрачены не зря
- Интерес в игре - ну, очевидная вроде исходная, хотя, судя по мобильным сторам, не совсем. Мы знаем эмпирически, что в начале игрока нужно вовлечь, поэтому нужно делать больше интересных событий (выдачи оружия и награда игроку), а со временем - все реже, делая каждую следующую ценнее и дороже.

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

Как часто выдавать оружие зависит скорее от того, как интересно игроку играть в игру без нового оружия.

Если у тебя в игре только и есть что монстры и оружие, а игровой процесс не супер сложный - тебе нужно выдавать первое оружие через 5 минут, второе - через 10, третье - через 25 и т.д, эти величины нужно подбирать по ощущениям (после выпуска игры - по аналитике)
Соответственно баланс, посчитанный таким способом сможет ответить тебе на вопрос - если Я выдаю по 10 золотых с монстра, и игрок убивает Х монстров в минуту, сколько должно стоить первое оружие в магазине.

Ответить
4

Короче Я написал дофига, но малоосмысленно, а суть проста - у баланса есть исходные, и они не относятся к математике, а являются внешними требованиями (возможностями разработчиков и пожеланиями игроков).

Баланс и математика нужна, чтобы удовлетворить требованиям этих исходных или поправить их. Для этого подбираются все эти числа и прогрессии.

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

Ответить

Прошлый франт

Кирилл
0

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

Ну так это лишь базис. Чтобы показать, как оно в принципе работает.

Ответить
0

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

Ответить
0

Да, статья действительно для джунов во многом. Надо наверное обозначать "уровень сложности" в начале.

А так - да, там много всего я обошел стороной, например самое важное:
- вот мы сказали, что в игре надо провести 20 дней
- а как это обосновать? это сессионная игра с энергией? или мы просто предполагаем, что средний игрок играет n часов подряд n раз в день?

Ответить
–3

Весь смысл статьи:

Вы думали геймдизайнер это понимание того, как сделать игру хорошей, чтобы продалась?

Нет, в наших мобильных дрочильнях ты будешь считать арифметику 6-го класса в Экселе!

Ответить
8

Спешу расстроить: вне "мобильных дрочилен" тоже работают с балансом, и тоже при помощи таблиц.

По поводу 6-ого класса - во-первых, это примитивный ввод в баланс, а не реальный кейс из работы. Во-вторых, с каких пор в 6-ом классе проходят теорвер?

Ответить
0

Номад в геймдизайнере - это бич современности. Все думают, что сделав игру по принципу "ну мне нравится" они станут миллионерами. Вот только старкрафт стал стандартом индустрии из-за идеального баланса, но не из-за "ух-ты давайте вот такое добавим в игру" (как бы не казалось обратное людям с улицы); а в какую-нибудь стрелялку становится скучно играть, потому что несмотря на 100500 пушек, которые нужно "заслужить" игра проходится пистолетом, выданным на первом уровне.

Ответить
0

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

Ответить
3

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

Ответить

Прошлый франт

Кас
1

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

Ответить
–7

》Если системы в балансе нет, наступает дизбаланс. Это не то, что мы хотим, ведь правда?《

А вы точно разработчик игр? 

Как раз дизбаланс и нужен. Игрок хочет развлекаться и побеждать. Аасиметрия затрат и получаемого фана. Более того игрок будет искать узкие места что бы получить 'нечестное преимущество' и этого никак не избежать. 

Ответить
7

Более того игрок будет искать узкие места что бы 'нечестное преимущество' и этого никак не избежать. 

Находя узкие места он будет получать удовольствие... (блин пошлость какая-то вышла xD)
Подталкивать игроков к поиску оных вполне можно и даже нужно.

Ответить

Прошлый франт

Ярослав
4

Вы не понимаете, что такое игровой баланс. Это не "свести дебет с кредитом". Это "достичь требуемого результата нужными игровыми параметрами".

То есть, достижение нужного уровня ассиметрии для поддержания интереса игрока и будет балансом. А дисбалансом, когда игроку будет слишком скучно и ему быстро надоест, или когда слишком сложно и он не осилит.

Для примера - центр тяжести самолёта находится не в геометрическом центре, иначе он будет херово (и недолго) летать.

Ответить
0

так автор про это и пишет в тексте "

Но погодите, разве весело получать каждый раз одно и то же количество золота за каждого монстра? Ну уж нет, мы можем лучше.

Что обычно делает гейм-дизайнер, когда сталкивается с проблемой того, что что-то "слишком предсказуемое"? Он использует рандом, и теперь у него две проблемы." и как раз дальше описывает как сделать непредсказуемую, но интересную игру

Ответить
4

Мне вообще кажется странным получать золото с монстров. Мясо, шкуры, клыки, когди - да. Но золото...

Ответить
0

Комментарий удален по просьбе пользователя

Ответить
4

Хорошо если именно жертв 

Ответить
0

Чем-то экшеновый The Bards Tale напомнило, там с гоблинов вроде семейные фото выпадали.

Ответить
1

это уже отдельная тема

Ответить
1

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

Ответить
2

Попробую ответить на вопросы: 

1. Из очевидного - если не трогать прочие параметры - либо увеличить объем доступного на уровне золота (с сохранением пропорций трат на оружие и банки), либо уменьшить долю трат на оружие. Оба варианта, по-моему, неудачные, т.к. первый приведет к резкому скачку в прогрессии уровней и/или гринду, а второй "сломает" прогрессию оружия, т.к. более мощное будет покупаться дешевле. Эти варианты неудачны еще и потому, что "лечат" проблему локально - отдельно на каждом из уровней. Наилучшим способом, на мой взгляд, было бы перестроить всю экономику уровней так, чтобы соблюдалась и прогрессия трат на банки, и прогрессия трат на оружие. Но это изменит и значения дохода в день, и дней на уровне. Причем рост дохода в день уже экспоненциальный, а не линейный. 

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

3. Может, ввести какие-нибудь условия, которые игрок контролирует? Например, если просто убить монстра - получаешь золото min, а если убить, совсем не получив от него урона - то золото max. В подобном случае при расчете баланса придется делать еще и поправку "на скил", прикидывая, как будет играть средний игрок. Или взять дефолтное значение золота с уровня (17 на 1-ом уровне), и отнимать от него некоторое значение при определенных условиях, зависящих от скила игрока. 

4. Примерно так же? При условии, что уровень считается пройденным, елси 100% монстров убито, то решаем, на каком уровне (через сколько дней) игрок должен получить Н-ный левел. Определяем, какое кол-во ХР игрок получает с каждого монстра и умножаем на количество монстров на уровне, чтобы на основе этих произведений выстроить прогрессию. Но только здесь может быть концептуальный момент: за каждого монстра всегда дается одинаковое кол-во ХР или количеств ХР зависит от левела игрока (больше левел, меньше ХР дается за рядового монстра)? Если первый вариант - то все примерно так же линейно, как с золотом (только без рандома). Если второй - то вводим новую формулу, корректирующую выдачу экспы и эти значения экспы умножаем на кол-во монстров на уровне, чтобы получить произведения для построения прогрессии.

Буду рад обратной связи :)

Ответить
2

1. точно :) если вдруг мы очень хотим, чтобы траты на все всегда росли - линейная функция нам, скорее всего, не подойдет. действительно, подойдет экспоненциальная:

 https://gyazo.com/afe8f5ed20d0a1f8c6ef10dfdc2f8c90

(тут доход в день = e(уровень) * 100, округленное до ближайшей сотни)
тогда, правда, наше золото от уровня к уровню сделает так: 

https://gyazo.com/d3ed2a206b933e93b338729e25de4ba6

но зато траты правда будут непрерывно расти: 

https://gyazo.com/533af1740ad2df38c169bcb5a9f069d1 

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

3. отличная мысль, кстати! еще можно поменять принцип дропа наград. типа чтобы было три возможных дропа, или чтобы был любой возможный дроп в заданном промежутке (min...max). но идея с завязкой на скилл мне лично прям нравится. 

4. все так :) в целом, в данном примере расчет экспы принципиально отличаться от расчета золота не будет, просто он будет чуть проще: синк только один - левел-ап.

Ответить
0

Спасибо)

Ответить
2

Обожаю школьников и студентов, которые игнорят математику, теорию вероятности, статистику, эконометрику и прочие подобные дисциплины пребывая в святой уверенности, что станут вместо всей этой скукоты заниматься РАЗРАБОТКОЙ ВИДЕОИГР.

Ответить
1

Да как нефиг делать. Убираем из игры золото, прокачку и все становится в разы легче🙈

Ответить
2

Journey? Это ты? 

Ответить
0

Это кто?

Ответить
2

Отличная статья, спасибо

Ответить
0

Чо это за ХуешиандА проминусила наши ровные каменты? :)

Ответить
2

Статья очень поверхностная. Написано много букв, всё выглядит умно и красиво, но никакой ценной инфы в статье нет. Жаль.

По боевому балансу можете мою лекцию посмотреть, это пока единственное что я делал. Если будет запрос, могу сделать по экономике.

https://youtu.be/tYg4c6zMB9Y

Ответить
0

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

Ответить
0

Увы, лекция планировалась на полтора часа, а дали мне только час. Я как раз не успел рассказать как же применять Роу павер в расчетах, с учётом пространства, свойств сущностей и тд

Ответить
1

С дальним боем можно еще как-то разобраться, можно найти статьи с интересными идеями и решениями.
Но вот с расчетами способностей появляются проблемы.
Ведь каждая способность несет в себе отдельную механику. Как это корректно ввести в формулу вычисления "мощи".
Например, "стан", "сон"(+есть условие что если ударить можно вывести из сна), возвращение урона(получается мощь будет в некоторой степени зависеть от врага)

Ответить
0

Да, увы, что короткая была, очень понравилась лекция. Почерпнул много полезного)

Ответить
1

Чет от картинки на превью всплакнул. 
Очень жизненно. 

Ответить
0

Половина тех кто увидели этот пост отправили его в закладки, но не прочитали.

Как и я.

Ответить
2

* но никогда его не прочитают.

Сам так делаю. Через какое-то время закладок просто становится так много, что туда страшно заходить - вдруг засосёт? 

Но добавлять туда не перестаёшь, вдруг пригодится же

Ответить
0

Ещё можно сохранять картинки, это ещё страшнее.

Ответить
0

Я хотел завести практику конспектирования. Прочёл, сделал тезисную выборку, пошёл дальше. Но это много работы. :)

Ответить

Прошлый франт

Alina
0

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

P.S. И скрипты для моделирования я тоже на пайтоне пишу :D

Ответить
0

Спасибо, не читал, но чую годноту. Ушло в закладки. :)

Ответить
–3

Типичный дизайнер мобильной дрочильни. Проходите мимо. И не стройте свои представления о геймдизайне на основе этого говна. 

Ответить
0

А ты сам, ХуешиандА, собственно, что за хер с горы, чтобы к тебе хоть кто-то прислушался?

Ответить
0

Не только «гейм»... 

дизайн, вообще, сука, вам не развлекушки. X_X

Ответить
0

Спасибо! Отличная статья - люблю такие: на пальцах, иллюстративные! 

Ответить

Комментарий удален

0

Привет, а так?

Ответить

Комментарий удален

0

Все понятно и очень интересно. Вспомнил, как писал курсовую по теорверу и теории игр, прослезился.

Ответить
0

Статья настолько хороша, что я прослезился

Ответить
–1

может мы жили бы в мире где геймдизайн не пытаются превратить в деньги/минута

 но мы в нем не живем
(сраные технари)

Ответить

Прошлый франт

naaak
0

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

Ответить

Прямой эфир

{ "jsPath": "/static/build/dtf.ru/specials/DeliveryCheats/js/all.min.js?v=05.02.2020", "cssPath": "/static/build/dtf.ru/specials/DeliveryCheats/styles/all.min.css?v=05.02.2020", "fontsPath": "https://fonts.googleapis.com/css?family=Roboto+Mono:400,700,700i&subset=cyrillic" }