Problèmes et questions sur la version 1.2.8486

Coucou,
j’ai installé la nouvelle version de GD;
je teste d’abord mon dernier fichier jeu dans l’éditeur : absolument aucun bug, les centres d’objets ne posent
plus problème, tout va bien. Je compile donc le tout sans aucune modification, et c’est le drame.
Dès que je tire avec une arme, le jeu plante. Pour moi, c’est la toute première fois qu’un jeu réalisé
avec GD PLANTE ! Comme ce sont les armes, qui, une fois tirées, font buguer le jeu, et qu’elles
ne fonctionnent qu’avec les conditions de distance entre les objets, je pense que c’est là que se trouve le souci.
Par contre, ce n’est qu’une fois compilé que se produit l’erreur. Jamais dans l’éditeur, j’ai bien testé.

Il y a aussi le problème de l’écran de chargement du jeu, qui ne s’affiche toujours pas : on a juste un carré gris.

Maintenant j’ai juste quelques question :

  • Où peut-on spécifier les variables d’objets au départ ? Je ne les trouve pas dans les propriétés des objets. :frowning:

  • Copier l’image d’un objet sur un autre : à quoi sert cette fonction et comment l’utiliser ?

  • As-tu déjà implémenté les masques d’objets ? Sinon j’ai vraiment du mal, je trouve rien. :cry:

Visiblement, il y a quelques problèmes avec cette dernière version.
Déjà fais des sauvegardes de ton jeu pour pouvoir le ré ouvrir avec l’ancienne version et ne travaille qu’avec des copies.

Bizarre, Crone123 met rapporte aussi des bugs, mais qui se déroulent aussi dans l’éditeur. ( viewtopic.php?f=5&t=888&start=10 )

Si c’est la première fois, je code finalement quelque chose d’assez stable :mrgreen:
Plus sérieusement, si le jeu plante, m’envoyer ton fichier de jeu ( pas besoin d’images, allégé à juste la scène qui plante ) et la marche à suivre pour le faire planter pourrait m’aider à localiser le bug.

Oups, j’avais zappé ça. Je corrigerai ça une fois que le plus urgent sera passé.

Clic droit > Modifier les variables initiales, en dessous les propriétés.

A faire des trous :wink:
Regarde l’exemple Destruction, une image (vide) est copiée sur l’image actuelle des objets décor quand un missile rentre en collision avec un décor.

Ce n’est pas justement cette dernière fonctionnalité que tu appelle “Masques d’objets” ?

Comme je te l’ai dit, ce sont les conditions de distance entre les objets qui font planter. Et cela UNIQUEMENT quand le jeu est compilé.
Donc il y a problème dans les exécutions d’actions de la compilation par rapport à l’éditeur, enfin, c’est ce que ça me laisse penser… :confused:
Mais si vraiment cela ne t’aide pas, confirme-le moi et je t’enverrai mon fichier dès que possible.

Tout à fait, et sans vouloir faire trop de lèche, j’ai rarement vu ça chez la concurrence…

Ouhhhhhh… bien ça, je testerai plus tard… :mrgreen:

Et bien du coup oui !

Je viens de faire un mini jeu avec deux objets, et deux conditions testant leur distance, ça ne semble pas planter dans l’éditeur ni dans la version compilé…
D’ailleurs, si ça plante dans le jeu compilé, tu peux directement me joindre celui ci. Tu peux l’alléger de tout ce que tu veux tant que je peux reproduire le bug. ( Ça plante à tout les coups “j’espère” ? ). Je comprends que ça peut être un peu génant de devoir me passer un jeu, mais ça me permet de localiser bien souvent directement le problème.

C’est envoyé !

Les serveurs ne sont pas avec nous : Ce fichier n’est présentement pas disponible. :angry:

Je crois qu’il faut juste recharger la page jusqu’à que ça marche; le fichier est bien là.

Tu as pu télécharger le jeu ? Sinon dis-moi si je dois l’uploader à nouveau.

Je viens de réessayer, j’arrive toujours pas… Essaie avec un autre hébergeur. ( Voir en pièce jointe d’un mail : CompilGames@gmail.com ).

C’est un peu ce que je craignais, le jeu ne plante pas chez moi.
J’ai beau sélectionner les armes avec les chiffres du pavé numérique et faire un clic gauche pour tirer ( d’ailleurs, il y a une arme bizarre qui envoie des projectiles tournant sur eux mêmes, c’est marrant ), rien ne plante. :neutral_face:

Tu as vérifié que cette version allégée plante bien chez toi aussi ?

Oui, à tous les coups !
Aaaaah… D’où ça peut venir à ton avis ?

