Besoin de testeurs

Bonjour,

Je commence à développer un petit zelda en C++/SDL (dev sous Ubuntu et un peu sous Debian) et en reprenant la partie graphique du jeu snes. C’est juste pour le fun et pour apprendre, et là, j’ai besoin de quelques retours.

Je sais comment le jeu fonctionne chez moi sur deux de mes machines ainsi que dans une machine virtuelle (elle aussi sous Debian) mais j’aimerais aussi savoir si au stade où j’en suis, ça fonctionne correctement ailleurs.
En haut à gauche doit s’afficher un petit carré de couleur ayant pour but de dire si le nombre de fps est conforme à celui paramétré, càd 50fps (bleu -> OK; jaune -> A la limite acceptable; rouge -> Mauvais).
J’aimerais en particulier connaitre les caractéristiques générales des machines qui auront pu le faire tourner, correctement ou non (distrib, processeur, mémoire vive, carte graphique, année de la machine (c’est pour situer un peu)).

Le programme (et son code source, si ça intéresse quelqu’un) et dispo là -> archive zelda (il faudra installer la lib “sdl” et la lib “sdl_image” pour que le jeu fonctionne).

Concernant les jeu en lui même. Pour le moment :

  • on peut déplacer le personnage.
  • la gestion des collisions est OK (non sans mal).
  • on peut passer d’une carte à l’autre (deux cartes dans le programme proposé).
  • détruire des buissons à l’épée (touche A; attribution temporaire).
  • enfoncer des plots au maillet (touche Z; attribution temporaire).
  • faire pause (touche P).
  • se faire poursuivre par des ennemis lorsqu’il y en a sur la carte.

  • Je n’en suis qu’au début mais ça avance tranquillement.

Merci d’avance pour vos retours !

— Fred —

[edit]
IL semble qu’il faille aussi installer la lib “libSDL_gfx” pour que le jeu se lance.
[/edit]

hello

edit : j’ai eu plusieurs problèmes, pour voir la situation actuelle aller à la fin de ce post

au début : pour moi, sous arch, en 64 bits, j’obtiens d’abord ceci :

