É possível calcular ou provar matematicamente se um jogo é equilibrado / justo?

40

Esta questão não está focada nos videogames, mas nos jogos em geral. Ontem fui a uma feira de jogos de tabuleiro e me perguntei se havia uma maneira de calcular a justiça de um jogo. Certamente, alguns deles exigem uma boa parte da sorte, mas pode ser possível calcular se algum personagem é dominado. Especialmente em role-playing games e jogos de cartas. Como, por exemplo, os criadores de "Magic: The Gathering" podem garantir que não exista a "única carta que vence todos eles", dado o número impressionante de cartas disponíveis?

Lurca
fonte
2
Como nota lateral, há jogos em que jogar estritamente para ganhar torna o jogo menos divertido para todos . Once Upon a Time é um exemplo particularmente notável, mas, em geral, toda a categoria "social" de jogos está cheia deles.
Martin Sojka
3
Os criadores de MtG fazem muitos testes, e quando mesmo isso não ajuda (às vezes há combos permitindo que você ganhe no primeiro turno), eles banem cartas de torneios (aviso, TVTropes).
Liori
11
Bem, execute várias simulações / colete dados. É assim que eles se equilibram no StarCraft 2 ... Eles medem quais unidades são mais usadas e qual corrida ganha mais. A coleta de dados é a chave para jogos complexos, e as estatísticas são tão boas quanto a matemática. Ainda melhor, eu diria, já que você também capturará efeitos psicológicos. É por isso que não existem tantos matemáticos jogando poker quanto o esperado.
Por Alexandersson
Alguns dos melhores jogos de tabuleiro alemães são desenvolvidos por matemáticos (por exemplo, Reiner Knizia ), que são especializados em teoria dos jogos, e isso mostra. Os jogos de Knizia, em particular, são extremamente bem equilibrados.
Konrad Rudolph
Até o momento, os criadores de MTG falharam com frequência e liberaram cards que eram muito dominados (geralmente por causa de interações com outros cards que não consideravam), então eles tiveram que ser banidos em torneios oficiais.
Philipp

Respostas:

34

Sim, é teoricamente possível - essa é uma boa parte da teoria dos jogos que trata desse assunto.

No entanto, isso raramente é prático e, mesmo assim, principalmente apenas para jogos que não envolvem um randomizador (Xadrez, Reversi, Go e assim por diante). A explosão combinatória garante que o tempo teórico necessário para tais provas para jogos mais complexos como Magic the Gathering possa facilmente ser várias ordens de magnitude maiores que a idade atual do universo.

No final, para qualquer jogo não trivial, você provavelmente terá que abandonar a noção de provar o equilíbrio ou a justiça de um jogo e, em vez disso, usar uma combinação de bom senso, instintos de designer, reutilização de sistemas de jogos e testes.

Martin Sojka
fonte
11
Acrescente a isso que um jogo comprovadamente justo não é necessariamente considerado justo por seus jogadores. E é a percepção que realmente importa na maioria das vezes.
Nevermind
4
Também nem o Xadrez nem o Go foram "provados" como justos. No xadrez, não se sabe se o jogador branco tem ou não uma vantagem. Em Go, países diferentes têm komi diferentes ; portanto, o Go não pode ser justo em, no máximo, todos, exceto um deles.
BlueRaja - Danny Pflughoeft 21/10
4
@BlueRaja: A teoria dos jogos absolutamente nos fornece ferramentas para analisar a justiça nos jogos, por exemplo, o equilíbrio de Nash. Se os pagamentos são iguais, o jogo é justo. Se os ganhos são desiguais, o jogo não é justo. O problema é que nem todos os jogos têm um equilíbrio único de Nash, e os jogos mais interessantes não têm um tratável computacionalmente, mesmo se eles tiverem um (e isso é provavelmente por definição de "interessante"). Mas a teoria dos jogos cobre absolutamente esse domínio.
5
Na verdade, mesmo que o jogo seja totalmente aleatório, pode-se provar que é justo. Por exemplo, jogue uma moeda: cara eu ganho, coroa você ganha. A definição matemática de justiça é E (ProfitOrLoss) = 0 a longo prazo. Joe Wreschnig acima tem o comentário mais preciso aqui.
kfmfe04
11
@ BlueRaja-DannyPflughoeft: re Komi in Go diferente: Lembre-se de que a pontuação também é um pouco diferente; portanto, uma comparação só é significativa ao considerar os dois efeitos.
Pieter Geerkens
5

