Dificuldade dinâmica torna o jogo mais interessante

Olá, pessoal

Encontrei um artigo (anexo a esse post) com um resultado muito interessante: segundo o estudo feito usando o Open RTS (uma engine open source de RTS - leiam sobre essa proposta, é muito legal e bem feita :wink: ), os jogadores consideraram que o oponente controlado por IA mais divertido de se enfrentar é aquele que adaptava a dificuldade para ficar o mais equilibrada possível com a habilidade do jogador.

Para quem quiser só um resumo do artigo, aqui vai:

  • Os autores fizeram cinco bots:
    A. Dificuldade média fixa;
    B. Dificuldade fácil fixa;
    C. Adaptativo que aprende devagar;
    D. Igual ao C, mas que entrega o jogo no final;
    E. Adaptativo que aprende rápido.

  • Em um evento similar à Campus Party, 60 pessoas jogaram apenas uma partida do RTS contra um bot sorteado (o jogador não sabia nada sobre a IA).

  • Depois da partida, o jogador respondia um formulário meio maluco.

  • Como resultado, verificou-se que o bot A era muito difícil, o B muito fácil - com os dois não muito divertidos. O bot D foi o mais fácil e chato. Já os bots C e E foram os mais legais, com o E em primeiro lugar, mesmo sendo considerado um pouco mais difícil que o C.

  • Conclusões: os jogadores se divertem mais quando o oponente tem “força” semelhante. Além disso, níveis de dificuldade fixos geralmente são muito fáceis ou muito difíceis, dificilmente sendo considerados bons para vários jogadores diferentes.

Agora a pergunta que talvez você esteja se fazendo é: "Legal, mas… e daí?"
Daí, que com isso já se tem uma dica muito simples de como tornar um jogo, não necessariamente RTS, mais divertido. Vamos pegar o HorusEye como exemplo: todos reclamam que é complicado acertar a dificuldade dos níveis. Podemos usar a ideia do artigo para atacar esse problema!

Próxima pergunta: "Como?!"
Seria possível fazer isso de várias formas diferentes, inclusive misturando mais de uma. Pensei em duas que usam uma métrica simples.

Métrica:
Podemos pegar o valor acumulado de quanta vida o jogador perdeu e quanta mana foi gasta para conseguir passar por um nível. Vale a pena notar que isso reflete também o quanto o jogador precisou coletar itens.
Se esses valores estiverem altos, quer dizer que a dificuldade está alta para o jogador em questão. Em contra partida, se o jogador quase não sofreu dano, obviamente está fácil para ele.

Opção 1:
Seja (X-1) o nível pelo qual o jogador acabou de passar e M o valor da métrica calculado. O número N de inimigos do nível X pode ser uma ponderação próxima a N = NC * M * ALFA, onde NC é o número comum de inimigos para o nível X e ALFA é um fator de balanceamento a ser escolhido empiricamente.

Opção 2:
Seguindo a linha de pensamento da opção anterior, em vez de mudar o número de inimigos, pode-se aumentar ou diminuir o número de itens no nível X.

Pensando um pouco nesse tipo de mecanismo, é possível elaborar regras muito mais complexas. Por exemplo, pode-se analisar que tipo de monstro mais acertou o herói e alterar, além do número de inimigos, a distribuição de seus tipos no nível e por aí vai.

Ok. Agora que já dei uma ideia de que é possível fazer a imaginação ir longe nesse tópico, fica ao cargo de cada um pensar em como elaborar uma regra que balanceie bem a dificuldade. :smiley:

Abraços!

Vinícius

Hummm… Interessante. Sinto que alguém ficou inspirado com as aulas de Aprendizagem Computacional.

Mas de fato, pode ser uma boa solução para a questão do balanceamento no Horus.

E para enriquecer a thread, cito um par de jogos que usa essa ideia (conhecida também como “sistema de ranking”): Touhou 6 e Gundemonium.

Pelo jeito, só é possível ver o anexo quando se está logado. Para contornar isso, deixei o artigo disponível aqui.
:wink:

Vinícius

Valeu pela indicação de artigo Vinícius, muito interessante!
Vou dar uma lida mais aprofundada depois, mas fiquei um dúvida se o resultado não é um falso positivo, já que o adversário com uma dificuldade crescente pode ser mais divertido do que os de dificuldade fixa, não importando como isso é feito… Para explicar melhor, o aumento gradativo da dificuldade é mais interessante para o jogador, não importando como é obtido…

Oi, Rafael

Mesmo relendo seu post algumas vezes, de verdade não consegui entender direito a dúvida sobre falso positivo que você levantou. :frowning:
Você poderia explicar um pouco melhor seu ponto de vista?

Vinícius

Se eu entendi bem, ele quis dizer que o que tornou as AIs adaptativas mais interessantes pode ter sido apenas o fato de que elas iam aumentando bem gradativamente a dificuldade, independentemente de como esse crescimento tenha sido obtido.

Da minha parte, sinto que precisaria olhar mais a fundo o artigo (ainda não tive a oportunidade) para saber se isso realmente pode ter sido o caso.

Ah, saquei!
Mas não foi bem assim. Vou quebrar a resposta em duas partes para explicar melhor:

  1. Os adversários adaptativos não iam aumentando a dificuldade, apenas tentavam ser tão bons quanto o jogador (nem mais forte, nem mais fraco). Na verdade, a técnica usada foi bem simples: eles tinham uma IA bem difícil de se vencer e colocaram ela para jogar, mas quando ela começava a ficar superior ao jogador (em número de unidades, recursos, etc.) ela deixava algumas unidades paradas por algum tempo - sendo que tanto o número de unidades quanto o tempo inativo de cada uma delas era aleatório e proporcional a quão mais fraco o jogador estava. Dessa forma, a IA nunca conseguia ficar muito melhor que o humano.

  2. Como deu para ver no item anterior, a dificuldade não aumentava ao longo do tempo e, portanto, esse não era o fator de diversão. O que fez com que as pessoas achassem mais legal a partida foi ter encontrado um adversário que não foi fácil de vencer nem que humilhou o jogador. Ou seja, dá para imaginar que você nunca conseguiria encontrar um oponente mais vertido de se enfrentar do que você mesmo (RECURSÃO!!! ;D)

Ficou melhor agora?

Vinícius

Entendi xD. Humm muito interessante isso! Vou ler esse artigo completamente assim que der!