Qual è la scala di difficoltà appropriata per l'efficacia dell'arma rispetto alla difficoltà da ottenere?


8

Sto scrivendo un documento di progettazione per un gioco di avventura basato su voxel, simile a Minecraft, ma riparando molte meccaniche di gioco fondamentalmente rotte, o almeno aggiornando quelle meccaniche per essere più adatte a un gioco di avventura.

Sto considerando di creare una scala di armi da 1 a 10, in cui le armi a 1 sono meno potenti e le armi a 10 sono più potenti. Stavo pensando di creare i materiali per rendere l'arma più comune per le armi di livello 1 e 10 volte meno comune per l'arma più potente, ma se guardi Minecraft, i diamanti si verificano solo nello 0,1% dei blocchi e sembrano ancora troppo comuni, a meno che tu non sia incline a morire ovviamente.

In linea con l'avventura, sarebbe meglio che i livelli più alti di armi provengano solo da lanci di mostri, o da una combinazione di un raro lancio di mostri e un oggetto minabile, o ci sono altre meccaniche di gioco comuni che potrei usare per avere un'arma super potente che è anche difficile da ottenere, ma vale la pena prenderla?

Per porre la domanda in un altro modo, per l'investimento nel tempo, un'arma 10 volte più potente dovrebbe impiegare 10 volte il tempo necessario per ottenerla o 20x o più? Ci sono studi che mostrano una correlazione tra "divertimento" in quanto tempo i giocatori macineranno per un oggetto e una scala di investimento temporale appropriata per ottenere l'equipaggiamento?


Penso che il modo in cui questa domanda viene attualmente posta non sia adatto al sito. È possibile modificarlo per chiedere studi, algoritmi o altre informazioni fattuali . Altrimenti stai solo ottenendo opinioni. È un'idea interessante, quindi penso che dovresti provare a rielaborarla.
MichaelHouse

Per le FAQ, penso che la mia domanda rientri in questa categoria, "progettazione del gioco (progettazione del livello, gameplay, meccanica, ecc.)", Considerando che sto chiedendo una meccanica di gioco applicabile a livello globale, vale a dire la questione dell'investimento nel tempo per attrezzature potenti . Tuttavia, ho modificato la mia domanda per chiedere più dati concreti piuttosto che opinioni.
Ken,

1
Non sono sicuro di aver mai visto il termine Fun and Grind in una frase prima che non fosse dispregiativo.
James,

7
Stai proponendo una scala lineare, 10 volte più forte è 10 volte più costoso. Comunque sia nella vita reale che in altri giochi questo processo non è lineare. Un'auto che va due volte più veloce vale 10 volte di più, un'auto che va tre volte più veloce vale 100 volte di più. Ecc. Dovresti provare a trovare una bella curva esponenziale come cost = c ^ (potenza). Dove c è una costante costante che puoi modificare per avere la sensazione giusta.
Roy T.

7
Per usare la scienza o la psicologia, almeno, stiamo parlando di un programma di rinforzo a rapporto variabile. Il rinforzo è stato studiato un po 'e puoi iniziare a leggerlo qui: en.wikipedia.org/wiki/Reinforcement
rimorchiatori

Risposte:


11

Ho intenzione di rispondere a questo ortogonalmente:

Qualunque cosa tu scelga sarà sbagliata.

Indipendentemente da quanto scricchiolii la matematica o leggi gli studi, i numeri che sceglierai prima del test di gioco saranno errati.

L'unico modo per determinare quale sia la quantità appropriata di grind per il particolare gioco, stile di gioco, utenti e interfaccia è di provarlo e iterarlo, massimizzando il divertimento del giocatore (o il tuo profitto ...)

Corollario: assicurati che cambiare questi numeri sia facile!

Ciò significa che questi numeri verranno modificati. Un sacco. Quindi è meglio assicurarsi di non dover ricompilare il gioco o scavare nel codice per i numeri magici di bilanciamento.

opzione 1

Scegli quello che ritieni giusto durante l'implementazione, ma inseriscilo in un file di configurazione ricaricabile. ( .ini, JSON, XML, S-Exprs, qualunque cosa ti solletica meglio ...) E assicurati di poter ricaricare la tua configurazione senza dover riscrivere la maggior parte del tuo gioco.

opzione 2

Rendi la probabilità di un oggetto una funzione diretta del suo livello. In questo modo, è possibile modificare la funzione in un secondo momento e non è necessario gestire un gruppo di variabili. Per esempio:

#
# 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
  # ...

Prova le equazioni online per vedere come sono.


Grazie Kort! Devo ammettere che questa è saggezza nata dall'esperienza. Una volta ho scritto un simulatore di insetti con numeri magici sparsi in tutto il codice e ho trascorso un paio di giorni spiacevoli a cambiare parametri minori quando la simulazione doveva essere modificata. Non fare di nuovo quell'errore!
brice,

7

È difficile dare una risposta definitiva, poiché dipende molto da come vuoi giocare.

Tuttavia, Terraria ha fatto esperimenti con queste idee che lei menziona. Aumentarono la quantità di materiali necessari per creare armi, armature ecc. (Ciò fu in qualche modo bilanciato dal fatto che i materiali venivano spesso trovati in ammassi considerevoli). Hanno anche implementato anche drop di mostri rari e comuni, ottenibili solo tramite drop.

Varrebbe la pena cercare un po 'di più la Terraria, per vedere come ci si sente a disporre di questi meccanismi; allora sono sicuro che sarai nella posizione migliore per prendere una decisione su come bilanciare le cadute degli articoli e la distribuzione del materiale.


+1 per l'esempio di gioco. Inoltre, direi che questo è qualcosa da testare molto, non puoi avere un design funzionante senza poterlo sperimentare.
Laurent Couvidou,

4

Non c'è una risposta giusta. Alcuni buoni giochi sono difficili, altri sono facili. Ad alcuni giocatori piacciono le sfide ricorrenti, altri come ricompense veloci. Penso che la risposta giusta risieda innanzitutto nel trovare la tua potenziale folla. Una volta che hai una versione alfa, trova qualcuno della mentalità generale che speri abbia la folla del tuo gioco e lascialo giocare. Fintanto che codifichi correttamente, aggiustare le variabili in un secondo momento non dovrebbe essere difficile e test di gioco e bilanciamento sono fasi che dovresti avere, anche se pensi di aver raggiunto il rapporto aureo o meno.

Quindi non sudare i numeri mentre stai programmando: non esiste una risposta teorica corretta e in seguito avrai risposte concrete dei tester.

Ma, se vuoi ancora provare a colpire i numeri magici, gli studi hanno dimostrato che la macinatura (mining, in questo caso) è efficace solo finché è entro le aspettative di tempo stabilite dal giocatore. Più un giocatore passa il tempo, più può aspettare il prossimo premio, ma dovrebbe sempre essere entro un arco di tempo raggiungibile, non più di una grandezza maggiore dell'ultimo intervallo di tempo prima dell'ultimo premio. Quindi, penso che sia adatto un aumento di 10 volte nel tempo, ma non penso che la differenza tra due livelli di armi dovrebbe essere 10 volte - il divario tra i livelli è lasciato piuttosto ampio.

In bocca al lupo!


Wow ... stavo pensando che un aumento di 10 volte tra il livello 1 e 10 in totale, ma immagino che un aumento di 10 volte tra i singoli livelli potrebbe funzionare considerando i rendimenti crescenti una volta che inizi a utilizzare attrezzature migliori.
Ken,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.