Resposta curta: Qualquer jogo com um número finito, mesmo que indefinido, de jogadas disponíveis possui um número finito de jogos possíveis. Qualquer jogo com uma "complexidade de árvore de jogo" finita pode teoricamente ter todos os jogos possíveis analisados ​​para determinar se o número de jogos em que cada jogador venceria é igual.

Simplificando: se o Jogador 1 vencer exatamente a metade de todas as jogadas possíveis de um jogo, o jogo será equilibrado. Se isso não for verdade, o jogo é tendencioso para um jogador ou outro.

No entanto, essa regra simples pode ser bastante inviável de colocar em prática. Go, por exemplo, tem uma complexidade de árvore de jogo da ordem de 10 ^ 170 jogos possíveis, mais do que o número de átomos que se pensa existir no universo conhecido. Pensa-se ser impossível compilar uma árvore de jogo exaustiva. No entanto, a biblioteca de jogos jogados e gravados está na casa dos milhões e sugere que o jogo tem uma "vantagem de primeiro movimento" (que normalmente é mitigada com 1,5 pontos de "komi" dados a White).

Contrastando que, mesmo considerando as grandes complexidades gerais das árvores de jogo, todos os jogos M, N, K (um tabuleiro com largura M, altura N, em que o objetivo é o jogador criar uma linha de K peças colocando e nunca movê-los / removê-los) são resolvidos, porque existe um atalho; "galhos" inteiros da árvore do jogo podem ser identificados como sempre causando a perda de um jogador ou outro. Os ramos restantes seguem um padrão que pode ser identificado. Tic-Tac-Toe é o exemplo óbvio; além de ter apenas 300.000 jogos possíveis, existem apenas 16 em que um jogador ou o outro não faz um movimento que obviamente permitirá que o outro jogador ganhe no próximo movimento. Portanto, a árvore do jogo começa pequena e diminui quando você considera os jogos que os jogadores provavelmente fazem.

Em jogos com um elemento de sorte, a complexidade da árvore de jogos é inflada além do número de decisões disponíveis para cada jogador. Como o jogo não é mais jogado com "informações perfeitas", como no xadrez, damas, Go, Othello, etc, é possível que um jogador que jogou perfeitamente, dadas as informações conhecidas no momento, ainda perca para o jogo. elemento aleatório. Esses jogos não têm "solução"; no entanto, geralmente ainda existe uma árvore de jogos finita e, portanto, teoricamente os jogos ainda podem ser analisados ​​exaustivamente. Isso geralmente ainda não é viável; em vez disso, os jogos que envolvem probabilidade são analisados ​​probabilisticamente para identificar as estratégias de "melhor aposta" e, se essas estratégias forem favoráveis ​​ao jogador que as usa, independentemente da estratégia usada por qualquer outro jogador (incluindo a mesma estratégia),

Em geral, a regra a seguir se aplica: se o design do jogo levar inerentemente à desigualdade em um ou mais dos itens a seguir, o jogo terá um viés:

  • Número total de jogadas para cada jogador
  • Número de jogadas disponíveis a qualquer momento que permitirá pelo menos mais uma jogada para esse jogador
  • Força inicial das forças dos jogadores
  • Acesso a recursos finitos ou áreas de importância estratégica identificada

Agora, o design do jogo pode introduzir uma desigualdade, mas tentar compensar com outra. Ou, o design do jogo pode permitir aleatoriedade em áreas que podem produzir viés, o que significa que um jogo pode ser tendencioso enquanto outro é mais justo (jogos com painéis de partida aleatórios podem exibir isso). Nesses casos, apenas a análise empírica de jogos entre jogadores com força aproximadamente igual a longo prazo pode demonstrar qualquer viés.

Para mais discussões sobre preconceitos em jogos de tabuleiro, tente os fóruns de http://www.geekdo.com ; houve várias discussões sobre viés demonstrado em jogos e como evitar esse viés no desenvolvimento de jogos em geral.

KeithS
fonte
3

Eu acho que não existe uma fórmula matemática pré-fabricada para avaliar o quão justo é um jogo por causa de como cada jogo é tão diferente e complexo.

