jeudi 29 avril 2010

Développement multimédia utilisant OpenGL et la librairie SDL

Quand j'étais petit, mes parents avaient un TO8 et pour pouvoir jouer à un jeu sur cette machine là, il fallait soit lui faire lire une cassette audio pendant plus d'une demi-heure, soit entrer en mémoire une longue liste de commandes qui, correctement tapées, donnait un jeu lorsqu'on exécutait le code.
Ce furent mes premiers pas en programmation et ma découverte du langage basic.
Plus tard, j'ai découvert le Visual Basic, une autre forme de basic mais adapté au système de fenêtres de Windows. J'ai bidouillé assez longtemps en auto-didacte avec, avant d'arriver en BTS informatique et d'y apprendre les bases académiques de la programmation.
Par la suite je me suis mis au PHP, développant des sites sans lendemain tout à la main.
Puis j'ai tenté la migration vers le C/C++ toujours en auto-didacte. J'ai lu divers tutoriaux et polycopiés d'université mais je trouvais ça plutôt obscur, pas engageant.
Puis je suis tombé sur les tutoriaux du site du zéro plutôt connus, et plutôt bien foutus qui pris uns par uns et revus plusieurs fois m'ont permis d'enfin arriver obtenir un programme éxécutable. ^^
Ce n'est pas encore un programme complet, mais des premiers jets. Il n'empêche qu'ils procurent la joie et la sensation d'accomplissement que ressens tout créateur lors du processus de création ^^

Voilà après cette petite introduction de mon parcours en terme de développement et pour dire donc qu'il s'agit bien d'un statut amateur/hobbyiste, j'en arrive enfin au but premier de cet article qui était de poser quelques liens que j'ai obtenu lors de mes recherches d'informations concernant le développement avec la librairie SDL et l'affichage de rendu en openGL.


Au départ j'avais trouvé aussi ce petit tuto concernant l'utilisation d'openGL afin de réaliser une appli 2D.
Il est loin d'être complet mais peut avoir son utilité.

Il permet de se rendre compte que même si l'on va "simplifier" l'affichage à l'écran, il faudra tout de même passer par les objets "complexes" d'OpenGL.
Le but du jeu donc, pour afficher une image à l'écran est de créer un Quad OpenGL et d'y appliquer notre image en tant que texture.
La profondeur du cube n'est pas prise en compte (on est en "2D" l'affichage sera donc une vue "fixe"). En fait on créé une scène 3D et on "triche" sur le positionnement de la caméra pour rendre l'effet aplatit.


Ensuite j'ai trouvé OSDL - Une librairie en développement qui à terme devrait permettre de programmer des jeux 2D facilement à l'aide d'openGL. Je ne me suis pas servi de la librairie mais de la documentation (en anglais principalement) fournie sur le site. La plupart des questions et interrogations que j'avais (l'utilisation de surfaces SDL afin de texturer les Quads OpenGL, utilisation de FrameBuffer, l'initialisation/organisation/gestion de l'affichage) y sont traitées et du code semblant fonctionner est fourni. La doc renvoie vers de nombreux liens qu'il est intéressant de consulter aussi.

Gérer l'affichage de l'application avec OpenGL est tout de même quelque chose d'assez tendu. Il est évidemment conseillé de passer par les fonctions SDL si votre jeu doit avoir un aspect simple. Mais pour le projet que j'ai en tête, les performances et les possibilités offertes par la SDL m'incitent plutôt à passer par OpenGL.
Je m'oriente aussi actuellement vers une librairie supplémentaire AGAR, un GUI supportant openGL et SDL.
Je ne me suis pas encore penché trop en profondeur sur celui-ci dans la mesure où je n'ai pas trouvé de lib précompilée (code::blocks) pour lui.

Il va falloir me pencher sur ce "lourd" problème en tant qu'auto didacte sous windows n'ayant pas encore saisi toutes les subtilités de la compilation de librairie. ^^

Aucun commentaire:

Enregistrer un commentaire