Chapitre 30 :

Boostons notre jeu avec glsdl !



Tutoriel présenté par : Jérémie F. Bellanger

Dernière mise à jour:  28 janvier 2014
Difficulté :




Grâce à glsdl, vous allez pouvoir booster les performances de votre jeu !




      Avec l'ajout de notre double couche de tiles, si vous avez des niveaux bien remplis de tiles dans tous les sens, vous vous serez vite rendus compte des limites de la SDL, qui a du mal à suivre au niveau performances. En effet, il arrive souvent que le nombre d'images (frames) par seconde baisse d'un coup, rendant le jeu tout de suite moins fun...

     Mais quelle solution peut-on apporter à ce problème, en attendant l'arrivée d'une nouvelle version de la SDL, plus puissante ?

     Eh bien, heureusement, il existe le wrapper glsdl, développé par Olofson, qui va nous permettre d'envelopper la SDL dans une surcouche OpenGl et ainsi de profiter de la puissance d'OpenGl, sans modifier notre code SDL !

     Allez, c'est parti !       
 

Note : Depuis, comme vous avez certainement pu le constater, la SDL 2 est sortie et rend donc quelque peu caduque ce chapitre. Je le laisse cependant pour ceux qui auraient déjà bâti leur projet en SDL 1.2 et préféreraient se tourner vers cette solution, relativement simple à mettre en oeuvre, plutôt que de convertir tout leur jeu en SDL 2. Cela dit, grâce à Gondulzak, tout le Big Tuto est maintenant disponible en SDL 2 avec commentaires sur les changements opérés. De plus, un nouveau chapitre devrait prochainement arriver, expliquant la démarche à suivre pour passer de la SDL 1.2 à la SDL 2.



 Installons le wrapper glsdl d'Olofson


Pour cela, il va nous falloir d'abord récupérer le fichier du wrapper sur son site web, ici.

Téléchargez le fichier glSDL-0.8.tar.gz, dézippez-le et conservez uniquement les fichiers glsdl.c et glsdl.h que vous copierez dans le répertoire de votre projet (Aron, si vous ne l'avez pas changé ).

Voilà, faites maintenant un clic droit sur le nom de votre projet dans Code::Blocks et choisissez Add Files... Sélectionnez ces deux fichiers et validez (en debug et release de préférence ).


Les fichiers du wrapper font maintenant partie de votre projet : plus qu'à lui indiquer comment s'en servir !
Pour ça, on va aller dans le fichier defs.h, enlever #include < SDL/SDL.h > et le remplacer par #include "glsdl.h".


Fichier : input.c - Fonction update()


	//On rajoute glsdl qui va remplacer la SDL
	#include "glsdl.h"
	/* #include < SDL/SDL.h > */




On va ensuite changer l'initialisation de la SDL pour qu'elle initialise glsdl, en rajoutant le flag SDL_GLSDL :


Fichier : init.c - Fonction init()


	/* Initialise SDL Video */
	if (SDL_Init(SDL_INIT_VIDEO | SDL_GLSDL) < 0)
	{
		printf("Could not initialize SDL: %s\n", SDL_GetError());
		exit(1);
	}




Attention, selon l'endroit où est situé votre fichier SDL.h, il se peut que vous ayiez à changer cette ligne dans le fichier glsdl.h :


Fichier : glsdl.h


	/* We're still using SDL datatypes here - we just add some stuff. */
	#include "SDL.h"



par :

Fichier : glsdl.h


	/* We're still using SDL datatypes here - we just add some stuff. */
	#include "SDL/SDL.h"



Eh, voilà, c'est fait !
Quoi, déjà ?
Eh, oui, plus qu'à compiler et normalement c'est bon, vous devriez pouvoir rajouter plus de tiles sans que ça rame de trop !






 

Connexion

CoalaWeb Traffic

Today117
Yesterday238
This week1040
This month518
Total1745417

3/05/24