Você não pode realmente comparar diferentes parâmetros do jogo e criar algum tipo de pontuação de quão bom é um personagem (a menos que seu jogo seja muito simples) porque todos eles afetam sua jogabilidade de maneira diferente e dependem de como eles são implementados (por exemplo, como você pode avaliar como a força se relaciona com a vitalidade? Como você atribui um valor numérico ao ataque especial de um personagem?).

Você tem que testar seu jogo. Muito . Jogue seu jogo sozinho e faça com que outros o joguem e armazene os resultados da batalha / jogo em um arquivo para fazer estatísticas e avaliar com que freqüência certos personagens vencem, sob que circunstâncias etc. Em seguida, certifique-se de implementar alguma maneira de verificar replays ou analise a jogabilidade para ver por que esse personagem é dominado e aplique as alterações de acordo.

Realmente, você não tem outra opção senão testar. Essa é uma das razões pelas quais existem betas (por exemplo, Starcraft2 como beta deu à Blizzard a oportunidade de equilibrar as 3 corridas com base nos resultados do jogo).

Para resumir, jogue seu jogo e faça com que outros o joguem (iniciar uma versão beta é uma opção). Veja por que o jogo está desequilibrado através de replays ou análises automatizadas e altere o que precisa ser alterado de acordo. Essa é a única maneira de abordar a justiça.

Jesse Emond
fonte
11
+1 para testar seu jogo . O teste beta é importante em videogames e jogos de tabuleiro, quanto mais pessoas testarem seu jogo, maior a probabilidade de alguém encontrar o cartão ou feitiço quebrado que estraga tudo.
thedaian
2
Para quem votou mal, por que?
precisa
11
Os testes estão no local. Introduzir um novo cartão? Execute-o através de uma simulação em larga escala de decks aleatórios para ver com que frequência fazia parte do baralho vencedor. Se a maioria das jogadas vencedoras estiver relacionada à nova carta, diminua-a e tente novamente.
usar o seguinte código
2

Para provar que um jogo foi equilibrado ou justo, você precisa definir primeiro o que significa equilibrado ou justo. Estes são termos bastante vagos que podem abranger uma série de coisas, por exemplo, o 'equilíbrio' do jogo é frequentemente considerado como:

  • cada um dos vários lados tem a mesma chance de ganhar
  • progressão através do jogo fica consistentemente mais desafiador
  • decisões tomadas dentro do jogo oferecem taxas idênticas de custo / retorno em alguns / na maioria / em todos os casos

E assim por diante.

Em geral, sou fã de provar matematicamente coisas como essa, mas para provar qualquer coisa através da lógica ou do teste, você primeiro precisa defini-lo claramente. Alguns aspectos do equilíbrio são fáceis de testar através da matemática, se você conseguir entender as regras do jogo corretamente. Outros são muito mais difíceis de julgar sem simplesmente realizar testes empíricos. O principal problema é que a maioria dos designers de jogos não entende realmente a mecânica de seus jogos, já que geralmente acabam fundindo as regras do jogo em uma simulação envolvente, e é muito difícil modelar com precisão o último.

Kylotan
fonte
1

Teoricamente, é possível, mas para a maioria dos jogos é extremamente difícil, pelo que pode ser considerado impossível.

Uma abordagem: converta o jogo na forma normal. O jogo na forma normal é um conjunto de estratégias para cada jogador e função que diz quão bom é o resultado para uma dada combinação de opções. O fator aleatório pode ser modelado como outro jogador.

Então podemos procurar estratégias dominantes / dominadas (coisas que SEMPRE farão e coisas que NUNCA farão). O jogo é pelo menos interessante de alguma forma, se não contém estratégias dominantes.

Então podemos ver o que cada jogador pode garantir por si mesmo. para cada uma das opções "MY", observe o pior resultado possível e faça a melhor escolha.

Se difere muito entre os jogadores, há algo de podre no jogo.

