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?
40
Respostas:
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.
fonte
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:
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.
fonte
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.
fonte
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:
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.
fonte
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 é.
fonte
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.
fonte
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.
fonte
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.
fonte
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).
fonte