Qual é a escala de dificuldade apropriada para a eficácia da arma x dificuldade de obter?

8

Estou escrevendo um documento de design para um jogo de aventura baseado em voxel, semelhante ao minecraft, mas corrigindo muitas mecânicas de jogo fundamentalmente quebradas ou, pelo menos, atualizando essas mecânicas para serem mais adequadas a um jogo de aventura.

Estou pensando em criar uma escala de armas de 1 a 10, onde as armas em 1 são menos poderosas e as armas em 10 são mais poderosas. Eu estava pensando em fazer os materiais para tornar a arma mais comum para as armas de nível 1 e 10x menos comum para a arma mais poderosa, mas se você olhar para minecraft, os diamantes ocorrem apenas em 0,1% dos blocos e ainda parecem muito comuns, a menos que você esteja propenso a morrer, é claro.

De acordo com o foco da aventura, seria melhor que os níveis mais altos de armas viessem apenas de quedas de monstros, ou de uma combinação de uma queda rara de monstros e um item extraível, ou existem outras mecânicas de jogo comuns que eu poderia usar para ter uma arma super poderosa que também é difícil de conseguir, mas vale o seu tempo para conseguir?

Para dizer a questão de outra maneira, para o investimento de tempo, uma arma que é 10x tão poderosa deve demorar 10x para obter, ou 20x ou mais? Existem estudos que mostram alguma correlação entre "diversão" em quanto tempo os jogadores trituram para um item e uma escala de investimento em tempo apropriada para obter equipamentos?

Ken
fonte
Penso que a forma como esta pergunta está sendo feita atualmente não é adequada para o site. Você pode modificá-lo para perguntar sobre estudos, algoritmos ou outras informações factuais . Caso contrário, você está apenas recebendo opiniões. É uma ideia interessante, então acho que você deve tentar reformulá-la.
MichaelHouse
De acordo com as perguntas frequentes, acho que minha pergunta se enquadra nessa categoria, "design de jogos (design de níveis, jogabilidade, mecânica etc.)", considerando que estou perguntando sobre uma mecânica de jogo aplicável globalmente, ou seja, a questão do investimento de tempo em equipamentos poderosos . No entanto, modifiquei minha pergunta para solicitar mais dados factuais em vez de opiniões.
21712 Ken
11
Não sei se já vi o termo Fun and Grind em uma frase antes que não fosse depreciativo.
James
7
Você está propondo uma escala linear, 10 vezes mais forte é 10 vezes mais caro. No entanto, tanto na vida real quanto em outros jogos, esse processo não é linear. Um carro duas vezes mais rápido vale 10 vezes mais, um carro três vezes mais rápido vale 100x mais. Etc. Você deve tentar encontrar uma boa curva exponencial como cost = c ^ (potência). Onde c é uma constante agradável que você pode ajustar para obter a sensação certa.
Roy T.
7
Para usar a ciência, ou pelo menos a psicologia, estamos falando de um cronograma de reforço de proporção variável. O reforço foi estudado bastante, e você pode começar a ler aqui: en.wikipedia.org/wiki/Reinforcement
rebocadores

Respostas:

11

Vou responder isso ortogonalmente:

O que você escolher estará errado.

Não importa quão cuidadosamente você calcule a matemática ou leia os estudos, os números que você escolherá antes do teste estarão errados.

A única maneira de determinar qual a quantidade adequada de jogo para um jogo, estilo de jogo, usuários e interface específicos é realmente experimentá-lo e iterar, maximizando a diversão do jogador (ou seu lucro ...)

Corolário: Certifique-se de que é fácil alterar esses números!

O que isso significa é que esses números serão alterados. Muito. Portanto, é melhor você ter certeza de que não precisa recompilar seu jogo ou pesquisar no seu código os números mágicos de equilíbrio.

Opção 1

Escolha o que parecer certo quando estiver implementando, mas coloque-o em um arquivo de configuração recarregável. ( .ini, JSON, XML, S-Exprs, o que melhor lhe agrada ...) E certifique-se de recarregar sua configuração sem precisar reescrever a maior parte do seu jogo.