13:09:18 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 11$ ./zelda ./zelda: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory 13:09:25 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 12$ ls /usr/lib/libSDL* /usr/lib/libSDL-1.2.so.0 /usr/lib/libSDL_mixer-1.2.so.0.10.1 /usr/lib/libSDL-1.2.so.0.11.3 /usr/lib/libSDL_mixer.a /usr/lib/libSDL.a /usr/lib/libSDL_mixer.so /usr/lib/libSDL_image-1.2.so.0 /usr/lib/libSDL.so /usr/lib/libSDL_image-1.2.so.0.8.2 /usr/lib/libSDL_ttf-2.0.so.0 /usr/lib/libSDL_image.a /usr/lib/libSDL_ttf-2.0.so.0.10.0 /usr/lib/libSDL_image.so /usr/lib/libSDL_ttf.a /usr/lib/libSDLmain.a /usr/lib/libSDL_ttf.so /usr/lib/libSDL_mixer-1.2.so.0 13:09:28 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 13$ file /usr/lib/libSDL-1.2.so.0 /usr/lib/libSDL-1.2.so.0: symbolic link to `libSDL-1.2.so.0.11.3' 13:09:31 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 14$

en cherchant à inclure le fichier en changeant LD_LIBRARY_PATH, j’ai obtenu ceci :

13:13:16 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 16$ echo $LD_LIBRARY_PATH /usr/share/pandore/lib: 13:14:40 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 17$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib 13:14:59 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 18$ ./zelda ./zelda: error while loading shared libraries: libSDL-1.2.so.0: wrong ELF class: ELFCLASS64 13:15:03 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 19$
le programme n’accepte pas la bibliothèque compilée en 64 bits.
je crois que je vais devoir le recompiler, étant en 64 bits et le programme compilé pour 32, ou installer sdl à partir de multilib… je teste l’installation des bibliothèques 32 bits car pas vu de makefile

à installer : au moins lib32-sdl_ttf-2.0.10-3 lib32-sdl lib32-sdl_image lib32-sdl_gfx lib32-libtiff4
je retente une fois tout ça installé

situation actuelle :
avec les bonnes bibliothèques d’installées, j’obtiens ceci

18:06:28 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 5$ ./zelda ./zelda: /usr/lib32/libjpeg.so.62: no version information available (required by /usr/lib32/libtiff.so.4) Image images/personnages/link/link1.png introuvable !! 18:06:30 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 6$

sur ce blog il dit que le “no version information available” n’est pas bloquant. Ce qui est plus choquant, c’est que l’image ne soit pas trouvée alors qu’elle est bien là :

18:18:00 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 11$ ls images/personnages/link/link1.png -lh -rw-r--r-- 1 stepharch users 16K 26 août 23:25 images/personnages/link/link1.png 18:18:08 stepharch@toshi:~/Téléchargements/zelda_2011_08_26 12$

hum hum, je ne comprend pas. Voilà ce que donnent les mêmes commandes chez moi (sur une machine où l’appli se lance) :

[code]17:21:20 fred@Macmini:~/Bureau/zelda_2011_08_26$ ./zelda
17:21:32 fred@Macmini:~/Bureau/zelda_2011_08_26$ ls /usr/lib/libSDL*
/usr/lib/libSDL-1.2.so.0 /usr/lib/libSDL_image.la
/usr/lib/libSDL-1.2.so.0.11.3 /usr/lib/libSDL_image.so
/usr/lib/libSDL.a /usr/lib/libSDL.la
/usr/lib/libSDL_gfx.a /usr/lib/libSDLmain.a
/usr/lib/libSDL_gfx.la /usr/lib/libSDL_mixer-1.2.so.0
/usr/lib/libSDL_gfx.so /usr/lib/libSDL_mixer-1.2.so.0.2.6
/usr/lib/libSDL_gfx.so.13 /usr/lib/libSDL_mixer.a
/usr/lib/libSDL_gfx.so.13.5.2 /usr/lib/libSDL_mixer.la
/usr/lib/libSDL_gfx.so.4 /usr/lib/libSDL_mixer.so
/usr/lib/libSDL_image-1.2.so.0 /usr/lib/libSDL.so
/usr/lib/libSDL_image-1.2.so.0.8.2 /usr/lib/libSDL_ttf-2.0.so.0
/usr/lib/libSDL_image.a /usr/lib/libSDL_ttf-2.0.so.0.6.3
17:21:58 fred@Macmini:~/Bureau/zelda_2011_08_26$ file /usr/lib/libSDL-1.2.so.0
/usr/lib/libSDL-1.2.so.0: symbolic link to `libSDL-1.2.so.0.11.3’
17:22:50 fred@Macmini:~/Bureau/zelda_2011_08_26$ echo $LD_LIBRARY_PATH

17:23:49 fred@Macmini:~/Bureau/zelda_2011_08_26$ cd images/personnages/link/
17:25:15 fred@Macmini:~/Bureau/zelda_2011_08_26/images/personnages/link$ ls -l
total 44
-rw-r–r-- 1 fred fred 164 2011-08-26 23:25 bouclier1.png
-rw-r–r-- 1 fred fred 852 2011-08-26 23:25 epee1.png
-rw-r–r-- 1 fred fred 750 2011-08-26 23:25 epee3.png
-rw-r–r-- 1 fred fred 1054 2011-08-26 23:25 epee5.png
-rw-r–r-- 1 fred fred 304 2011-08-26 23:25 exploLapin.png
-rw-r–r-- 1 fred fred 15559 2011-08-26 23:25 link1.png
-rw-r–r-- 1 fred fred 2128 2011-08-26 23:25 objets.png
-rw-r–r-- 1 fred fred 400 2011-08-26 23:25 spin.png
17:25:18 fred@Macmini:~/Bureau/zelda_2011_08_26/images/personnages/link$
[/code]

Je n’ai pas fait de makefile. L’exécutable est une copie de celui se trouvant dans le dossier bin/debug/ du projet. Pour le moment je pensais que ça fonctionnerait partout comme chez moi.
Ce qui est étrange, c’est que j’ai rencontré un problème identique aujourd’hui dans une machine virtuelle Debian (ce PC n’est pas le mien donc je n’ai pas pu rester dessus longtemps). Tout ce que je sais, c’est que cette machine virtuelle n’était pas à jour (pas lancée depuis plusieurs mois). J’imagine que ta distrib est à jour mais c’est peut être une piste.

