Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Superposition des Robots

A topic by Anata created Apr 03, 2018 Views: 472 Replies: 7
Viewing posts 1 to 9

Problème de superposition des robots.


ça peut complètement perturber notre robots au niveau de ces action :(

Developer

Ha... BUG.

Le bug classique quand on fait des déplacements smooth... Je vais galérer à corriger ça.

Developer

C'est rageant. J'ai beau relire mon code encore et encore, le bug n'est pas visible.

J'avais bien prévu le bug du smooth move, en initialisant la nouvelle position du robot dès l'instant où il décide de se déplacer (et donc avant qu'il ne se déplace visuellement).

Pour ma part, j'ai aussi eu une superposition de robots dès le début d'une partie, donc a priori le bug ne vient pas du déplacement smooth, dans ce cas...

Developer

Haaaaaa donc c'est peut être juste le positionnement initial ? Effectivement je ne vérifie peut être pas que la case est libre. 


Après vérification du screenshot c'est effectivement un début de partie !!!!

(1 edit)

[0.9.0.5] Je constate effectivement une superposition des robots. Cela semble lié au tirage aléatoire de l'ordre de jeu des robots. Cet ordre change-t-il à chaque tour de jeu ou une est-il décidé une seule fois au début ? J'ai même eu une superposition d'un robot et d'un mur : un robot a construit un mur sur une case et un autre s'est déplacé sur cette même case...

De mon point de vue la version 0.9.0.3 était bien plus stable.

D'après mes propres tests, l'ordre aléatoire est décidé une fois tous les robots chargés, et ne varie plus par la suite (ce qui est confirmé par le log général). Par contre, il y a un nouveau bug dans cette version, dû à ce tirage aléatoire, justement. Mais il n'entrave en rien le déroulement du jeu, donc ce n'est pas très grave... C'est juste inhérent au tirage au sort : lorsqu'un robot a un log personnel programmé (pour laisser une trace, en vue d'un débogage, par exemple), le log apparaît bien dans "l'état" du robot, quand c'est son tour de jeu, mais le nom qui apparaît est celui du robot qui portait son numéro lors du chargement initial (et qui était basé sur l'ordre alphabétique). Autrement dit, si le 3ème robot (dans l'ordre alphabétique), par exemple, devient le robot n° 7 après le tirage au sort, si ce même robot n° 7 émet des messages par log, ils seront indiqués comme provenant du robot n°3. Je ne sais pas si c'est très clair. Faites des tests en laissant des logs, et regardez comment ils apparaissent dans le log général... Ce sera plus parlant que mes explications, peut-être. ;)

(1 edit)

[0.9.0.5] J'ajoute une précision par rapport à mon post précédent :

"J'ai même eu une superposition d'un robot et d'un mur : un robot a construit un mur sur une case et un autre s'est déplacé sur cette même case...".

Les deux robots impliqués dans cet incident palpent tous les deux la case avant de valider leur action. Donc au cours du même tour SYS_Palp à renvoyé 0 (case vide) à ces deux robots alors, qu'à priori, quel que soit l'ordre dans lequel ils aient joué, SYS_Palp aurait dû retourner 1 (un robot) ou -1 (un mur) au second robot... non ?

Je repense à ce que David disait plus haut :

"J'avais bien prévu le bug du smooth move, en initialisant la nouvelle position du robot dès l'instant où il décide de se déplacer (et donc avant qu'il ne se déplace visuellement)."

Est-ce que ça vaut aussi pour les murs ? Si un robot construit un mur, les robots suivant dans le tour de jeu peuvent-ils savoir que la case sera occupée par un mur à la fin du tour ?