Usare la teoria dei giochi per inventare giochi

Traduzione di un interessante articolo di game design scritto da Tom Jolly.

Articoli
Siti

Quella che leggete è la traduzione di un articolo scritto da Tom Jolly e pubblicato su leagueofgamemaker.com, che ringraziamo per la disponibilità.

La teoria dei giochi è un oggetto interessante. Apparentemente potete usarla per risolvere qualunque problema nel quale delle persone intelligenti, dato un certo numero di strategie o decisioni da prendere, possono ottimizzare le proprie scelte per raggiungere il maggior “guadagno” possibile. Roger Myerson (“Game Theory: Analysis of Conflict”) lo definisce come “lo studio dei modelli matematici di conflitto e cooperazione tra persone che prendono decisioni in modo intelligente e razionale”. Convenzionalmente, la teoria dei giochi parte da una situazione di gioco, la riduce ad una matrice di possibili scelte e guadagni per ogni giocatore, e quindi determina il guadagno totale per il gioco e quale giocatore risulta avvantaggiato.

Di recente ho letto The Compleat Strategyst di J.D. Williams, un testo elementare sulla teoria dei giochi, dove l’autore impiega tutto il libro a risolvere una serie di giochi sociologici, cose come “Il dilemma del prigioniero” e “L’asta da un dollaro”, entrambi esempi famosi della teoria dei giochi applicata alle decisioni in situazioni sociali (giochi non nel senso di giochi da tavolo o di carte). Su Wikipedia c’è una lunga lista di giochi nella teoria dei giochi che vale la pena controllare. Ma dovrebbe essere abbastanza ovvio all’inventore occasionale che risolvere un gioco esistente, per quanto interessante, non è così utile a noi come prendere una matrice da teoria dei giochi e crearci sopra un gioco. Lavorando a ritroso, per così dire.

Per prima cosa, potreste voler comprendere le sfumature di una matrice da teoria dei giochi nella sua forma più semplice: un gioco strategico per due giocatori. Diciamo che Bob dica ad Alice, “Ehi, facciamo una piccola scommessa; diciamo contemporaneamente due numeri. Se sono entrambi pari, ti pago tre dollari. Se io dico pari e tu dici dispari, tu mi paghi quattro dollari. Se io dico dispari e tu dici pari, tu mi paghi cinque dollari, e se entrambi diciamo un numero dispari, io ti pago sei dollari.”

Bene… questo sembra onesto, no? Se lanciassero delle monete, questo potrebbe essere un gioco onesto. Ma il punto chiave è che i giocatori devono prendere una decisione. La matrice per questo gioco è fatta così. Notate che in questa matrice, un numero negativo è una perdita per Bob, ma un guadagno per Alice.

Un semplice calcolo (che diventa molto più complesso nei giochi a tre giocatori) può darvi le opzioni migliori per ogni giocatore; ovvero, la migliore riga o colonna da usare in ogni caso. Sommate i numeri nelle colonne verticali per ottenere (-$8) e ($10), scartando il segno meno, metteteli in fondo a ogni colonna. Sommate i numeri nelle righe per avere (-$7) e ($11), scartate il segno meno, metteteli alla fine di ogni riga. Questo produce lo schema seguente;

I numeri alla fine delle righe e delle colonne vengono chiamati “resti”. Sono le scelte migliori che Alice o Bob possono utilizzare ipotizzando la strategia migliore da parte dell’avversario. Dato un avversario intelligente, questo è il massimo che un giocatore può sperare. In questo caso, per calcolare il “guadagno” per Alice (tenendo in mente che i numeri negativi sono un guadagno per Alice, e i positivi sono un guadagno per Bob), moltiplicate il resto 11 x (-$3), quindi aggiungetelo a 7 x $5, e dividete il totale per 18, la somma dei resti. Sì, lo so, vi fa male la testa. Quindi; (-33+35)/18, o 2/18, o 1/9. Cosa significa? Ricordate, i numeri negativi sono un guadagno per Alice, e i numeri positivi sono una perdita. Alice, con la migliore strategia possibile, perderà $2 ogni 18 partite, se Bob (che ha proposto il gioco – ed è un truffatore) non si incasina. La migliore scelta per Bob, se sa cosa fare, porterà ad un guadagno di $2 ogni 18 partite.