EDIT : Je viens de tester plusieurs anciens exécutables de mon jeu, et ils ne plantent pas…
Y aurait-il une bibliothèque avec laquelle mon ordinateur ne serait pas compatible ?

On va essayer de le savoir en essayant de debugger directement chez toi.
Télécharge cette archive : www.compilgames.net/dl/Debug8486.zip

Elle contient un PlayWin.exe et gdb.exe
En premier lieu, commence par prendre ton jeu compilé qui plante, et remplace le PlayWin.exe par celui de l’archive. Met au passage le fichier gdb.exe contenu dans l’archive dans le même répertoire que ton jeu.
Ensuite, lance un invite de commande ( Démarrer > Executer > cmd )
Dans la fenêtre DOS qui s’affiche, tape “cd lenomdurépertoiredetonjeu”. Par exemple, “cd C:\MonJeu\JeuCompilé”.
Là, tape “gdb Playwin.exe”. Tu va avoir le programme gdb qui va se lancer.
Tape “r” suivi d’un appui sur Entrer pour lancer le jeu ( en mode debug, les performances seront minables ).
Fait planter le jeu.
Une fois le jeu planté, la fenêtre DOS devrait t’afficher quelques infos, tu peux les copier ici.
Tape “bt” suivi d’un appui sur Entrer. D’autres informations s’affichent, copie les ici.

J’ai eu avant même que le jeu s’éxécute le message suivant :
Program received signal SIGSEGV, Segmentation fault.
0x03a077b7 in guard32!?Exported@@YAXXZ () from C:\WINDOWS\system32\guard32.dll

J’ai tout de même tapé bt au cas où :
#0 0x03a077b7 in guard32!?Exported@@YAXXZ ()
from C:\WINDOWS\system32\guard32.dll
#1 0x19fb7e70 in ?? ()
#2 0x00000000 in ?? ()

T’aurais pas Comodo Firewall ? Si oui, il faut le désactiver ou ajouter gdb aux programmes “autorisés” : forums.comodo.com/bug_reports/gu … 287.0.html

Je ne suis pas sûr que ce soit ton firewall qui fasse par contre planter le jeu en pleine partie lors d’un tir. Désactive le firewall et réessaye de jouer à tout hasard. Si ça plante toujours, refait la manip que je t’ai indiqué ( firewall toujours desactivé donc, sinon gdb plante dès le départ. Vu que c’est un programme qui touche un peu à la mémoire, il doit être considéré comme dangereux. )

Salut, je me lance avec cette nouvelle version (1.2.848) pour réaliser un petit jeu de plateforme afin de me “faire la main” avec GD! Apparemment les différentes mises à jours son fiable :slight_smile: ! Mais il arrive parfois qu’il y est quelques problèmes! Faut-il mieux:
→ réaliser tout mon jeu avec la même version de GD et le compiler;
→ ou bien passer dès que possible à une nouvelle version et faire les mises à jour dès que possible?
GD me semble tout à fait stable mais est-ce que la première option est plus prudente?
La possibilité de télécharger deux versions de Game Develop serait intéressante: une considéré comme très stable et éprouvée et une autre qui serait la dernière mise à jour :wink: Mon idée est peut-être inutile, je sais pas! Ça se trouve c’est déjà possible^^ ou alors ça sera pas gérable!

Les mises à jour apportent traditionnellement plus de correction que de problèmes, il faut donc mieux faire les mises à jour je pense.
Normalement, il ne doit pas y avoir de problème de compatibilité pour les jeux entre les versions, mais on ne sait jamais. En mettant directement à jour sa version, tu peux me rapporter assez vite le fait qu’il y a un problème qui est apparu dans ton jeu entre deux versions.

De plus, les mises à jour apportent aussi donc des corrections de bugs. Tu as donc normalement moins de chance de tomber sur un bug avec une nouvelle version.

Deux versions de Game Develop doivent pouvoir cohabiter sans trop de soucis. Le seul problème serait je pense qu’elle partagerait le même fichier d’options ( lors du changement d’interface avec le nouveau ruban dans la version 1.2, utiliser un fichier d’options d’une ancienne version donnait une interface inutilisable. A part ça, ça devrait aller. )

Habituellement, quand je met une nouvelle version en ligne, elle est soit considéré comme pas trop risquée ( quelques corrections et ajouts ), et dans ce cas je la met direct sur internet, ou alors elle apporte plus de nouveautés ( Nouveau système de sélection d’objet sans global/local ) et dans ce cas, je met une version bêta avant.
Pour cette version, il y a quelques problèmes qui se sont glissés dans les actions et conditions lors de leur rangement en extensions, c’était pas prévu, j’aurai dû me méfier plus. Mais par exemple, la prochaine version sera essentiellement composées des corrections que je fait actuellement, je conseille vivement de l’utiliser dès qu’elle sortira.

