Bonjour à tous !
Cet article est la suite directe de celui-ci. Aujourd’hui, je vais vous parler de l’organisation de Supra-Quest au niveau technique (programmation, choix de techniques à utiliser, ressources, etc).
Le problème des graphismes
Le premier problème auquel j’ai dû faire face était celui des graphismes à employer. En effet, comme je n’ai pas le talent d’un infographiste, je dois trouver moi-même des ressources à utiliser. Et ce n’est pas si facile… Heureusement, il existe un excellent logiciel nommé RPG Maker qui permet de créer des RPG facilement, et qui fournit des ressources intéressantes ! Il y a de tout : des éléments de lieux, des personnages, des monstres, etc.
Mais il y a un hic (encore et toujours…). Chaque version de RPG Maker (les 3 dernières, qui sont les plus utilisées sont RPG Maker 2003, RPG Maker XP, et RPG Maker VX) fournit des ressources totalement différentes ! Je ne parle pas des ressemblances entre les personnages d’une version à une autre, mais des types de ressources proposés. Par exemple, dans RPG Maker 2003 (une version peu “vieille” mais encore très utilisée !), il y a des images de chaque personnage en combat dans différentes positions (qui lance un sort, empoisonné, qui a gagné…), alors qu’elles ont disparu dans RPG Maker XP pour être remplacées par une image unique pour chaque personnage, quelque soit son état ! Et dans VX, il n’y a même plus d’images de personnages en combat… 
J’ai donc dû faire un remix des différents graphismes : j’utiliserai ceux des 3 versions à la fois, mais dans différentes situations. Vous verrez vite le résultat ! 
 Un éditeur de niveaux problématique
Dans beaucoup de jeux, lorsqu’on doit créer des lieux ou niveaux (dans un Mario, un Zelda ou un RPG par exemple), on utilise souvent un éditeur de niveaux. Pourquoi ? Tout simplement parce que c’est extrêmement pratique (je vais m’expliquer, hein) ! Lorsqu’on doit réaliser un jeu avec des lieux, on utilise souvent une fonction qui va se charger d’afficher le lieu à l’écran en lisant un fichier où sont inscrits les informations sur ce lieu. Cela permet un gain de temps énorme ! Imaginez s’il avait fallu, pour chaque lieu, dire à l’ordinateur d’afficher les images composant ce lieu… Ce serait long et laborieux. C’est pourquoi on créé un programme (l’éditeur de niveaux), avec lequel on créé des niveaux de façon très simple, puis qui les enregistre sous forme de fichier. Par exemple, RPG Maker intègre un éditeur de niveaux.

L’éditeur de niveaux de RPG Maker VX (ici en version japonaise)
Pour créer Supra-Quest, je vais aussi utiliser un éditeur de niveaux. Bien sûr, je le coderai moi-même, car il doit répondre aux besoins de SQ et aux techniques utilisées dans sa programmation. Mais voilà le problème : je ne pourrai pas coder un éditeur extrêmement puissant. En effet, la SDL permet de gérer de la 2D, mais ne sait pas pour autant créer des menus, des boutons, etc. Pour cela, il faut utiliser d’autres bibliothèques comme GTK+ ou Qt. Or, je ne sais utiliser aucune de ces bibliothèques. J’ai donc plusieurs possibilités :
- Apprendre à utiliser une de ces bibliothèques (je choisirais alors GTK+) pour pouvoir créer un éditeur de niveau puissant mais simple d’utilisation. Forcément, cela rajouterait beaucoup de travail, et donc de temps (aussi bien dans l’apprentissage que dans la réalisation), mais j’en gagnerais aussi au moment du mapping, c’est-à -dire au moment où je créerait SQ avec l’éditeur de niveaux.
- Utiliser la SDL pour réaliser un éditeur de niveau aussi puissant que si je l’avais codé avec GTK+. Je ne vous l’ai pas dit, mais c’est quand même possible. En fait, il faudra que simule les fonctionnalités de GTK+ mais avec la SDL. Ce serait assez difficile (mais tout à fait réalisable), mais ce serait un excellent entraînement !
- Utiliser la SDL pour réaliser un éditeur de niveau assez basique.
Finalement, j’ai choisi la troisième solution. Pourquoi ? Parce que, SQ n’étant pas un projet énorme, je peux largement me passer d’un éditeur de niveaux très puissant. Mais je n’exclus pas d’essayer les deux autres possibilités une autre fois, car elles ont des intérêts pédagogiques.
Le cryptage des fichiers
Comme je vous l’ai dit, l’éditeur de niveaux créé des fichiers contenant les informations sur les lieux. Mais SQ sera aussi composé de nombreux autres fichiers ! Le problème, c’est qu’un joueur mal intentionné pourrait les modifier, pour, par exemple, faire passer son personnage du niveau 1 au niveau 100… Je dois donc crypter les fichiers afin qu’au lieu de quelque chose comme “Niveau:1″, le fichier ressemble à “1235 4861 3259 7539 892 9248 5892 8964 9579 6325 4452″. Là , si vous modifiez le fichier, le jeu détectera le bidouillage (parce que vous avez toutes les chances d’obtenir quelque chose comme niveau -12364 ou niveau 12.035792 au lieu de niveau 100). Mais crypter un fichier, ce n’est pas une mince affaire… J’ai choisi d’utiliser un algorithme de cryptage nommé RSA et très sécurisé (il est impossible de décrypter)pour cette mission. Et pour trouver comment crypter, je peux vous dire que j’en ai bavé !
Edit: finalement, j’ai opté pour la technique du XOR, qui est beaucoup moins puissante, mais comme logiciel sera Open Source (licence GNU GPL) , tout le monde pourra de toute façon voir comment fonctionne le cryptage et le décryptage.
Conclusion
Après toutes ces épreuves à passer, ces choix à réaliser, Supra-Quest est enfin organisé. Mis à part le système de combat et le menu principal, je sais enfin comment je vais m’y prendre pour le réaliser. Attendez-vous prochainement à de plus nombreuses captures d’écran, et aperçus de Supra-Quest ! 