Syht / StochPong

1 stars 0 forks source link

Level design #13

Closed Syht closed 7 years ago

Syht commented 7 years ago

Je post notre discussion ici afin de faciliter le dialogue !

Laurent dans le jeu actuel, on a des angles variables, on peut garder, a généralise la classe des trajectoires, mais c'est intéressant. par contre au niveau analyse, il faudra séparer les cas de rebonds sur la face inférieure des autres collisions (bords, coins, ...)- je sais pas s'il existe une littérature sur ça.

par contre sur l'enchainement des niveaux, apres le 1er, je passerai direct au 5eme: en ayant une probabilité de 1., elles sont complétement informatives. ensuite on peut introduire les briques 50/50 du niveau 3 puis ensuite progressivement les autres briques - peut-être qu'à ce niveau, on peut utiliser un gradient de couleur pour indiquer la valeur de p associée à chaque brique rouge=(p=0) bleu:(p=1) - ou mieux d'utiliser une colormap isoluminante de type viridis:

https://duckduckgo.com/?q=+viridis+colormap&t=ffab&iar=images&iax=1&ia=images

tu dois pourvoir facilement choper les codes HEX de ces couleurs pour les 5 niveaux dont tu as besoin

https://bids.github.io/colormap/

pour introduire les choses progressivement, on pourrait faire:

1er niveau : que des bricks normales, sans rebonds stochastiques (100% de chance de rebond normal) 2nd niveau : 50% de bricks normales et 50% de bricks stochastiques 1. (100% de chance de rebond opposé) 3ème niveau : 25% de bricks normales, 25% de bricks stochastiques 1. et 50% de bricks stochastiques 0.5 (50% de chance de rebond opposé) 4ème niveau : 50% de bricks stochastiques 0.25 (25% de chance de rebond opposé) et 50% de bricks stochastiques 0.75 (75% de chance de rebond opposé) 5ème niveau : 25% de bricks normales, 25% de bricks stochastiques 0.25 (25% de chance de rebond opposé) 25% de bricks stochastiques 0.75 (75% de chance de rebond opposé) et 25% de bricks stochastiques 0.5 (50% de chance de rebond opposé) 6ème niveau : 20% de bricks de chaque probabilité

déjà, pour que la division tombe juste, on pourrait utiliser 9x8=72 plutot que 9x9=81 ensuite, tu peux essayer de garder le meme tableau, mais de générer les couleurs en faisant une permutation d'un arrangement, par exemple:

2nd niveau :

N_bricks = 89 p_rangés = np.hstack( 0.np.ones(N_bricks//2), 1.*np.ones(N_bricks//2)) np.random.seed(42) p_randomisés = np.random.permutation(p_rangés)

(le seed permet de "geler" le bruit)

Syht commented 7 years ago

J'aurais une question à poser : je n'ai pas compris l'utilité d'une colormap ? Ni comment attribuer les couleurs d'une colormap aux bricks ?

Sinon super pour la création de lvl, effectivement c'est mieux d'avoir du code pour générer aléatoirement. Je suis en train de créer un petit générateur de lvl que je mettrai sur le repo.

laurentperrinet commented 7 years ago

pour l'utilisation de la colormap, c'est assez crucial:

laurentperrinet commented 7 years ago

Sinon super pour la création de lvl, effectivement c'est mieux d'avoir du code pour générer aléatoirement. Je suis en train de créer un petit générateur de lvl que je mettrai sur le repo.

pour simplifier, tu peux utiliser des levels "écrits" mais générer aléatoirement les mappings de couleur. tu as sais l'utilisation du seed ?

Syht commented 7 years ago

J'ai compris pour la colormap ! Je vais m'y atteler mais comme je dois faire une présentation devant l'équipe du labo mardi, je vais sans doute m'en occuper plus tard.

Mon générateur de lvl est opérationnel. Quant à la seed, j'ai laissé 42 (car c'est la réponse à la question !) mais on peut mettre une seed random si c'est mieux. Si je ne dis pas de bêtise, la seed est la valeur initiale de la suite qui simule l'aléatoire (l'aléatoire n'existant pas vraiment informatiquement parlant, on utilise des suites déterministes). Du moins je crois.

laurentperrinet commented 7 years ago

Si je ne dis pas de bêtise, la seed est la valeur initiale de la suite qui simule l'aléatoire (l'aléatoire n'existant pas vraiment informatiquement parlant, on utilise des suites déterministes). Du moins je crois.

c'est exactement ça. en informatique, le seul hasard vient de l'humain :-)

bwicker commented 7 years ago

j'ai une question par rapport aux niveaux, il faut faire attention que chaque type de brique, sauf les briques normales, ait été présenté le même nombre de fois avant le niveau final pour qu'il y ait eu le même potentiel d'apprentissage non ?

laurentperrinet commented 7 years ago

par rapport au commentaire de Bruno: je pense intuitivement que l'apprentissage doit être assez binaire (on comprend qu'il y a une variabilité ou pas), mais après c'est vrai qu'il faut "estimer" le parametre p de la proba binomiale et la précision de cette estimée dépend du nombre d'apprentissages. il va donc y avoir une variabilité dans les apprentissages mais on peut espérer un transfert par l'utilisation du gradient de couleur... à voir lors de l'analyse...