Ora la cosa interessante è, potete prendere un gioco di questo tipo e aggiungere e sottrarre lo stesso numero da tutti gli elementi della matrice e i rapporti non cambieranno minimamente. Potete raddoppiare ogni elemento della matrice e non cambieranno i rapporti. Quello che cambierà è il guadagno. E naturalmente questo significa che possiamo modificare la matrice per trasformare un gioco disonesto come questo in un gioco onesto, semplicemente sottraendo 1/9 di dollaro da ogni elemento. Questo riduce il guadagno a zero. Bob non otterrà denaro dalla scommessa.

OK, questo doveva essere un esempio semplice. Ricordate che il mio obiettivo è prendere una matrice di un gioco semplice e non risolverlo, ma creare un gioco.

Esempio 2: cibo, oro e meeple

Facciamo un altro esempio, e vediamo come possiamo bilanciarlo, e partire a ritroso da questo. Alice ha tre scelte, le carte A, B, e C. Bob può scegliere le carte (o gli spazi sulla plancia) D, E, e F. In base alle loro scelte, il paio di carte selezionate possono creare cibo, oro, o meeple, e ogni giocatore le ha valutate stimando valori di 1, 4, e 5, rispettivamente, basandole sui punteggi bonus di fine partita. Se Alice sceglie la carta A (o lo spazio A sulla plancia) mentre Bob sceglie D, allora Alice ottiene un meeple e Bob ottiene un Cibo. Mantenendo la convenzione che i numeri positivi sono dei guadagni per Bob (viene pagato) ma delle perdite per Alice (è lei che fa il pagamento), e i numeri negativi l’opposto, allora questo risultato netto (Alice-A e Bob-D) risulta in un valore nella matrice di -4 punti, che sarà a favore di Alice. C’è una varietà di cose che possono succedere, ma diciamo che la matrice finale delle scelte somiglia a questa;

Ho già scritto i resti per risparmiare spazio; non mi dilungherò su come arrivare ai rapporti su una matrice 3x3, dato che richiederebbe un paio di pagine per spiegarlo. Se volete saperne di più, leggete “The Compleat Strategyst”. Se avete risolto i determinanti a scuola, potete averne un’idea.

Ritornando all’esempio, quel “-4” nell’angolo superiore sinistro della matrice significa che Alice ottiene un meeple (5 punti) e Bob un token cibo (1 punto). Il guadagno netto è per Alice, indicato con un numero negativo. Se Alice gioca una carta B mentre Bob gioca una carta D, allora lei ottiene un Meeple (5 punti) e Bob ottiene 1 Oro e 2 Cibo (6 punti). Un po’ meglio per Bob, con 1 punto per lui. Bob vede che se gioca una F, e Alice gioca una B, può ottenere 1 meeple mentre lei ottiene solo 2 Cibo, per un guadagno di 3 punti per lui. E così via. Non possiamo veramente dire dalla matrice se il gioco è bilanciato (il che non potrebbe essere critico se le carte sono mischiate e distribuite, ma sarebbe bello se non ci fossero vantaggi esponenziali per i giocatori). Quindi vediamo se è bilanciato.

Alla fine delle righe e delle colonne ci sono i resti. Per una “partita perfetta” questi sono i rapporti che ogni giocatore vuole utilizzare per ottimizzare i propri profitti (o minimizzare le perdite in un gioco non equo).

Come potete vedere, le scelte strategiche non sono molto ovvie per Alice e Bob. Anche se ogni volta che lui sceglie D, il miglior risultato è un guadagno di “1”, la sua strategia migliore si traduce nello scegliere D ventisei volte su 101 (26+28+47) o circa una volta su quattro. Non possiamo dire in modo semplice se il gioco favorisce Alice o Bob. Dobbiamo usare più matematica!!

Per ottenere il guadagno (o la perdita) di Bob useremo:

(26x(-4) + 28×2 + 47×1) / 101 = -1/101

Facile! Bob perde soldi a questo gioco. Controllando la strategia migliore per Alice:

(11x(-4) + 43×1 + 47×0) / 101 = -1/101 (non è una sorpresa)

Ogni 101 turni, alice ottiene un intero punto! Assumendo che giochi in modo perfetto.

Anche se non è un gioco perfettamente bilanciato, ci va dannatamente vicino. Per renderlo bilanciato dobbiamo aggiungere 1/101 a ogni elemento della matrice. Rapportato ai giochi da tavolo, è insignificante.

