PDA

Voir la version complète : Portage des démos associées aux articles "Réaliser un RPG avec SDL et FMOD"


MrCool
30/07/2005, 20h43
Bonjour à tous,
je cherche de bonnes âmes pour porter les démos associées aux tutoriaux sous différents OS.
Les deux OS qui m'intéressent le plus sont évidemment:

*nix
mac os x


Il faudrait simplement utiliser la recompiler en utilisant les outils de développement courant sur cette plate-forme et me renvoyer les zips pour que je mette à jour les archives.

Apparemment quelques modifications sont nécessaires mais mister k semble avoir réussi... s'il passe... :)

Lien discussion articles rpg 2d sdl:
http://www.games-creators.org/wiki/Discuter:R%C3%A9aliser_un_RPG_en_C_avec_SDL_et_FMOD

ganlhi
31/07/2005, 11h44
moi je peux compiler sous linux, si tu veux...

MrCool
31/07/2005, 12h02
Oui, ça m'intéresserait, en particulier avec les fichiers en plus (genre makefile) et une description de ce qu'il faut faire pour compiler sous linux :)

ganlhi
31/07/2005, 12h08
Ok, par contre je pourrai pas le faire aujourd'hui. Surement demain... Pour les codes, ils sont téléchargeables sur le wiki dans tes articles (très bons articles, soit dit en passant...) ?

MrCool
31/07/2005, 12h18
En fait les fichiers zip sont dans le forum stockage en bas de la liste, mais il y a des liens, en bas de chaque article dans le wiki :)

ganlhi
31/07/2005, 12h28
ok, ben je les prends, et je le fais des que possible...

Mister K
01/08/2005, 17h56
J'ai créé le tarball pour l'éditeur de carte pour Linux avec l'IDE Anjuta.

Comme je n'ai pas réussi à le télécharger ici :00000010: , voici un lien vers l'archive.

http://www.pinguinautes.org/article.php?id_article=101

Mister K
01/08/2005, 19h38
J'ai ajouté le tarball pour l'étape 7 du tutorial (même adresse que le message précédent). :)

MrCool
02/08/2005, 18h59
J'ai ajouté les archives. Merci!

Il me faut encore des volontaires pour les autres étapes et pour une version mac ;)

Mister K
03/08/2005, 20h41
C'est fait, c'est à la même adresse que ci-dessus.

J'ai refait une archive pour l'étape 7 (GUI) avec la même carte que la version Windows (J'ai bidouillé la fonction de loadmap pour la générer).

Voilà, je peux étendre les explications pour Anjuta et l'installation de la librairie fmod si vous le voulez (mais pas avant ce week-end car j'ai repris le boulot).

ganlhi
03/08/2005, 22h56
Bon, je suis désolé de ne pas avoir donné de nouvelles avant. Je viens de compiler le premier zip (demo1.zip)... Pas de probleme ! Par contre, je vais joindre un README à propos de Fmod pour que la compilation se passe bien...

ganlhi
03/08/2005, 23h29
la je suis sur le demo3 (sprites, etape 5).

Erreur :

Fatal signal: Segmentation Fault (SDL Parachute Deployed)


dans la fonction LoadSprite sur la ligne :

SDL_SetColorKey(libsprite->sprites[i].surf,SDL_SRCCOLORKEY,SDL_MapRGB(libsprite->sprites[i].surf->format,0,0,0));


je ne vois pas trop pourquoi... cette étape marche bien sous win ?

Mister K
04/08/2005, 06h53
Je viens de compiler le tarball et de le lancer, il fonctionne bien. :confused:

Tu as modifié des fichiers ?

ganlhi
04/08/2005, 09h40
ben juste les inclusions pour qu'elles correspondent aux fichiers sous linux (<SDL/SDL.h> au lieu de <SDL/sdl.h>) et les noms de fichiers ("map/01.map" au lieu de "map\\01.map")... mais de toute façon, cette fonction devrait ne pas avoir à faire avec ça...

