Affichage des articles dont le libellé est Programmation. Afficher tous les articles
Affichage des articles dont le libellé est Programmation. Afficher tous les articles

05 février 2009

How To: installer la fmod Ex sur linux?

Avant propos : Ce tutoriel n'est qu'une mise à jour d'un ancien billet intitulé How To: installer la fmod 3.75 sur linux?, dans lequel je parle de la fmod au détriment de la fmod Ex. Dans l'ancien billet je fonctionne sur un Ubuntu 32bits, maintenant c'est un 64bits. Il faut savoir que la fmod 3 est maintenu à la derniere version stable c'est à dire la 3.75. La fmod Ex est plus puissante mais plus lourde, et finalement la fmod 3 reste mieux pour appliquer trois sons à deux events sur un mini jeu en 2D, façon de parler ! Dans ce cas retournez sur l'ancien tutoriel sinon je vous invite à lire la suite (la première est peu changée) ...
if(dont_want == BLABLA) goto partie2 ;

Tout d'abord, qu'est-ce que la fmod?
Sans rien vous cacher, je peux vous dire que c'est une library qui...
...Qu'est-ce qu'une library?
Une library (je ne l'écris pas librairie car le mot library se traduit bibliothèque en français) est - en programmation bien sûr - un ensemble de fonctions qui ont un but commun et qui peuvent s'appeler entres-elles, ces fonctions ou procédures sont déclarées par des fichiers d'en tête (en anglais header *.h) inclues par le développeur s'il en a besoin dans son code.
Qu'elle est la particularité de la fmod en tant que library ?
La fmod est tout simplement une library très puissante qui gère le son (musique, bruitage) et les effets sonores. De plus elle est portée sur une multitude de platforme.
Mais la fmod n'est pas libre...
Donc sa spécialité, c'est le son et elle marche aussi bien sur PC que sur Mac si j'ai assimilé?
En effet c'est presque ça, sauf que par multiplatforme j'entends différents systèmes d'exploitation, par exemple MS-Windows, GNU/Linux, Mac OS, mais j'entends aussi quelque chose qui va vous étonner : des consoles de jeu.
Mais comment fait-elle pour que le fichier soit lisible sur tout ça?
Quand on code un programme, on tape des commandes bien sûr, et entre autre des commandes pour les accès aux sons si on veut en utiliser (par exemple charger un fichier audio, le lire, ...), ces fonctions sont toujours les mêmes tant qu'elles sont dans le code source, cependant le fichier library lui varie en fonction de la platforme, c'est comme ça cela qu'on peut compiler les fonctions de cette library dans notre programme, dans un format binaire compréhensible par la machine ou le système.
J'énumère donc les treize différentes platformes que supporte la fmod:
- Windows 32bit
- Windows 64bit (AMD64)
- Linux
- Linux 64bit (AMD64)
- Macintosh (os8/9/10/x86)
- Windows CE (Pocket PC / Smart phone)
- Playstation 2
- Xbox
- GameCube
- Xbox 360
- Playstation Portable
- PLAYSTATION®3
- Wii

La bibliothèque et ses en-têtes pour chaque platforme respective sont téléchargeables sur le site de la fmod dans la section download (si ce n'est pour les consoles où une documentation est complémentaire).


Comment installer la fmod?

Pour commencer, il va falloir récupérer la library : FMOD Ex linux. Dans l'archive, seul le dossier api nous intéresse (vous pouvez consulter le reste: c'est de la documentation et des exemples), et dans ce dossier seul le fichier *.so qui représente la bibliothèque de fonction et le contenu du dossier inc qui contient les headers vont nous servir. Le mieux est de les décompresser sur un endroit visible comme le bureau ~/Bureau.

Cette version de la fmod possède un Makefile qui permet de l'installer dans les répertoires du système et qui se résume à ça pour l'installation :

echo "Installing FMOD Ex libraries and headers..."
cp -f api/lib/libfmodex64-4.22.02.so /usr/local/include/fmode
cp -f api/lib/libfmodexp64-4.22.02.so /usr/local/include/fmode
ldconfig -n /usr/local/lib
mkdir -p /usr/local/lib
cp -f api/inc/*.h* /usr/local/lib
echo "done."
Pour lancer l'installation tapez make install dans un terminal dans le repertoire du makefile.
S'il ne marche pas, copiez collez ce code dans un fichier texte et appelez le install.sh par exemple et rendez le exécutable (chmod u+x install.sh dans un terminal ou proprièté->permission->rendre exécutable), puis ouvrez un terminal placez vous dans le dossier où vous avez décompressé l'archive : cd ~/Bureau/fmodapi et lancez le script ./l'endroit_ou_se_trouve_le_script/install.sh et c'est bon !

La commande ldconfig crée les liens symboliques. Pour linker -llibfmodex64-4.22.02 ou plutôt -lfmodex64 grâce au lien symbolique.

Info : Si le vous avez des erreurs à propos du fichier .so lors de la compilation ou du lancement du programme c'est surement qu'il n'est pas détecté(libfmodex64 pour 64bits, et libfmodex32 pour 32):
à la compilation : vérifiez que vous avez bien /usr/local/lib/libfmodex64-4.22.02.so
si non réinstallez la bibliothèque
au lancement : vérifiez l'existence du lien symbolique /usr/lib/libfmodex64.so
si non créez le ou, coupez-collez et renommé le fichier libfmodex64-4.22.02.so (c'est pas la méthode propre mais à mon goût c'est là qu'il aura fallu que soit ce fichier au départ)


Note de la fin : Avec ces articles sur la fmod j'espère apporter ma petite contribution à la communauté comme il le faut (tappez "fmod linux" sur google et voyez le premier résultat :) ).
Et sur la documentation Ubuntu me voici : http://doc.ubuntu-fr.org/fmod

07 juillet 2006

How To: installer la fmod 3.75 sur linux?

Tout d'abord, qu'est-ce que la fmod?
Sans rien vous cacher, je peux vous dire que c'est une library qu...
...Qu'est-ce qu'une library?
Une library (je ne l'écris pas librairie car le mot library se traduit bibliothèque en français) est - en programmation bien sûr - un ensemble de fonctions qui ont un but commun et qui peuvent s'appeler entres-elles, ces fonctions ou procédures sont déclarées par des fichiers d'en tête (en anglais header *.h) inclues par le développeur s'il en a besoin dans son code.
Qu'elle est la particularité de la fmod en tant que library ?
La fmod est tout simplement une library très puissante qui gère le son (musique, bruitage) et les effets sonores. De plus elle est gerée par une multitude de platforme.
Donc sa spécialité, c'est le son et elle marche aussi bien sur PC que sur Mac si j'ai assimilé?
En effet c'est presque ça, sauf que par multiplatforme j'entends différents systèmes d'exploitation, par exemple MS-Windows, GNU/Linux, Mac OS, mais j'entends aussi quelque chose qui va vous étonner : des consoles de jeu.
Mais comment fait-elle pour que le fichier soit lisible sur tout ça?
Quand on code un programme, on tape des commandes bien sûr, et entre autre des commandes pour les accès aux sons si on veut en utiliser (par exemple charger un fichier audio, le lire, ...), ces fonctions sont toujours les mêmes tant qu'elles sont dans le code source, cependant le fichier library lui varie en fonction de la platforme, c'est comme ça cela qu'on peut compiler les fonctions de cette library dans notre programme, dans un format binaire compréhensible par la machine ou le système.
J'énumère donc les treize différentes platformes que supporte la fmod:
- Windows 32bit
- Windows 64bit (AMD64)
- Linux
- Linux 64bit (AMD64)
- Macintosh (os8/9/10/x86)
- Windows CE (Pocket PC / Smart phone)
- Playstation 2
- Xbox
- GameCube
- Xbox 360
- Playstation Portable
- PLAYSTATION®3
- Wii

La library et ses en-têtes pour chaque platforme respective sont téléchargeables sur le site de la fmod dans la section download (si ce n'est pour les consoles où une documentation est complémentaire).
Il y a la version 4.04 sur le site, pourquoi installe-t-on la 3.75?
La version 4.04 est déjà installée d'office sur certaines distributions, mais même si ce n'est pas le cas, la procédure est la même, sauf qu'au lieu d'appeler les fichiers fmod, ils se nommeront fmodex. Pour connaître les différences entre fmod et fmodex je vous laisse regarder le tableau de la rubrique comparison du site de la fmod. Le choix d'installer ici la fmod est qu'elle est encore populaire, et qu'elle nourrit largement nos besoins en programmation sonore.

Comment installer la fmod?

Pour commencer, il va falloir récupérer la library : FMOD 3.75 linux. Dans l'archive, seul le dossier api nous intéresse (vous pouvez consulter le reste: c'est de la documentation et des exemples), et dans ce dossier seul le fichier *.so qui représente la bibliothèque de fonction et le contenu du dossier inc qui contient les headers vont nous servir. Le mieux est de les décompresser sur un endroit visible comme le bureau ~/Desktop.
Cette version de la fmod est censée être - pour linux - dans le dossier du projet; Mais afin de pouvoir l'utiliser comme n'importe quelle library c'est à dire, en la liant avec -lfmod dans le compilateur, au lieu de préciser son arborescence à chaque fois, quelques manipulations simples s'envisagent.

Le fichier qui contient les fonctions s'appelle libfmod-3.75.so. Normalement, un lien symbolique devrait être fourni dans l'archive, ce n'est pas le cas donc il devient nécessaire de changer le nom du fichier (ou de créer un lien symbolique).
Le paramètre -lfmod du compilateur cherche la library qui se nomme libfmod.so dans le dossier /usr/lib ou/et usr/local/lib; Sous windows, il cherche le fichier libfmod.a dans le dossier lib du compilateur.
Pour faire un makefile (script de compilation) efficace qui reprennent les mêmes options du compilateur sous chacun des systèmes, le fichier libfmod-3.75.so doit être rennomé en libfmod.so. Cela fait, il est temps de lui présenter son domicile, ouvrez un terminal puis saisissez (si votre distribution n'utilise pas sudo, connect vous en root):
sudo chown root chemin/libfmod.so
$ sudo chgrp root chemin/libfmod.so
Cela va changer le propriètaire du fichier et du groupe en root, c'est nécessaire pour les library par question de sécurité. Les permissions sont lecture, écriture et éxecution pour le propriètaire et, lecture et éxecution pour le groupe et les autres.
Ensuite, déplacez le dans le dossier /usr/lib où il finira sa vie:
$ sudo mv chemin/libfmod.so /usr/lib
Si cette méthode ne vous plait pas, vous pouvez toujours garder le nom du fichier, puis créer un lien symbolique ou alors préciser l'emplacement exact du fichier lors du link "chemin/ libfmod-3.75.so" au lieu de -lfmod.

Maintenant il ne reste plus qu'à s'occuper des headers, cette fois ci ce n'est plus une histoire de compilateur qui gène, mais de source: si vous ne voulez pas modifier vos sources en changeant de platforme, il va falloir que l'endroit d'où l'on inclue les headers soit le même: <fmod/fmod.h>, donc /usr/include/fmod. L'opération est plus simple, dans un terminal entrez:
$ sudo chown root chemin/fmod.h chemin/fmod_errors.h chemin/fmoddyn.h chemin/wincompat.h
$ sudo chgrp root chemin/fmod.h chemin/fmod_errors.h chemin/fmoddyn.h chemin/wincompat.h
On donne les fichiers au root et à son groupe, les permissions sont les mêmes que celles du fichier *.so.
$ sudo mkdir /usr/include/fmod
Puis déplacer chacun des fichiers:
$ sudo mv chemin/fmod.h chemin/fmod_errors.h chemin/fmoddyn.h /usr/include/fmod
Voilà vous pouvez maintenant inclure la fmod par #include <fmod/fmod.h> dans vos sources et l'appeler par -lfmod dans le compilateur.

05 février 2006

Heart Invader II

Voilà, mon dernier projet en SDL en C est terminé.
C'est un remake de space invader mais avec les coeurs de msn en ennemis. Voilà il n'y a rien d'autre à ajouter.

Il est disponible au téléchargement pour Linux et pour Windows.

Commandes :
- Flèches directionnelles droite et gauche pour le déplacement
- Espace pour tirer
Options(dans le fichier config) :
- Largeur width = 300 par défaut
- Hauteur heigth = 275 par défaut
- Vie(s) des ennemis VIE = 1
- Vitesse des projectiles VIT = 1 jusqu'à 2 maximum
- Temps de déplacement des ennemis TPS = 1 (encore en phase d'expérimentation, disponible : supérieur à 1)

Possibilité de changer les médias dans le dossier "/medias" au format *.bmp en changeant le nom (les paramètres seront initialisé pour le nouveau média sauf pour les projectiles du vaisseau)

10 décembre 2005

SDL en C

Je me suis remis à la SDL en C sous Ubuntu, il est beaucoup plus agréable de compiler dans un terminal qu'avec l'interface graphique d'un logiciel, pourquoi? Ne me le demandez pas! En tous cas, je n'ai aucun problème de compilation tout est fluide, enfin bref totalement le contraire de sous windows.
Voilà j'espère arriver à un projet après plusieurs séries de tests.

Vive la prog, vive le C, vive l'open source et le logiciel libre et pour finir vive GNU/Linux !