Этот вопрос сосредоточен не на видеоиграх, а на играх в целом. Вчера я пошел на выставку настольных игр и спросил себя, есть ли способ рассчитать честность игры. Конечно, некоторым из них требуется удача, но можно рассчитать, если какой-то персонаж одолел. Особенно в ролевых и торговых карточных играх. Как, например, создатели "Magic: The Gathering" могут убедиться, что не существует "одной карты, которая победит их всех", учитывая внушительное количество доступных карт?
40
Ответы:
Да, это теоретически возможно - это хорошая часть теории игр, которая занимается этим вопросом.
Тем не менее, это очень редко практично , и даже тогда, в основном, только для игр, в которых не используется рандомизатор (Шахматы, Реверси, Го и т. Д.). Комбинаторный взрыв гарантирует, что теоретическое время, необходимое для таких доказательств в более сложных играх, таких как Magic the Gathering, может быть на несколько порядков больше, чем текущий возраст вселенной.
В конце концов, для любой нетривиальной игры вам, скорее всего, придется отказаться от идеи доказательства баланса или честности игры и вместо этого использовать комбинацию из здравого смысла, дизайнерских инстинктов, повторного использования игровой системы и на протяжении всего тестирования.
источник
Короткий ответ: Любая игра с конечным, даже если не определенным, числом доступных ходов, таким образом, имеет конечное число возможных игр. Любая игра с конечной «сложностью дерева игр» теоретически может проанализировать все возможные игры, чтобы определить, равно ли количество игр, в которых выиграл бы каждый игрок.
Проще говоря: если игрок 1 выигрывает ровно половину всех возможных игр в игре, игра сбалансирована. Если это не так, игра смещена в сторону одного игрока или другого.
Однако это простое правило может быть совершенно неосуществимо на практике. Go, например, имеет сложность дерева игр порядка 10 ^ 170 возможных игр, больше, чем количество атомов, которые, как считается, существуют в известной вселенной. Считается, что невозможно составить исчерпывающее дерево игр. Тем не менее, библиотека игр, в которые были сыграны и записаны, исчисляется миллионами и предполагает, что игра имеет «преимущество первого хода» (которое обычно смягчается 1,5 очками «коми», отданными белым).
В отличие от этого, даже учитывая большие общие сложности игрового дерева, все игры M, N, K (игровая доска с шириной M, высотой N, в которой игрок должен создать ряд из K фигур, размещая и никогда перемещение / удаление их) решаются, потому что есть ярлык; целые «ветви» игрового дерева могут быть идентифицированы как всегда вызывающие проигрыш одного или другого игрока. Остальные ветви следуют шаблону, который можно идентифицировать. Крестики-нолики - очевидный пример; В дополнение к наличию только 300 000 возможных игр, есть только 16, в которых один игрок или другой не делает ход, который, очевидно, позволит другому игроку выиграть на следующем ходу. Таким образом, дерево игр начинается с малого и становится меньше, если учесть игры, которые на самом деле могут делать игроки.
В играх с элементом удачи сложность дерева игр завышена за пределы количества решений, доступных каждому игроку. Поскольку в игру больше не играют с «идеальной информацией», как в шахматах, шашках, го, отелло и т. Д., Игрок, который сыграл идеально, учитывая известную информацию в то время, все еще проигрывает игре. случайный элемент Эти игры не имеют «решения»; однако, как правило, существует конечное дерево игр, и поэтому теоретически игры могут быть проанализированы исчерпывающе. Это все еще обычно невыполнимо; вместо этого игры с вероятностью подвергаются вероятностному анализу для определения стратегий «лучшей ставки», и если эти стратегии оказываются в пользу игрока, который их использует, независимо от стратегии, используемой любым другим игроком (включая ту же стратегию),
В целом применяется следующее правило: если дизайн игры по своей сути приводит к неравенству в одном или нескольких из следующих элементов, игра имеет тенденцию к смещению:
Теперь дизайн игры может вводить одно неравенство, но пытаться компенсировать другое. Либо, дизайн игры может учитывать случайность в областях, которые могут вызвать смещение, то есть одна игра может быть смещенной, а другая более справедливой (игры со случайными стартовыми досками могут демонстрировать это). В этих случаях только эмпирический анализ игр между игроками примерно одинаковой силы в долгосрочной перспективе может продемонстрировать какую-либо предвзятость.
Для большего обсуждения предвзятости в настольных играх, попробуйте форумы http://www.geekdo.com ; было несколько обсуждений продемонстрированного смещения в играх, и как избежать указанного смещения в разработке игр в целом.
источник
Я полагаю, что нет заранее подготовленной математической формулы для оценки того, насколько честна игра из-за того, что каждая игра настолько различна и сложна.
Вы не можете реально сравнивать различные игровые параметры и составлять какой-то показатель силы того, насколько хорош персонаж (если ваша игра не очень простая), потому что все они по-разному влияют на ваш игровой процесс и зависят от того, как они реализованы (например, как вы можете оценить, как сила соотносится с жизненной силой? Как дать числовое значение специальной атаке персонажа?).
Вы должны проверить свою игру. Много . Играйте в свою игру самостоятельно, заставьте других играть в нее и сохраните результаты сражений / игр в файле, чтобы получить статистику и оценить, как часто выигрывают определенные персонажи, при каких обстоятельствах и т. Д. Затем убедитесь, что вы реализовали какой-либо способ проверки повторов. или проанализируйте игровой процесс, чтобы увидеть, почему такой персонаж одолел, и примените изменения соответствующим образом.
На самом деле, у вас нет другого выбора, кроме тестирования. Это одна из причин, по которой существуют бета-версии (например, Starcraft2 в качестве беты дал Blizzard возможность сбалансировать 3 гонки по результатам игры).
Подводя итог, играйте в свою игру и заставляйте других играть в нее (вариант с бета-версией). Узнайте, почему игра не сбалансирована с помощью повторов или автоматического анализа, и измените то, что необходимо изменить. Это единственный способ приблизиться к справедливости.
источник
Чтобы доказать, что игра была сбалансированной или честной, вам нужно сначала определить, что означает сбалансированная или справедливая игра. Это довольно расплывчатые термины, которые могут охватывать целый ряд вещей, например, «баланс» игры часто означает:
И так далее.
В общем, я фанат математически доказывать подобные вещи, но чтобы что-то доказать с помощью логики или тестирования, сначала нужно четко определить это. Некоторые аспекты баланса легко проверить с помощью математики, если вы в состоянии правильно понять правила игры. О других гораздо сложнее судить, не проводя эмпирических тестов. Основная проблема заключается в том, что большинство игровых дизайнеров не совсем понимают механику своей игры, так как они обычно заканчивают тем, что объединяют правила игры в окружающий симулятор, а последний очень трудно точно смоделировать.
источник
Теоретически это возможно, но для большинства игр это чрезвычайно сложно, поэтому его можно считать невозможным.
Один из подходов: конвертировать игру в нормальную форму. Игра в нормальной форме - это набор стратегий для каждого игрока и функции, который говорит, насколько хорош результат для данной комбинации вариантов. Случайный фактор может быть смоделирован как другой игрок.
Тогда мы можем искать доминирующие / доминируемые стратегии (вещи, которые ВСЕГДА делают, и вещи, которые НИКОГДА не делают). Игра как минимум интересна, если в ней нет доминирующих стратегий.
Тогда мы можем посмотреть, что каждый игрок может гарантировать для себя. для каждого «МОЕГО» выбора посмотрите на худший возможный результат и выберите тот, который имеет этот лучший результат.
Если между игроками много разного, в игре что-то гнилое.
Есть и другие вещи, на которые следует обратить внимание (доминирующая смешанная стратегия (выбор каждого варианта с некоторой вероятностью), равновесия по Нэшу (комбинации, которые, как только все игроки узнают других, подойдут для всех на местном уровне)).
Но первый шаг очень сложен для большинства игр, поэтому обычно он не так полезен. Но его можно использовать, если вы можете отвлекать сложные детали от других / заменять стратегии на узнаваемые наборы стратегий (например, начальные порядки построения) и приводить к некоторой статистической аппроксимации из фактически сыгранных игр, и это может рассказать вам о проблемах в игре. Я думаю, что что-то вроде этого блистер делает с SC.
Другая форма игры - игра, в которой игроки по очереди и знают все, что делают другие (шахматы). Там вы можете попытаться найти доминирующую стратегию, выполнив поиск по дереву состояний игры (обычно это ОГРОМНО, поэтому, опять же, слишком сложно в использовании). И многие игры не имеют полного знания, и это сильно усложняет ситуацию.
Другой подход, посмотрите на вещи в игре и попробуйте их сравнить.
Другой подход: в командном бою (особенно с большим количеством участников) вы можете попытаться использовать симуляцию силы на силе (я никогда не использовал ее, и для преобразования игры в подходящую модель требуется высокая математика (дифференциальные уравнения) и тяжелая работа).
Итак, мой вывод, многое можно сделать, чтобы сбалансировать подсистемы игры, и когда игра выйдет (и во время бета-тестирования), многое можно будет сделать, проанализировав результаты, но если вы не сделаете все то же самое, то практически невозможно доказать, что игра сбалансирована. ,
PS: Вы можете замаскировать одно и то же, заменив один атрибут на несколько, которые вместе можно использовать для вычисления начального атрибута, и сделав все гораздо более случайным, чтобы игроки не увидели эту одинаковость (
Остерегайтесь того, что в этом легко допустить ошибку (например, быстрые маленькие атаки против больших медленных атак), потому что 18 бросков на d6 -18 дают результаты 0-90, 10 бросков на d10-10 дают результаты 0-90 1 бросок на d91-1 дает результаты 0-90, но все они имеют разные распределения.
PS2: Один мудрец сказал, что фактический баланс не важен, Воспринимается баланс.
источник
Много хороших ответов о получении математически правильного ответа, но я попробую другой угол: если ваш код позволяет это сделать, вы можете смоделировать очень большое количество игр, а затем проверить, есть ли стратегия (или стратегии), которая выигрывать слишком часто.
Возможно, вы знакомы с симуляциями Монте-Карло или генетическими алгоритмами. Идея здесь связана. Вам нужен ИИ, чтобы играть в игру, и некоторые ключевые измерения. Вы позволяете ИИ сражаться друг с другом в большом турнире, достаточно часто, с разными стартовыми переменными, и вы измеряете результаты.
Я всегда хотел попробовать такой подход, чтобы сбалансировать классы / оружие, это было бы очень весело.
источник
С точки зрения теории вычислений, кажется, что ответить на это невозможно вообще . Он задает вопрос о свойстве программы, и теорема Райса может применяться. Я предполагаю, что игра относится к программе, написанной на языке Turing Complete, таком как c ++. Я также предполагаю, что вычисление или доказательство того, является ли игра честной, означает, что существует программа на С ++, которая читает программу на С ++ (игровая программа) и завершает за конечное время все возможные входные данные. , с только двумя выходными , справедливыми или несправедливо.
Быстрый поиск показывает, что возможно иметь детерминированную, но неразрешимую игру, см. Слайд 7 здесь и из Международного журнала теории игр: некоторые неразрешимые решительные игры:
«Вычислительные машины, использующие алгоритмы, играют в игры и даже учатся играть в игры. Однако присущие им свойства конечности алгоритмов накладывают ограничения на игровые возможности машин. М. Рабин проиллюстрировал это ограничение в 1957 году, создав игру, в которой два человека выигрывают и проигрывают. с разрешимыми правилами, но без вычислимых выигрышных стратегий. "
Человеческий мозг, по-видимому, более «мощный», чем компьютеры, потому что мы можем получать и применять знания прошлого и иногда, кажется, противоречить таким результатам, как проблема Остановки , обнаруживая бесконечные циклы в программах. Но как мы это делаем, не очень хорошо известно и не может быть записано точно и однозначно в алгоритме.
источник
Я действительно хотел прокомментировать ответ Мартина Сойки, но у меня нет репутации. Он прав, что теория игр включает в себя вычисление честности игры (например, остается открытым вопрос, если в шахматной игре, где и белые, и черные отлично сыграли, будет ли это ничья).
Для MtG вполне может оказаться невозможным вычислить, насколько это справедливо, но никто математически не доказал, что вычисления будут невозможны.
Это может быть тривиально возможно доказать, что это честно - если случайным кто идет первым и все играют по одним и тем же правилам, то это справедливо. Может быть так, что тот, кто идет первым, всегда побеждает, но если кто идет первым, решается честно, тогда игра честна.
источник
То, что подразумевается под «честным», расплывчато, позвольте мне объяснить:
Рассмотрим игру «Рок-бумага-ножницы» (http://en.wikipedia.org/wiki/Rock-paper-scissors): я полагаю, что, по вашему мнению, это справедливо (по моему мнению).
Теперь давайте рассмотрим игру: камень-бумага-ножницы-колодец, где колодец бьет камень и бумагу, а колодец проигрывает против бумаги. Несбалансированно, верно? Колодец кажется довольно мощным: он бьет два оружия и проигрывает против одного.
Но можно сказать, что он совсем не одолел: потому что, если вы знаете, что ваш противник с большей вероятностью будет использовать колодец, потому что он бьет два оружия, вы можете просто действовать, подбирая бумагу чаще.
Таким образом, есть потенциальная возможность преодолеть потенциальные проблемы: просто чаще выбирайте бумагу. Но затем вы знаете, что ваш оппонент может знать это и может использовать бумагу довольно часто, поэтому вы думаете, что вам следует использовать ножницы чаще. И т. Д. Не слишком сильный, просто другая игра с другими правилами.
Я бы рекомендовал почитать теорию игр и особенно игры с несовершенной информацией (http://en.wikipedia.org/wiki/Game_theory).
источник