MrCool
04/08/2005, 10h40
J'y pense: n'hésitez pas à me rapporter toutes vos modifications, j'essaierais de coder de manière plus portable les prochaines fois comme ça :p

ganlhi
04/08/2005, 10h55
Si je peux te suggerer un truc pour la portabilité (je viens d'y penser grace à ton code, justement) :

tu rassemble dans un fichier .h tous les trucs qui peuvent changer d'une version linux à une version windows, et tu inclus ce fichier dans les autres. comme ça, tu proposes 2 versions de ce fichier, et c'est le seul à etre modifié pour passer d'une plateforme à l'autre !

MrCool
04/08/2005, 11h04
A la limite pour les boûts de code non-portable, on peut utiliser les directives de compilation pour changer le comportement selon l'os :)

Il faut que je vérifie mais je crois également que fopen accepte le séparateur "/" même sous windows... (ie: fopen("map/01.map","r'b") ).

Donc normalement avec vos commentaires et 2/3 astuces on devrait arriver facilement à rendre les démos portables directement.

ganlhi
04/08/2005, 11h24
Oui, par contre comment je te fais parvenir demo1 ?

MrCool
04/08/2005, 12h17
Soit tu le mets sur un ftp, soit tu me l'envois par mail ou pas msn. (cf mon adresse msn pour avoir mon adresse mail :p)
Tu peux également la joindre à un de tes messages si elle fait moins de 150ko :)

ganlhi
04/08/2005, 12h21
Bon, voila l'archive. Mais en fait c'est un .rar, à renommer, car il accepte que les .zip... :)

Mister K
04/08/2005, 12h58
ben juste les inclusions pour qu'elles correspondent aux fichiers sous linux (<SDL/SDL.h> au lieu de <SDL/sdl.h>) et les noms de fichiers ("map/01.map" au lieu de "map\\01.map")... mais de toute façon, cette fonction devrait ne pas avoir à faire avec ça...

Ok, j'avais cru que tu avais utilisé les archives que j'avais faites sous linux.

Je crois savoir pourquoi ça plante, c'est les archives 01.map, 01.sprites qui plantent : il faut les régénérer sous linux avec les bons chemins.

ganlhi
04/08/2005, 13h00
comment ? en plus, dans demo1, il y a aussi ces fichiers, et ça marche...

Mister K
04/08/2005, 13h03
A la limite pour les boûts de code non-portable, on peut utiliser les directives de compilation pour changer le comportement selon l'os :)

Il faut que je vérifie mais je crois également que fopen accepte le séparateur "/" même sous windows... (ie: fopen("map/01.map","r'b") ).

Donc normalement avec vos commentaires et 2/3 astuces on devrait arriver facilement à rendre les démos portables directement.

Les seules modifs que j'ai faites, c'est la déclaration #include SDL/sdl.h => #include SDL/SDL.h, ainsi que le modification des chemins vers les documents.

Sinon les tarball que j'ai produit n'ont pas besoins d'Anjuta pour être installé.

Mister K
04/08/2005, 13h15
comment ? en plus, dans demo1, il y a aussi ces fichiers, et ça marche...

C'est 01.map le fautif : ce fichier n'est pas dans démo 1, le répertoire map est vide.Dans l'enregistrement des données, il y a les chemins vers le chipset et un fichier de musique. Les chemins ne sont pas valides sous Linux.

Hier, j'ai bidouillé la fonction loadMap pour modifier le fichier 01.map des tutoriaux. Si tu vas sur l'adresse des Pinguinautes cités plus haut, tu veras tous les tutoriaux pour linux avec le fichier 01.map au bon format (../data/map/01.map).

Si tu n'utilises pas ce chemin (utilisé par Anjuta) mais le même que celui du tutorial windows alors il faudrait que Mister Cool produise une carte avec les chemins écrit d'une manière plus universelle (genre map/01.map).

Pour les Sprites et les events, on peut les générer avec les données statiques donc pas de problème de portage.

