COMPTOIR
  
register

×

Des niveaux... hétérogènes

Toujours plus de machine learning : pourquoi ne par l'utiliser pour générer des niveaux de jeu ?
Des niveaux... hétérogènes

Le machine learning a le vent en poupe depuis quelques années, ça n'est un secret pour personne. Si nous entendons à tort et à travers parler de réseau de neurones, cette solution n'est, d'une part, pas la seule à être qualifiée du sacro-saint terme, et, de l'autre, n'est pas adaptée à toutes les sauces. Voyons cela avec un papier de recherche, utilisant une version améliorée des réseaux de neurones antagonistes, appelée CESAGAN, afin de générer des cartes simplistes d'un jeu vidéo.

 

Des niveaux... hétérogènes [cliquer pour agrandir]

À gauche, ceux jouable, à droite, ceux qui ne le sont pas. Admirez tout particulièrement celui en haut à droite, et sa difficulté... "modérée"

 

L'entraînement a été réalisé sur une version simplifiée basée sur les donjons du jeu The Legend of Zelda de 1986, issue d'un papier de recherche précédent. Dans cette mouture, le joueur doit récupérer la clef pour arriver à la porte de sortie en évitant les monstres, sachant que des points supplémentaires peuvent être gagnés en les tuant. Il faut ainsi une seule porte, une seule clef, toutes deux atteignables, et une enceinte de murs afin d'éviter l'out-of-bounds.

 

Rien de bien mirobolant sur la sortie du bouzin : même sur des conditions aussi basiques, le manque de recul de l'IA est clair - bien qu'elle réussisse à surpasser aisément une implémentation plus naïve. Aucune structure cohérente ne se démarque de la plupart des niveaux générés (dont la moitié ne correspond même pas aux critères de possibilité de réussite du niveau !), et la notion de difficulté est clairement mal maîtrisée. Certes, on pourra argumenter que la simplicité apparente des règles ne plaide pas en la faveur de la créativité, mais il est peu probable qu'un réseau déjà perdu sur une carte de 9 x 13 cases s'en sorte mieux dans un monde plus complexe. Et c'est bien là que se situe la majeure partie de l'IA actuellement : un cruel déficit de compréhension sur la structure à haut niveau, particulièrement lorsque la puissance de calcul est limitée, mais un placement mimiquant efficacement le caractère humain dès lors qu'il s'agit de décisions locales, i.e. à petite échelle. Inutile donc de trop fantasmer sur son application à toutes les sauces...

 

Un poil avant ?

De quoi exactement est fait le marché de l'écran de PC en 2019 ?

Un peu plus tard ...

CoD WW2, Crash Bandicoot et Spyro dans un Humble Monthly de folie !

Les 9 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Ragoteur qui prend l'eau en Île-de-France, le Lundi 07 Octobre 2019 à 06h53  
J'comprends pas très bien pourquoi la première image est "jouable" alors qu'il manque une brique pour délimiter l'espace. N'est-il pas justement précisé dans le billet qu'il est nécessaire de délimiter l'enceinte ?
par Nicolas D., le Dimanche 06 Octobre 2019 à 16h37  
par Ideal, le Samedi 05 Octobre 2019 à 21h59
Les niveaux contenant des boss genre king leoric avaient des patterns concernant l'architecture de la pièce qui contient le boss qui se répétaient dans toutes les itérations "aléatoires" du même level et surement qu'ils avaient nombres d'autres patterns moins visibles PARTOUT.Ici c'est de l'aléatoire avec comme seules règles, celle que le programme d'apprentissage a extrait par lui-même des 5 levels "exemples" (ou des 45 levels dans l'autre expérience).
C'est pour ça qu'on voit même un scorpion composer un bout du mur d'enceinte dans un des level injouable. Enfin c'est ce que j'ai compris du papier + des photos de levels injouables.

Moi je trouve nicolas un peu dur avec le papier original.
Pas sûr que si on demande le même travail à un enfant de 6 ans ou un vieux de 80 ans sans aucune expérience de jeu + aucune récompense à la clef on trouve forcément des meilleurs résultats, ptet ça serait même pire pour les niveaux injouables surtout au bout de 100 essais.
Faut voir l'évolution dans 1 an, 2ans .. et +.
C'est aussi ce que j'avais compris. Certes je suis un peu mais le principe du ML est justement d'apprendre les subtilités sous-jacentes pour générer des niveau qui présentent donc une structure un peu ordonné.. Et j'ai clairement l'impression que ce n'est pas le cas ici. Mais il y a du boulot considérable derrière déjà pour arriver à ça, c'est clair, simplement la techno n'est pas encore mature... Ce qui est une bonne conclusion pour de la recherche publique !
par Un ragoteur RGB en Île-de-France, le Dimanche 06 Octobre 2019 à 08h57  
Mon avis c'est que des types bien instruits qui passent du temps à mettre au point les conditions de création de ces niveaux, au lieu de sortir le jeu à la va-vite, ça sera 10x mieux que des soi-disant IA qui devinent ce qu'il faut faire. Mon avis c'est qu'ils amusent la galerie en collant le terme IA à un truc déjà utilisé pour faire cool, voire vont aller utiliser inutilement le jeu d'instruction utilisé pour l'indexation sur le GPU histoire de dire qu'il faut des instructions spécialisées pour jouer... selon la bonne devise Shadok : pourquoi faire simple si on peut faire compliqué ?
par Ideal, le Samedi 05 Octobre 2019 à 21h59  
Mais bien-sûr qu'on a pas attendu le machine learning pour générer des niveaux "aléatoirement" mais dans Diablo 1 tu imagines bien que le coté aléatoire n'est pas un pur 100%. Y a des règles très strictes implémentés par les dev concernant le nombre d'ennemis ou la taille maxi/mini d'un niveau.
Les niveaux contenant des boss genre king leoric avaient des patterns concernant l'architecture de la pièce qui contient le boss qui se répétaient dans toutes les itérations "aléatoires" du même level et surement qu'ils avaient nombres d'autres patterns moins visibles PARTOUT.
par Un médecin des ragots en Bourgogne-Franche-Comté, le Samedi 05 Octobre 2019 à 20h31
Générer des niveau aléatoires , ce n'est pas nouveau.
Ici c'est de l'aléatoire avec comme seules règles, celle que le programme d'apprentissage a extrait par lui-même des 5 levels "exemples" (ou des 45 levels dans l'autre expérience).
C'est pour ça qu'on voit même un scorpion composer un bout du mur d'enceinte dans un des level injouable. Enfin c'est ce que j'ai compris du papier + des photos de levels injouables.

