Generazione casuale di livelli di puzzle interessanti?


8

Sto realizzando un gioco simile a Sokoban, cioè c'è una griglia con alcune casse su di essa che puoi spingere e devi ottenere le casse sulle croci per vincere il livello (anche se aggiungerò alcuni elementi extra). Esistono algoritmi generali o materiale di lettura che posso esaminare per generare un livello interessante (come non banale da risolvere) per questo stile di gioco? Sono consapevole che esistono generatori di livello casuale per Sokoban, ma ho problemi a trovare le descrizioni dell'algoritmo.

Sono interessato a creare un gioco in cui la macchina può generare molti livelli per me, ordinati per difficoltà. Sono anche disposto a vincolare le regole del gioco per facilitare la generazione del livello (ad esempio, probabilmente limiterò la dimensione della griglia a circa 7x7). Ho il sospetto che ci siano alcuni modi generali per fare la generazione di livelli qui come ho visto ad esempio giochi simili a Traffic Jam (dove devi spostare blocchi attorno al blocco gratuito) con migliaia di livelli in cui ognuno ha una soluzione unica.

Un'idea che ho avuto è stata quella di generare una mappa casuale nel suo stato finale (cioè dove tutte le casse sono in cima alle loro croci) e quindi il computer avrebbe tirato (invece di spingere) queste casse per creare un livello. La proprietà è che sappiamo che il livello è risolvibile. Tuttavia, avrei bisogno di alcune euristiche per garantire che il livello fosse interessante.


L'idea che hai per generare livelli è molto interessante. Onestamente, vorrei solo andare avanti e provarlo, piuttosto che aspettare una discussione al riguardo. Immagino che potresti sintonizzare la difficoltà dei livelli generati impostando il numero di pull, e un'euristica che probabilmente vorresti è quella di distribuire i pull su più casse, sia in modo che ogni cassa sia spostata di un giusto importo, ma anche in modo che il giocatore a volte debba andare avanti e indietro tra le casse (immagino che quel tipo di logica intrecciata sia più interessante di una cassa alla volta).
jhocking

Risposte:


6

Vedi l'articolo: Creazione automatica dei problemi di Sokoban

Dall'abstract:

Questo documento descrive il nostro programma che crea automaticamente problemi con Sokoban. Sokoban è uno dei puzzle di una persona inventato in Giappone. Il programma prevede tre fasi: generazione, controllo e valutazione. Innanzitutto, i candidati ai problemi vengono generati casualmente da un prototipo e tre modelli. In secondo luogo, i candidati irrisolvibili vengono rimossi dal solutore Sokoban. Infine i candidati banali o poco interessanti vengono rimossi dal valutatore. I problemi causati dal programma sono giudicati validi da esperti umani. La creazione di arte per computer è un obiettivo importante dell'intelligenza artificiale. Il nostro lavoro può essere caratterizzato da uno dei tentativi di creare alcune arti con i computer.


1

Per i puzzle risolvibili, è spesso semplice giocare al contrario, a partire da uno stato risolto e con mosse non compiute, pianificate o casuali (o in un editor).

Sokoban si adatta molto bene a questo approccio e sarà molto più facile da implementare rispetto a una strategia di esclusione e risoluzione.

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.