Je vais essayer d’installer une ou plusieurs machines virtuelles toutes fraiches pour voir ce que ça donne

Je crois que j’ai vraiment bien fait de demander des retours sur mon programme moi :mrgreen: .

En même temps, il faut aussi la libSDL_gfx qui n’est pas installée sur ta machine.
Ça vient peut être de là.

J’édite mon sujet.

maintenant tout est installé (j’ai édité le message à chaque nouvelle étape), le problème est qu’il ne trouve pas une image (à la fin du message)
j’ai édité mon message précédent, j’espère que c’est plus clair

Il me semble que c’est la première image .png appelée par l’appli (gérée par SDL_image donc).

Je viens de réinstaller une Squeeze toute fraiche dans une machine virtuelle (+ MàJ + installation libSDL_image et libSDL_gfx) et ça semble suffire. Ça se lance correctement.
A tout hasard, tu peux peut être retélécharger l’archive.

la première image est ici il me semble, dans le main

alors que link1.png est chargée dans personnage.cpp ligne 852

je retélécharge l’archive au cas où, même si ça m’étonnerait que ce soit ça.

Bon j’ai installé Code Blocks, compilé le projet, déplacé “bin/Debug/zelda” vers “zelda”, et ça marche. :023

carré bleu, en même temps mon pc n’a que quelques mois.

[code]$ archey3

           +                OS: Arch Linux x86_64
           #                Hostname: toshi
          ###               Kernel Release: 3.0-ARCH
         #####              Uptime: 8:13
         ######             WM: Xfwm
        ; #####;            DE: LXDE
       +##.#####            Packages: 1352
      +##########           RAM: 1645 MB / 3829 MB
     #############;         Processor Type: Intel(R) Core(TM) i5 CPU M 480 @ 2.67GHz
    ###############+        $EDITOR: nano
   #######   #######        Root: 11G / 15G (73%) (ext4)
 .######;     ;###;`".      
.#######;     ;#####.       
#########.   .########`     

######’ ‘######
;#### ####;
##’ ‘##
#’ `# [/code]
carte graphique

23:46:33 stepharch@toshi:~/Téléchargements/zelda_2011_08_26/bin/Debug 43$ lspci|grep VGA 01:00.0 VGA compatible controller: ATI Technologies Inc Manhattan [Mobility Radeon HD 5000 Series]
Driver libre xf86-video-ati 6.14.2-1

En revanche, j’ai voulu agir un peu, donc j’ai testé toutes les lettres (j’ai vu que a donne un coup d’épée et z un coup de marteau) mais j’ai réussi à planter le jeu je ne sais pas comment (il bouffe un cœur dans top, heureusement j’en ai plusieurs :stuck_out_tongue:)

0391 stepharc  20   0 54916 9.9m 3540 R   99  0.3   4:24.06 zelda

et il réagit pas aux control-C :033 et je peux cliquer sur la croix autant que je veux, ça change rien… faut un killall -9.

/me doit penser à virer les libs 32 bits que j’ai installé du coup :083

Ok. Du coup, le binaire que je propose ne semble fonctionner que pour Debian et dérivés.

Donc, si ça fonctionne normalement sans ralentissements, est-ce que tu peux juste m’en dire un peu plus sur ta machine. Ça semble être une machine récente (si j’en crois ta signature : tourne aussi sous W7).
[edit]tu as répondu entre temps[/edit]

Je serais aussi beaucoup intéressé par les retours de personnes pouvant faire l’essai sur un “ordinosaure”.

En tout cas, merci de ta patience kamui57.

j’ai édité mon message précédent avec les caractéristiques. J’ai un autre pc, 6 ans, sous crunchbang, 32 bits, la prochaine fois que je l’allumerai je testerai.

Je sais pas… faudrait que quelqu’un teste avec 64 bits sur debian, à mon avis c’est plus ça le souci. Là je l’ai recompilé pour mon architecture, donc avec les bibliothèques “officielles”, ça va mieux. Je doute que la distrib ait à voir là dedans.