Há outras coisas a serem observadas (estratégia mista dominante (escolher cada opção com certa probabilidade), equilíbrios precários (combinações que uma vez que todos os jogadores sabem que outros farão, são localmente melhores para todos).

Mas o primeiro passo é extremamente complicado para a maioria dos jogos, por isso geralmente não é tão útil. Mas pode ser usado se você pode desviar detalhes complicados / substituir estratégias por conjuntos reconhecidos de estratégias (por exemplo, ordens de compilação iniciais) e resultar com alguma aproximação estatística dos jogos jogados atualmente e pode lhe dizer algo sobre problemas no jogo. Eu acho que algo parecido com este blizard faz com SC.

Outra forma de jogo é o jogo em que os jogadores se revezam e sabem tudo o que os outros fazem (xadrez). Lá, você pode tentar procurar a estratégia dominante pesquisando a árvore de jogo do estado (e geralmente é ENORME, então, novamente, muito complicado de usar). E muitos jogos não têm conhecimento total e isso complica muito as coisas.

Outra abordagem, veja as coisas no jogo e tente compará-las.

Outra abordagem: para o combate em equipe (especialmente com participantes de grandes quantidades), você pode tentar usar a simulação de força sobre força (eu nunca a usei, e isso exige alta matemática (equações diferenciais) e trabalho duro para converter o jogo em um modelo apropriado).

Portanto, minha conclusão: muitas coisas podem ser feitas para equilibrar os subsistemas do jogo e, quando o jogo termina (e durante as provas), muito pode ser feito através da análise dos resultados, mas, a menos que você faça tudo igual, é quase impossível provar que o jogo está equilibrado. .

PS: você pode mascarar a mesmice substituindo um atributo por vários que juntos podem ser usados ​​para calcular o atributo inicial e tornando tudo muito mais aleatório, para que os jogadores não vejam essa mesmice (

Cuidado, é fácil cometer erros ao fazê-lo (por exemplo, ataques pequenos e rápidos contra grandes ataques lentos), pois 18 lances por d6 -18 dão resultados 0-90, 10 lances por d10-10 dão resultados 0-90 1 lances por d91-1 fornece resultados de 0 a 90, mas todos eles têm distribuições diferentes.

PS2: Um homem sábio disse que o equilíbrio real não é importante, o equilíbrio alcançado é.

user470365
fonte
O conceito de estratégia dominante é muito importante. A existência de uma estratégia dominante em qualquer situação implica uma injustiça inerente, embora geralmente isso acarrete redundância no design, em vez de um problema de equilíbrio como tal. Mas um designer precisa ser capaz de evitar estratégias dominantes para dar a todos os elementos a chance de ter um objetivo claro.
Kylotan
Uma coisa que esqueci: a existência da estratégia dominante não precisa ser um problema, desde que seja muito difícil executá-la, mesmo que o jogador a conheça. Exemplo simplista, o tiro na cabeça é uma estratégia dominante no FPS, mas muitos jogadores buscam o centro de massa porque é mais fácil de acertar, mas o bot ideal seria sempre o tiro na cabeça.
user470365
1

Muitas respostas boas para obter uma resposta matematicamente correta, mas tentarei um ângulo diferente: se o seu código permitir, você pode simular um número muito grande de jogos e depois verificar se há uma estratégia (ou estratégias) que ganhar com muita freqüência.

Você pode estar familiarizado com simulações de Monte-Carlo ou algoritmos genéticos. A idéia aqui relacionada. Você precisa de uma IA para jogar e algumas medidas importantes. Você deixa a IA ir uma para a outra em um torneio grande, com bastante frequência, com diferentes variáveis ​​iniciais e mede os resultados.

Eu sempre quis tentar uma abordagem como essa para equilibrar classes / armas, seria muito divertido.

ADB
fonte
1

De uma perspectiva da teoria da computação, parece que responder a isso não é possível em geral . Ele está fazendo uma pergunta sobre a propriedade de um programa e o Teorema de Rice pode ser aplicado. Minha suposição é que o jogo se refere a um programa escrito em uma linguagem Turing Complete como c ++. Também estou assumindo que calcular ou provar se um jogo é justo significa que existe um programa c ++ que lê um programa c ++ (o programa do jogo) e termina em um período finito de tempo para todas as entradas possíveis , com apenas duas saídas, ou injusto.

Uma pesquisa rápida mostra que é possível ter um jogo determinístico, mas indecidível, veja o slide 7 aqui e no International Journal of Game Theory: Alguns jogos determinados indecidíveis:

"As máquinas de computação que usam algoritmos jogam e até aprendem a jogar. No entanto, as propriedades inerentes de finitude dos algoritmos impõem limitações nas habilidades de jogo das máquinas. M. Rabin ilustrou essa limitação em 1957, construindo um jogo de duas pessoas ganha-perde com regras decidíveis, mas sem estratégias de vitória computáveis ​​".

O cérebro humano é aparentemente mais "poderoso" do que os computadores, porque podemos obter e aplicar conhecimentos passados ​​e, às vezes, parecem contradizer resultados como o problema de Halting , encontrando infinitos ciclos em programas. Mas como fazemos isso não é bem conhecido e não pode ser escrito de forma precisa e inequívoca em um algoritmo.

user6552
fonte
0

Eu realmente queria comentar a resposta de Martin Sojka, mas não tenho reputação. Ele está certo que a Teoria dos Jogos inclui o cálculo da justiça de um jogo (por exemplo, é uma questão em aberto se em um jogo de xadrez em que branco e preto jogassem perfeitamente se seria um empate).

Para o MtG, pode muito bem ser completamente inviável calcular se é justo, mas ninguém provou matematicamente que o cálculo seria inviável.

Pode ser trivialmente possível provar que é justo - se for aleatório quem vai primeiro e todos jogam pelas mesmas regras, então é justo. Pode ser que quem for primeiro ganhe sempre, mas se quem for primeiro for decidido com justiça, o jogo será justo.

psr
fonte
Remova 109 caracteres e vou convertê-lo em um comentário para você.
Jesse Dorsey
-2

O que se entende por "justo" é vago, deixe-me explicar:

Considere o jogo Pedra-papel-tesoura (http://en.wikipedia.org/wiki/Rock-paper-scissors): de acordo com você, é justo, suponho (também de acordo comigo).

Agora, vamos considerar o jogo: pedra-papel-tesoura-bem, onde o poço bate na pedra e o papel e o poço perde contra o papel. Desequilibrado, certo? O poço parece bastante dominado: bate duas armas e perde contra uma.

Mas pode-se dizer que ele não é totalmente dominado: porque se você sabe que é mais provável que seu oponente use o poço porque bate duas armas, você pode simplesmente agir escolhendo o papel com mais frequência.

Portanto, há uma resposta para o potencial bem dominado: basta escolher com mais frequência o artigo. Mas então você sabe que seu oponente pode saber disso e pode usar o papel com bastante frequência, então acha que deve usar a tesoura com mais frequência. Etc. Não é realmente dominado, apenas um jogo diferente com regras diferentes.

Eu recomendaria a leitura sobre teoria dos jogos e, especialmente, jogos com informações imperfeitas (http://en.wikipedia.org/wiki/Game_theory).

JohnCastle
fonte
5
Não importa qual combinação de itens esteja envolvida, qualquer variante Pedra-Papel-Tesoura é obviamente justa porque os dois jogadores são iguais. Na maioria dos jogos de tabuleiro, um jogador se move primeiro.
usar o seguinte comando
-1. Se é justo ou não, pode ser conhecido ou desconhecido (e, se desconhecido, factível ou impraticável), mas a teoria dos jogos nos fornece muitas ferramentas para definir "justo" sem imprecisão.
Como, por exemplo, os criadores de "The Gathering" podem garantir que não exista a "única carta que derrote todos eles" -> Eu estava tentando destacar essa frase e mostrar ao autor que sua concepção de "justiça" não está certo. Caso contrário, por exemplo, em um jogo como Magic, as pessoas geralmente não têm as mesmas cartas que seus oponentes, portanto, mesmo que as pessoas comecem ao mesmo tempo (na verdade não sei), pode não ser justo. E a analogia do jogo Pedra-papel-tesoura pode não ser a melhor a ser considerada, mas explica meu argumento.
JohnCastle
@JohnCastle Este não é o lugar para discutir a avaliação da OP pela feira, já que isso seria uma discussão e este não é um quadro de discussão (use o chat para isso). A exceção seria se sua postagem responder à pergunta e discutir a concepção de justiça do OP como parte disso.
doppelgreener
@ JonathanHobbs, como você pode provar a justiça se não estiver corretamente definida? É verdade que meu post não é realmente uma resposta - eu deveria ter postado logo abaixo do post principal, não percebi - mas acho que é importante definir justiça antes de responder à pergunta.
21911 JohnCastle 8:11