Game Develop Linux

Bonjour,
4ian, pourrais-tu compiler une bêta de Game Develop pour Ubuntu 11.10 ? La bêta pour Ubuntu 11.04 ne fonctionne pas sous Ubuntu 11.10. Et nous aimerions continuer à t’aider à trouver des bugs jusqu’à sortir une version stable. :wink: Merci d’avance.
@+
sototo

Oui, je vais voir ça.

Ah, cool, Merci :smiley:

Super, merci. :slight_smile:

Quand vous dites que GD ne fonctionne pas, ça veut dire que ça plante ou que ça ne se lance même pas ? Vous pourriez lancer “./Start Game Develop” avec un terminal et me dire ce qu’il s’affiche ?

Je viens de réussir à le lancer… Je pensais plus au fichier “Start Game Develop”… Bon en tout cas ça marche et tant mieux. Par contre, il y a un bug : lorsque l’on double clique sur une scène dans le gestionnaire des projets, Game Develop se ferme, et voici ce qui s’affiche dans le terminal :

19:46:58: Debug: Unrecognized accel key 'inser', accel string ignored. 19:46:58: Debug: Unrecognized accel key 'inser', accel string ignored. ReloadFirstPart: The program 'GDEditor' received an X Window System error. This probably reflects a bug in the program. The error was 'BadValue (integer parameter out of range for operation)'. (Details: serial 54 error_code 2 request_code 12 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.)
@+
sototo

Evitez de me dire que ça marche plus pour une histoire d’oublier d’utiliser le script pour lancer GD :wink:

Mais en effet, j’ai le même problème quand j’ouvre une scène, donc ça marche quand même pas. J’ai essayé de recompiler tous sous Ubuntu 11.10 mais toujours cette erreur. Je vais essayer de voir ça de plus près.

En même temps, Ubuntu 11.10 utilise un noyau Linux 3.0.x, même si ils ont dit que ça changerait pas énormément de choses, ça change quand même le numéro majeur de la version, donc ça peut jouer :wink:

Le noyau a peu d’importance dans le cas du problème d’exécution de GD. D’ailleurs, ils l’ont appelé 3.0.x seulement pour changer de la branche 2.6 qui n’en finissait pas. Mais il y a rien de nouveau qui justifie une nouvelle version majeure. :wink:

GD ne fonctionnerais pas mieux en utilisant des bibliothèques systèmes (par paquets) adaptées a l’architecture du PC?
EDIT: Et y aurait plus besoin du “Start Game Develop.sh”

Oui, c’est sûr.

On avait déjà parlé de ça je crois, notamment le fait que :

-Certes, il y aurait plus besoin de “Start Game Develop.sh”
-Certes, les bibliothèques du système sont compilés en 64 bits sur un système 64 bits alors que celles fournit par GD sont en 32 bits. ( Mais franchement, y a pour le moment aucun gain visible. )
-Vu que les bibliothèques fournis par GD sont recompilées sur un Ubuntu pour un Ubuntu, y a pas de raison que ça coince. ( Au contraire, on pourrait dire qu’utiliser des bibliothèques plus récentes permet de profiter des corrections et améliorations qui sont dedans ).
-J’utilise des fonctionnalités, comme le ruban de wxWidgets ou l’utilisation de SFML2 que je ne peux avoir qu’en fournissant moi même les bibliothèques, celles d’Ubuntu étant trop vielles.

Oui, enfin, en même temps, la SFML 2 est en développement encore…
Mais si tu n’as pas le choix, ça reste compréhensible :wink:

Tiens, le bug d’ouverture d’une scène, ça me fait penser qu’il y avait le même pour les premières bêtas de GD2 Ws… Mais le terminal ne disait pas les mêmes choses.

Je viens de tester Game Develop sur un Ubuntu 11.10 32bits fraîchement installé sur ma Virtual Box, j’obtient la même erreur :

The program 'GDEditor' received an X Window System error. This probably reflects a bug in the program. The error was 'BadValue (integer parameter out of range for operation)'. (Details: serial 51 error_code 2 request_code 12 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) Creating compiler instance... Compiling... pure virtual method called terminate called without an active exception ./Start Game Develop : ligne 5 : 1684 Erreur de segmentation ./GDEditor

Il serait peut-être judicieux de tester une version debug de GD sur Ubuntu 11.10. :wink:

Cette erreur est vraiment bizarre, mais au moins tout le monde a la même.
J’ai déjà tenté un debuggage, mais la version de debug avec gdb ne donne rien de probant ( Si je dis pas de betise, GDB n’attrape pas le plantage et considère que le programme se “termine normalement” ). Pourtant l’exemple SFML+wxWidgets fonctionne, je me demande où peut encore bien être l’incompatibilité.

En gros ça bug mais même le debugger ne te le dit pas ? Bizarre… Peut-être faut-il adapter le code pour Linux ?

Tu avais déjà parler du bug “pure virtual method called”, il semble que ce soit le même vu que ça se reproduise ici.
En recherchant un peu, ce bug peut venir d’une fonction virtuelle pure que tu appelles dans le constructeur d’une classe de base. Or, même si tu crées pas de classe abstraite, la classe fille n’a pas fini d’être construite lorsque tu appelles le constructeur de la classe de base qui tente lui d’appeler une fonction virtuelle pure qui n’a pas été encore redéfinie par la classe fille.

(J’ai trouvé ça ici : http://www.artima.com/cppsource/pure_virtual.html)

EDIT : Tu n’as pas fournit les header de TDM-GCC (à moins qu’il faille installer le paquet libstdc++6-dev mais problème à la compilation)

EDIT : J’obtient ça avec gdb, les dernières lignes sont intéressantes :

[code]The program ‘GDEditor’ received an X Window System error.
This probably reflects a bug in the program.
The error was ‘BadValue (integer parameter out of range for operation)’.
(Details: serial 51 error_code 2 request_code 12 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Creating compiler instance…
Compiling…
GDEditor: /home/florian/Programmation/GameDevelop2/ExtLibs/llvm/lib/Support/ThreadLocal.cpp :62 : void llvm::sys::ThreadLocalImpl::setInstance(const void*): L’assertion « errorcode == 0 » a échoué.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0x6080b70 (LWP 1935)]
0x00130416 in __kernel_vsyscall ()
[/code]

Ca donne quoi si tu lance la commande “bt” juste après que gdb ait rapporté le crash ? ( Pour avoir la trace des fonctions appelées ).

Le pure virtual method called n’est pas présent dans ton dernier message : Il semble que l’erreur soit par contre toujours liée à l’erreur affichée par le serveur X ( “The program ‘GDEditor’ received an X Window System error.” ).
Par contre, il y a une assertion liée à llvm dans le dernier message. Peut être est ce un dommage collatéral de l’erreur liée à X, je vais tenter de désactiver la compilation en interne des évènements pour voir si c’est mieux.

bt ne donne rien étant donné que j’ai une version release (No stack).

Par contre, on peut déboguer les erreurs X Window en faisant ça dans gdb avant de lancer le programme : (avec la version debug)

(gdb) break gdk_x_error

(valider avec Y)

Puis, il faut lancer le programme avec :

(gdb) run --sync

Les erreurs X Window étant lancées à part du programme, il faut forcer la synchronisation avec --sync.

Normalement, il devrait y avoir une backtrace des fonctions appelés. (à moins que tu ais déja tenté) :wink: