Voir la version complète : Portage des démos associées aux articles "Réaliser un RPG avec SDL et FMOD"
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
moi je peux compiler sous linux, si tu veux...
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 :)
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...) ?
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 :)
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). :)
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).
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...
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 ?
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...
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
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 !
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.
Oui, par contre comment je te fais parvenir demo1 ?
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 :)
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.
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.
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
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. ;)
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 )
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.
vBulletin® v.3.6.5, Copyright ©2000-2009, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org