Bidouille (je fais cela de mémoire car je suis au bureau :00000026: ):
================================================

Dans la fonction LoadMap, au début il y a lecture du fichier dans un buffer par deux fois.

Le premier charge le chemin vers les sons et le second vers le chipset.

Il suffit de créer une variable char *buffer2; en début de fonction et de l'utiliser à la place de buffer au moment où buffer est utilisé (j'espère que c'est clair :00000010: ) Après l'avoir initialisé buffer2 = "tiles/chipset0.bmp"; et idem pour le fichier musique.

Ensuite faire une sauvegarde de la carte chargée. Normalement, ça fonctionne.

MrCool
04/08/2005, 14h41
Oui, d'ailleurs j'ai mis un petit utilitaire pour générer tous ces fichiers dans l'étape 7.

Je vais regarder pour modifier tout ça lors de la sortie de l'étape 8 ;)

nb: évidemment je ferais une update des autres démos ensuite :p

ganlhi
04/08/2005, 16h49
Mister K > tu peux récupérer mon archive et régler ce probleme ? Parce que je crains de ne pas avoir le temps de le faire dans les prochains jours... Alors si tu peux t'en occuper, ça ira plus vite

Mister K
04/08/2005, 17h59
Oui, mais je n'arrive pas à ouvrir ton archive.


Sans nouvelles de toi demain, je produirais les fichiers de données avec les mêmes chemins que la versions win. ;)

ganlhi
05/08/2005, 11h33
Ben comme je l'ai dit, c'est une archive rar. mais j'ai du la renommer en .zip pour que le forum l'accepte. Renomme la en .rar et tape "unrar x demo1_linux.rar"

Mister K
05/08/2005, 18h24
Ben comme je l'ai dit, c'est une archive rar. mais j'ai du la renommer en .zip pour que le forum l'accepte. Renomme la en .rar et tape "unrar x demo1_linux.rar"

Désolé, j'avais pas bien lu :D

J'ai testé l'archive, il ne manquait que les fichiers de données. Je les ai ajouté et j'ai refait le paquet en zip.

En pièce jointe, la carte du tutorial de MisterCool utilisable par ta version de linux. :)

Par contre je n'arrive pas à uploader le fichier demo1_linux.zip (plus de 100 ko, ce doit être la raison) :(

Je vais mettre l'archive sur les Pinguinautes (http://www.pinguinautes.org/article.php?id_article=101 )

MrCool
14/08/2005, 16h36
Je remonte le topic pour signaler que vos commentaires ont été pris en compte pour l'étape 8: tous les chemins suivent la syntaxe "dossier/dossier/fichier.ext" et j'inclus <SDL/SDL.h> au lieu <SDL/sdl.h>.

Pour porter le projet sous linux, si vous avez besoin de changer l'arborescence, n'hésitez pas à ajouter un préfixe (/data/ par exemple :p) lors du chargement des médias, cela vous évitera d'avoir à recompiler les fichiers ;)

NB: évidemment toutes les maps de l'étape 8 ont été recompilées avec des chemins du type "dossier/dossier/fichier.ext".

Mister K
19/08/2005, 18h28
Bonjour,

Ca y est, j'ai fait le transfert sous linux, elle est disponible à l'adresse suivante :http://www.pinguinautes.org/ecrire/articles.php?id_article=101

Bug :

main.h : il subsiste un sdl.h en minuscule (le dernier ;) )

J'ai dû neutraliser deux lignes (une dans event.h et l'autre dans player.h : visiblement cela aurait un rapport avec le débogage sous devc++).

Ca marche sans avoir à retoucher les cartes ou quoi que ce soit. :00000025:

Mister K
20/08/2005, 10h36
Un bug, sous linux et windows : la démo n'arrive pas à lire les fichiers .mid, fmod renvoie l'erreur suivante : "unknow file format" lors du chargement du paramètre musique de la carte.

Par contre les .wav passent très bien.