Pour les actions des touches A et Z, je n’ai pas cherché à empêcher qu’elles s’exécutent en même temps car à terme, c’est la même touche qui gère les deux (la sélection de l’arme se faisant dans un menu qu’il me reste à créer. Ceci dit, je n’ai jamais réussi à faire planter l’appli avec ces touches.

Je ne comprend pas trop pour la fermeture de la fenêtre. Je suis en train de regarder.

[code]21:54:57 fred@Macmini:~$ top

top - 21:55:30 up 21 min, 2 users, load average: 0.12, 0.07, 0.11
Tasks: 143 total, 3 running, 140 sleeping, 0 stopped, 0 zombie
Cpu(s): 28.1%us, 27.2%sy, 0.0%ni, 44.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1771172k total, 800976k used, 970196k free, 70752k buffers
Swap: 6141948k total, 0k used, 6141948k free, 352544k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2031 fred 20 0 19712 10m 3772 R 74 0.6 0:26.42 zelda
1261 root 20 0 66944 51m 13m S 28 3.0 2:14.38 Xorg
1744 fred 20 0 67708 45m 13m S 8 2.7 1:02.96 compiz
1936 fred 20 0 305m 46m 23m S 4 2.7 0:45.61 rhythmbox

[/code]
Effectivement, c’est assez gourmand et c’est aussi l’une des raisons pour lesquelles je cherche des retours.

Pour la consommation CPU, j’ai ajouté un SDL_Delay(1) dans la boucle qui gère le nombre de FPS. C’est déjà mieux même si ça semble être encore important.

[code]22:19:21 fred@Macmini:~$ top

top - 22:27:37 up 53 min, 3 users, load average: 0.06, 0.10, 0.13
Tasks: 147 total, 2 running, 145 sleeping, 0 stopped, 0 zombie
Cpu(s): 39.2%us, 11.9%sy, 0.0%ni, 48.2%id, 0.6%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 1771172k total, 920208k used, 850964k free, 74072k buffers
Swap: 6141948k total, 0k used, 6141948k free, 423264k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1261 root 20 0 72516 56m 14m S 39 3.3 8:13.26 Xorg
2784 fred 20 0 19720 10m 3776 S 23 0.6 0:00.68 zelda
1868 fred 20 0 396m 111m 28m S 14 6.4 5:20.26 firefox-bin

[/code]

La fonction SDL_BlitSurface est consommatrice de ressources semble-t-il. Je travail depuis un moment à améliorer cela affichant le minimum de sprites utiles à l’écran (je développe en parallèle un éditeur de map sensé produire des cartes optimisée).

[edit]J’ai mis le lien vers la version à jour du programme dans le premier sujet[/edit]

Des nouvelles : pas encore de démo à proprement parler mais quelque chose qui commence à être jouable malgré des défauts et pas mal de choses encore à faire.
Pour vous faire une idée, les sources sont à télécharger là -> zelda.sujets-libres.fr/zelda-fred.zip .

Il y a un makefile cette fois (c’est plus simple). Normalement, il suffit donc d’avoir installé les librairies qui vont bien (SDL, SDL_gfx et SDL_image) pour compiler le projet (testé sous Ubuntu, Debian et Fedora).

Je suis preneur de retours de toutes sortes.

Nan rien j’avais oublié le make clean
→[]
ça marche bien (testé tuer quelques ennemis)

Avec Debian Squeeze en 64 bit et en compilant avec Code::Blocks ça fonctionne, carré bleu.

ps: processeur 4 coeurs cadensé à 2.33 ghz donc pas vraiment un ordinosaure :mrgreen:

Up,

Petite vidéo rapide pour montrer où j’en suis (car je bosse toujours dessus) :
youtu.be/K7TdIW6oYdg

Depuis le temps, j’ai quand même repris le projet à zéro pour repartir sur de meilleures bases (le code devenait… comment dire… :078 ).
Maintenant, je m’y retrouve rapidement même après six mois passés sans y toucher (car je travaillais sur un autre projet).

:mrgreen:

Excellent boulot :slightly_smiling:
Je viens de tester la démo postée il y a 2 ans, elle fonctionne super bien.
Si jamais l’envie te prend de nous faire tester une nouvelle version :mrgreen:

Merci,

Si la version en cours t’intéresse, elle est disponible via l’adresse suivante : http://dev.sujets-libres.fr/.
(encore une fois, c’est une version en développement et il y a encore plusieurs choses à revoir et plein d’autres pas encore implémentées).

Cool, merci beaucoup !