opção 2

Tornar a probabilidade de um item uma função direta de seu nível. Dessa forma, você pode modificar a função posteriormente e não precisa lidar com várias variáveis. Por exemplo:

#
# Power on a scale up to 10.
#
# Examples of probability scaling function
#

def probability_of_v1(power):
  """ series """
  a, b, c, d = (1,4,16,210)
  return a - x/b + (x^2)/c - x^3/d

def probability_of_v2(power):
   """ linear """
   return 1 - (power/10)

def probability_of_v3(power):
   """Sinusoidal, starts at 1, is 0 at power=10"""
   return 0.5 * cos( x / pi ) + 0.5

#
# Then, use your function instead of your probability 
# when dropping loot or creating gems
#
class Monster:
  # ...
  def on_die(self):
    if random.random() < probability_of(self.power):
      self.drop_loot()
    else:
      pass
  # ...

Experimente as equações online para ver como elas são.

brice
fonte
Obrigado Kort! Eu tenho que admitir que isso é sabedoria nascida da experiência. Certa vez, escrevi um simulador de insetos com números mágicos espalhados por todo o código e passei alguns dias desagradáveis ​​alterando parâmetros menores quando a simulação teve que ser modificada. Não cometer esse erro de novo!
18712
7

É difícil dar uma resposta definitiva, pois isso depende muito de como você deseja que o jogo seja executado.

No entanto, Terraria experimentou essas idéias que você mencionou. Eles aumentaram a quantidade de materiais necessários para criar armas, armaduras etc. (isso foi equilibrado pelo fato de que os materiais eram frequentemente encontrados em grupos consideráveis). Eles também implementaram drops de monstros raros e comuns também, que só foram obtidos através de drops.

Valeria a pena pesquisar um pouco mais sobre Terraria, para ver como é a sensação de ter essas mecânicas no lugar; tenho certeza de que você estará melhor posicionado para tomar uma decisão sobre como deseja equilibrar as quedas de itens e a distribuição de materiais.

Jason H
fonte
+1 para o exemplo do jogo. Além disso, eu diria que isso é algo para testar muito, você não pode ter um design funcional sem poder experimentá-lo.
Laurent Couvidou
4

Não há uma resposta certa. Alguns bons jogos são difíceis, outros são fáceis. Alguns jogadores gostam de desafios recorrentes, outros, como recompensas rápidas. Eu acho que a resposta certa está em encontrar seu público potencial primeiro. Depois de ter uma versão alfa, encontre alguém com a mentalidade geral que você espera que a multidão do seu jogo tenha e deixe-os jogar. Contanto que você codifique corretamente, o ajuste das variáveis ​​posteriormente não deve ser difícil, e os testes e o balanceamento são etapas que você deve ter, mesmo que pense que atingiu ou não a proporção áurea.

Portanto, não se preocupe com os números enquanto estiver programando - não há resposta correta teórica e, mais tarde, você terá respostas concretas para os testadores.

Mas, se você ainda deseja tentar acertar números mágicos, estudos mostraram que a moagem (mineração, neste caso) só é efetiva desde que esteja dentro da expectativa de tempo definida pelo jogador. Quanto mais um jogador gasta tempo, mais ele pode esperar pela próxima recompensa, mas ela sempre deve estar dentro de um período de tempo acessível, não mais que uma magnitude maior que o último período de tempo antes da última recompensa. Então, acho que um aumento de 10x no tempo é adequado, mas não acho que a diferença entre dois níveis de armas deva ser 10x - a diferença entre os níveis é deixada bastante ampla.

Boa sorte!

nihohit
fonte
Uau ... Eu estava pensando em um aumento de 10x entre o nível 1 e o total de 10, mas acho que um aumento de 10x entre os níveis individuais pode funcionar considerando os retornos crescentes quando você começa a usar um equipamento melhor.
21712 Ken