Moi je trouve nicolas un peu dur avec le papier original.
Pas sûr que si on demande le même travail à un enfant de 6 ans ou un vieux de 80 ans sans aucune expérience de jeu + aucune récompense à la clef on trouve forcément des meilleurs résultats, ptet ça serait même pire pour les niveaux injouables surtout au bout de 100 essais.
Faut voir l'évolution dans 1 an, 2ans .. et +.
par Un médecin des ragots en Bourgogne-Franche-Comté, le Samedi 05 Octobre 2019 à 20h31  
Générer des niveau aléatoires , ce n'est pas nouveau. Le soucis c'est que les niveaux sont rarement intéressants. Dans un jeu à la diablo ça peut encore passer , dans d'autres jeux moins.
On voit par exemple que dans Oblivion , les ruines elfes et les forts ont été très probablement crées par un ordi et pas " à la main".
Résultat , une suite de couloirs et de pièces vides sans fonction apparentes et absurdes au niveau de la conception pour un humain .

Niveau plaisir de jeu , ce n'est vraiment pas ça.
par Un #ragoteur connecté en Île-de-France, le Samedi 05 Octobre 2019 à 18h29  
Un autre truc, en réseau que j'avais rencontré avec nethack c'est que les niveaux partagés devraient être stockes à chaque fois et s'accumuler pour chaque partie ouverte, du coup pour ces méga données par niveaux, chaque groupe de jouers des jeux online va se trainer des niveaux générés, avec leur états et ces données seront difficiles à compacter car l'évolution du niveau se fera sur version déployée (on pourrait imagine qu'un niveau sera généré à partir d'un numéro mais ce sera insuffisant pour enregistrer le niveau au fur et à mesure de son évolution du fait de l'interaction avec les joueurs. Du coup le nombre de données stockées par jouer, par jeu, et échanger (il faudra recopier sur son PC les niveaux générés) exploserait.
Donc ça ne pourra marcher que pour certains niveaux (pour ne pas déstructurer le jeu) et sur des jeux solo. Si j'ai bonne mémoire, la série Diablo génère ses niveaux, donc ça n'est pas très nouveau même sur les jeux commerciaux.
par Unragoteursansespace en Île-de-France, le Samedi 05 Octobre 2019 à 18h03  
En fait ça fait longttemps qu'on pouvait générer des niveaux et des cartes dans les jeux. Pourquoi on le fait pas ? (dans le temps j'avais réfléchi à l'introduire sur un fork nethack...)
D'abord difficile de le faire en réseau... parce que chacun avec sa carte, on aura du mal , puis parce que les jeux commerciaux, qui plus est, joués en réseau (voir problème précédent) permettent d'avoir une fin et de ne pas être rejoués et permettent grâce aux cartes fixes de faire appel à des extensions (nouvelles cartes) payantes. Bref, c'est totalement contre l'intérêt des fabricants de jeux.
Même un jeu FPS dans les classiques, ou d'aventures à quêtes, pourrait parfaitement avoir toutes ses cartes et autres séquences de jeu générées automatiquement. Ca nécessiterait de bien paramétrer la quantité de monstres/objets/ textures et leur teille, qu'on pourrait gonfler en fonction des configs, mais c'est super-faisable, et ça devrait pas demander des calculs de folie.
par Unragoteursansespace en Île-de-France, le Samedi 05 Octobre 2019 à 17h53  
Un petit détour par Nethack peut-être (1987) ? basé sur Hack (1982), basé sur Rogue (1980).
Ca générait ses propres niveaux, et c'était pas linéaire, plus ou moins en relation les uns avec les autres, et qui impactait le jeu réseau (on se rencontrait pas) mais on pouvait léguer des fantômes porteurs de nos objets si on mourrait, à ses suivants. A l'origine sur Unix/VMS.
Nécessitait, bien sûr, une carte accélérée ASCII.
Ce jeu sur lequel on pouvait passer des journées, qui tenait, si je me souviens bien, pour son format VT100 en 1 Mo était bourré de ce qu'on appellerait aujourd'hui IA. Çà permet de faire un méchant parallèle entre l'IA et l'eau chaude.
par Un ragoteur qui aime les BX en Bourgogne-Franche-Comté, le Samedi 05 Octobre 2019 à 12h40  
A la rigueur le niveau 2 , deuxième ligne ne serait pas si nul.
Un héro , une porte une clé , c'est un niveau possible.
Ensuite on a plus ou moins la voie du haut et la voix du bas, et deux chemin pour le bas , chacune protégée par un monstre. Le monstre du bas protège la clé . On pourrait presque jouer avec lui. Pour avoir la clé , on attend de voir dans quel direction il va aller pour prendre l'autre. Il faudrait aussi ruser avec le deuxième montre pour passer.

C'est loin d'être génial mais c'est jouable et ça a un minimum d'intérêt.