Je fais un jeu de type Sokoban, c'est-à-dire qu'il y a une grille avec des caisses que vous pouvez pousser et vous devez obtenir les caisses sur les croix pour gagner le niveau (bien que je vais y ajouter des éléments supplémentaires). Existe-t-il des algorithmes généraux ou du matériel de lecture sur lesquels je pourrais chercher comment générer des niveaux intéressants (comme dans, pas triviaux à résoudre) pour ce style de jeu? Je sais que des générateurs de niveaux aléatoires existent pour Sokoban mais j'ai du mal à trouver les descriptions des algorithmes.
Je suis intéressé à faire un jeu où la machine peut générer beaucoup de niveaux pour moi, triés par difficulté. Je suis même prêt à contraindre les règles du jeu pour faciliter la génération de niveau (par exemple, je limiterai probablement la taille de la grille à environ 7x7). Je soupçonne qu'il existe des moyens généraux de générer des niveaux ici, comme je l'ai vu, par exemple, des jeux de type Traffic Jam (où vous devez déplacer des blocs autour du bloc gratuit) avec des milliers de niveaux où chacun a une solution unique.
Une idée que j'avais était de générer une carte aléatoire dans son état final (c'est-à-dire où toutes les caisses sont au-dessus de leurs croix) et ensuite l'ordinateur tirait (au lieu de pousser) ces caisses pour créer un niveau. La bonne propriété ici est que nous savons que le niveau est résoluble. Cependant, j'aurais besoin d'heuristiques pour m'assurer que le niveau était intéressant.
Réponses:
Voir l'article: Création automatique de problèmes Sokoban
Du résumé:
la source
Pour les casse-tête résolubles, il est souvent facile de simplement jouer le jeu à l'envers, à partir d'un état résolu et de mouvements défaits, planifiés ou aléatoires (ou dans un éditeur).
Sokoban correspond très bien à cette approche et sera beaucoup plus facile à mettre en œuvre qu'une stratégie d'exclusion et de résolution.
la source