Applicare tutto ciò ad un gioco da tavolo reale non dovrebbe essere molto difficile. Abbiamo già alcuni indizi su come farlo. Ma la matrice assume che entrambi i giocatori stiano scegliendo e rivelando la loro decisione nello stesso momento. Questo accade spesso nei giochi ad asta cieca, nei quali voi rivelate un certo numero di token scelti segretamente mentre gli altri giocatori stanno facendo la stessa cosa. Avete una matrice dei guadagni (nascosta dall’ambientazione, si spera) e due giocatori hanno ognuno 3 carte “voto” da giocare. Alcune tessere che danno punti vittoria vengono disposte su un lato con i costi in meeple, cibo e oro. Le avete create in modo che i valori relativi siano 5, 1, e 4, rispettivamente per questi tre elementi. Ora i giocatori selezionano le carte così che gli elementi che risultano dalla matrice, idealmente, diano loro le risorse per acquistare il massimo numero di carte con i punti. Ah, se io vedo che ho bisogno di un meeple e un oro per acquistare quella carta, DOVREI giocare questa carta, ma il mio avversario può indovinarlo e giocare la sua carta per massimizzare il suo guadagno di meeple, così io dovrei giocare invece QUESTA. Avete capito. Uh, penso che inventerò questo gioco. Sembra divertente. Oh, guarda, eccolo! [nota; fra le ultime due frasi sono trascorsi circa due mesi].

Ho modificato leggermente i valori; un cubo verde è 1, blu è 2, giallo è 3, e un meeple bianco è 5. Il gioco ha gli stessi guadagni di quello di cui abbiamo parlato. Avendo giocato a questa versione un paio di volta, probabilmente diminuirò i guadagni su alcuni spazi; forse punterò a una simmetria lungo la diagonale per un guadagno bilanciato.

Applicazione ad un gioco di piazzamento lavoratori

Una matrice da teoria dei giochi per inventare giochi ha bisogno di alcuni aggiustamenti quando viene applicata ad un piazzamento lavoratori, dove le azioni di un giocatore rimuovono delle opzioni agli altri giocatori. Ogni spazio nella matrice rappresenta l’intera sequenza di mosse nei turni dei giocatori. I giocatori A, B, e C eseguono le loro mosse, totalizzano i guadagni, e riempite lo spazio nella matrice con quel numero. Se ci sono quattro scelte sulla plancia, la matrice diventa più grande (e calcolare i rapporti è molto, molto più difficile nei giochi con 4 o più strategie; la “soluzione generale” per i giochi con 4 o più strategie occupa un intero capitolo nel libro citato in precedenza). Qualche volta i guadagni vengono solo stimati sul “valore” di fare qualcosa (come nella teoria dei giochi sociali; se io faccio questo-e-quello, quali sono le probabilità che mia moglie mi baci o mi picchi? Qual è il valore numerico per questo?). I giochi da tavolo tendono ad essere abbastanza complessi, anche per il fatto che si indossano bei vestiti sull’intimo della matematica. Questo li rende più difficili da modellare e analizzare, e rende più complesso passare dalla matrice al gioco.

Pensate all’esempio del piazzamento lavoratori, dove ogni numero nella matrice rappresenta una sequenza completa di piazzamenti con valori soppesati. Lavorando a ritroso dalla matrice, ogni numero deve rappresentare la somma dei guadagni dei giocatori per un round. Il prossimo numero nella matrice, che rappresenta sia un diverso ordine dei giocatori che una diversa selezione sugli spazi, deve essere suddiviso in modo tale che gli stessi elementi del gioco mostrino valori differenti. Così, gli elementi di gioco devono essere manipolati e selezionati in modo da produrre tutti i diversi elementi della matrice bilanciata basandosi sulle scelte dei giocatori. Un esercizio che lascerò ai lettori; sono sicuro che il vostro cervello ora sia pieno. Voglio darvi un assaggio della teoria dei giochi, non soffocarvi fino alla morte.

Voglio anche rispondere alla mia domanda, se si può partire con una matrice da teoria dei giochi e lavorare a ritroso per creare delle regole da questa, o almeno aggiungerla alla borsa degli attrezzi per il processo della creazione dei giochi. Io penso che la risposta sia “sì”.

Commenti

Bello! Ma ora mi sento Banfi: "un caffè con humor".

Bellissimo articolo davvero! 

Complimenti. 

Manca la tabella del primo esempio, dopo "Questo produce lo schema seguente ". Si recupera dal sito originale, ma aggiungetela per completezza

Per scrivere un commento devi avere un account. Clicca qui per iscriverti o accedere al sito

Accedi al sito per commentare