Mettre une version “stable et éprouvée” serait assez intéressant, mais à voir si ça ne rendrait pas les choses inutilement compliquées à gérer pour moi.

Oui, je l’ai désactivé, je l’ai désinstallé, rien à faire. Mais au début, il me demandait si je voulais bloquer le programme;
je lui ai donc dit non. Bizarre…
Je désespère.
Ah, sinon microsoft visual studio me proposait de débuguer, ça donnait ceci :
Unhandled exception at 0x006d2859 in PlayWin.exe: 0xC0000005: Access violation reading location 0x077c47aa.
Ca peut t’aider ? :cry:

Même le firewall désinstallé, tu as cette erreur :

0x03a077b7 in guard32!?Exported@@YAXXZ () from C:\WINDOWS\system32\guard32.dll

après avoir entré “r” dans gdb ?
Bon, essaie de relancer “gdb PlayWin.exe”, de lancer le jeu en mettant “r”, et lorsque le message d’erreur intervient, tape “c” et appuye sur Entrer. Ca devrait permettre d’outrepasser l’erreur de lancer quand même le jeu et le debugger avec.

Si ça marche, fait planter le jeu, et tape “bt” une fois le jeu planté pour avoir les infos importantes.
Si ça te remarque un message d’erreur très similaire ( faisant référence à guard32.dll ), retape “c” et Entrer pour essayer de continuer.

Pas trop non… Ce qu’on devrait obtenir avec un “bt” dans le debugger après le plantage devrait être beaucoup plus instructif.

Super !
Voici donc ce que ça donne une fois le jeu planté :
Program received signal SIGSEGV, Segmentation fault.
0x006d2859 in tt_cmap4_char_map_binary ()

Et voici le résultat après la commande “bt” :
#0 0x006d2859 in tt_cmap4_char_map_binary ()
#1 0x006d2c2a in tt_cmap4_char_index ()
#2 0x00697d90 in FT_Get_Char_Index ()
#3 0x00632d3c in sf::Font::GetKerning ()
#4 0x00635bb8 in sf::Text::Render ()
#5 0x00631cfa in sf::RenderTarget::Draw ()
#6 0x00565785 in Text::Draw (this=0x77cdf40, App=@0x22e0e8)
at C:\Users\Florian\Programmation\Game Develop Player\Text.cpp:23
#7 0x0052d3b5 in RuntimeScene::AfficheTexte (this=0x22f964, layer=
{static npos = 4294967295, _M_dataplus = {<std::allocator>
nu_cxx::new_allocator> = {}, }, _M
2ddfc “<6D\006Ó¨”"}})
at C:\Users\Florian\Programmation\Game Develop Player\RuntimeScene.c
#8 0x0052ebfb in RuntimeScene::Render (this=0x22f964)
at C:\Users\Florian\Programmation\Game Develop Player\RuntimeScene.c
#9 0x0052ef25 in RuntimeScene::RenderAndStep (this=0x22f964, nbStep=1)
at C:\Users\Florian\Programmation\Game Develop Player\RuntimeScene.c
#10 0x005e4c70 in main ()
at C:\Users\Florian\Programmation\Game Develop Player\main.cpp:206

Nickel, si j’ose dire ! :slight_smile:

Le bug intervient au niveau de l’affichage de texte.

Déjà, en désactivant l’affichage des textes ( en supprimant les actions d’Ecriture de texte, et les objets Textes si tu en a ), il y a des chances que ça ne bugge plus. Essaie donc de supprimer toutes les références à un affichage de texte, et de voir si le jeu compilé bugge toujours. ( Si oui, répète la manip pour avoir d’autres infos. Si ce sont sensiblement les mêmes, il y a peut être toujours des textes qui s’affichent et font bugger le tout ).

Ensuite, le bug semble provenir de la bibliothèque graphique SFML. Et j’ai notamment mis à jour cette dernière il y a peu. Et comme par hasard, la dernière mise à jour de la SFML améliorait l’affichage des textes.

Je vais rapporter ça au développeur, et si il n’y a pas de solution assez vite, je remettrai l’ancienne version de SFML. De ton coté, essaie donc de supprimer temporairement de ton jeu tout ce qui a trait à l’affichage de textes.

EDIT : Tu n’utiliserait pas une police spéciale pour tes textes ? Si oui, envoie la ( les ) moi pour que je puisse tester avec.