Bienvenue sur le SQ-Devblog !
C'est le blog de développement de Supra-Quest, un jeu vidéo amateur concentrant une aventure épique, un monde presque sans limites à découvrir et un système de combat novateur ! Quelques infos sur ma vie et sur l'informatique aussi.

I am working & playing

24 juin 2009

Bonjour à tous !

Comme je me suis rendu compte qu’il y a longtemps que je n’ai pas écrit d’article, je viens vous donner des nouvelles de moi (et de Supra-Quest). Faisons le récapitulatif de ce que j’ai fait pendant cette période d’absence sur le blog.

Un travail irrégulier

Avant tout, j’ai changé un peu l’organisation du projet au niveau des évènements (PNJs, dialogues, boutiques, combats, etc). Il faut savoir que les évènements ne sont pas codés dans le programme. Cela signifie qu’à aucun moment je ne pourrai trouver une ligne de code qui dit “Lance un dialogue avec un PNJ”. Si je devais procéder ainsi, alors le programme serait rempli de lignes de code dans le genre : vous imaginez le cauchemar. Dans les RPG, on a donc pour habitude de séparer le moteur de jeu des évènements. Le moteur de jeu est la partie du programme qui va afficher les images, jouer les musiques, etc, tandis que les évènements contiennent les données comme les dialogues, les endroits où les PNJ doivent aller, les informations sur les monstres, etc. Pour coder ces évènements, j’ai décidé d’utiliser un langage nommé Lua, au lieu de coder moi-même un système de script.

J’ai énormément avancé dans le développement de SQ1-Maker : il est presque fini. Il y a peu, on pouvait seulement choisir un nom pour la carte à créer… Maintenant, on peut choisir des éléments à placer sur la carte (par exemple de l’herbe, de l’eau, le toit d’une maison). Il manque seulement l’affichage de la carte et sa sauvegarde.

Mais tout ce travail a été particulièrement irrégulier : il y a eu des moments où j’ai codé une grande partie de Supra-Quest, mais aussi des semaines entières où je n’ai pas codé.L’arrivée des vacances me permettra sûrement de coder un peu plus.

Une petite session retro

Une des raisons pour laquelle mon développement a été si irrégulier est que je me suis plongé dans le monde des  RPG de la Super Nintendo. Cette console a accueilli d’inombrables RPG devenus mythiques, et revisiter ces classiques m’a permis de m’inspirer de leurs ambiances et de leurs univers. Je pense par exemple aux premiers Final Fantasy, aux premiers Dragon Quest, mais aussi à Secret of Mana, à Tales of Phantasia, à The Legend of Zelda : A Link to the Past, et à mon coup de coeur, Chrono Trigger. J’en ai aussi profité pour jouer à Super Mario World, un excellent Mario en 2D.

Durant ces vacances, je n’aurai pas non plus énormément de temps mais j’essaierai malgré tout d’accélérer le rythme de développement. Je ferai de mon mieux !

Je vais vite… et lentement

21 mai 2009

Bonjour à tous !

Cela faisait un petit moment que je n’avais  pas publié d’article. En effet, j’étais en voyage en Allemagne. Mais me voici de nouveau !

Si vous avez lu la page Supra-Quest, vous vous êtes sûrement rendu compte qu’actuellement, je suis censé m’entraîner à développer des petits jeux assez simples, avant de passer à Supra-Quest proprement dit. Cependant, je développe actuellement l’éditeur de niveaux…

En fait, j’ai tout simplement sauté cette étape. Laughing (attendez avant de me taper dessus !)

Oui, je sais bien, que c’est moi qui vous ai précédemment déclaré qu’il faut s’organiser pour avoir un projet solide, et aussi avoir de l’expérience pour ne pas lamentablement se rétamer au moment du développement… Mais pour le moment, j’ai vraiment l’impression d’avoir le niveau nécessaire, avec tous les tutoriaux et articles que j’ai lus sur le développement de jeux (et plus particulièrement des RPG). De toute façon, si je vois que je n’ai pas le niveau nécessaire, je m’entraînerai plus avant de réessayer. Mais c’est un peu un défi personnel. Wink

Quant à cet éditeur de niveaux, je lui ai donné un nom: SQ1-Maker : cela signifie littéralement le “fabricant de Supra-Quest I” (eh oui, il y aura plusieurs épisodes, si je réussis au moins à finir le premier…). En effet, ce logiciel ne va pas me servir uniquement au mapping (la création des cartes), mais aussi à celle des évènements et des éléments de la quête. Je m’explique. Smile

Les évènements sont des suites d’actions qui se réalisent tout au long du jeu dans certaines conditions. Par exemple, quand on appuie sur la barre d’espace devant un PNJ, un dialogue commence. Ou encore quand on marche dans un donjon, au bout d’un certain temps, des ennemis nous attaquent, etc. Tous ces évènements, je vais les créer grâce à SQ1-Maker. Mais je vais aussi l’utiliser pour créer les différents objets présents dans le jeu, les sorts, etc. Bref,  c’est un logiciel important.

Pour le moment, je n’en suis qu’à l’éditeur de cartes. Je n’ai pas réalisé grand chose : j’ai pour le moment réalisé une partie qui demande des informations sur le nom du lieu créé. Mine de rien, ce n’est pas si facile, car j’ai dû créer mon propre système de gestion d’entrée de mots au clavier (la SDL ne le fait pas). J’éditerai peut-être prochainement cet article pour vous montrer des captures d’écran !

Une coupure et un cadeau !

6 mai 2009

Bonjour à tous !

Si vous avez essayé d’accéder au SQ-Devblog cet après-midi, vous avez dû tomber sur un message dans le genre Impossible d’afficher la page. Je m’en excuse, et pour me faire pardonner, je vais vous offrir un cadeau !

C’est un lien vers mon espace SVN. SVN est un gestionnaire de versions : il permet à plusieurs personnes de travailler sur un même projet (comme un jeu vidéo) en même temps, et de gérer les modifications de chacun. Cet espace SVN est le lieu où sont stockés les fichiers du projet.

Certes, vous me direz que comme je suis le seul à travailler sur Supra-Quest, SVN ne m’est pas utile. Mais comme je travaille à la fois sous Windows et Linux (Linux en temps normal, mais Windows lorsque je n’ai pas envie de redémarrer l’ordinateur ou que je ne peux pas), et parfois même sur un ordinateur portable, mes fichiers sont un peu éparpillés.Mais grâce à SVN, je peux avoir mon travail où que je sois, et dans la version la plus récente.

Vous pourrez donc voir sur cet espace l’avancement de mon projet en ligne ! Cependant, comme c’est avant tout réservé à un usage personnel, il n’y aura aucune démo fournie, sauf pour les Linuxiens éventuellement, car je finalise toujours sous Linux (et encore, cela dépend de votre distribution Linux). Bref, je pense que ça intéressera surtout les programmeurs.

Il y a trois dossiers : Sources, qui contient le code et est composé de deux sous-dossiers (SQ1-Maker qui contient l’éditeur de niveaux, et Supra-Quest, qui contiendra le jeu), Documents qui contient des fichiers qui m’aident à m’organiser, et Ressources qui contiendra les musiques, les images, etc.

Pour l’instant, je travaille sur l’éditeur de niveaux, que j’ai nommé SQ1-Maker.

Ah, j’allais oublier le lien :

Mon espace SVN : SQ-Space

Des vacances mises à profit ! (2/2)

23 avril 2009

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… Undecided

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 ! Wink

 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 niveau de RPG Maker VX (ici en version japonaise)

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 ! Wink

Des vacances mises à profit ! (1/2)

22 avril 2009

Bonjour  à tous !

J’ai mis à profit ces deux semaines de vacances pour avancer dans la réalisation de Supra-Quest. Et je peux vous dire que j’ai appris beaucoup de choses, que j’ai acquis des réflexes et surtout que j’ai commencé à penser en profondeur à l’organisation de Supra-Quest au niveau technique.

Je maîtrise la SDL !

Tout d’abord, sachez que j’ai enfin fini mon apprentissage de la SDL ! Laughing

Je vous rappelle que c’est une bibliothèque de fonctions qui permet de faire des jeux vidéo en 2D. Je dois dire que ce n’est pas si compliqué, et que je me sens désormais beaucoup plus à l’aise en langage C. J’ai à peu près le niveau requis pour réaliser un RPG en 2D. Qu’ai-je réalisé ? Un sokoban (un casse-tête où un personnage doit placer des caisses sur des emplacements), et un petit jeu de tir.

Organiser un projet : un casse-tête

Outre les connaissances que j’ai acquises, j’ai commencé à penser à l’organisation de SQ (abréviation de Supra-Quest), au niveau technique (c’est-à-dire au niveau de la programmation, contrairement au game design qui concerne le scénario, l’univers du jeu, etc). Il faut dire qu’avant ces vacances, je me disais : “Je verrai au moment de programmer le jeu”. Si j’avais continué à penser ainsi, je pense pouvoir affirmé que mon projet aurait été désastreux ! Yell

En effet, lorsqu’on commence à réaliser un projet, et ce sans savoir que faire, les chances d’aboutissement de ce dernier sont quasi-nulles… Encore, si il est petit (comme un Pong par exemple), on peut se rattraper en cours, mais premièrement, ce sera du temps perdu, et deuxièmement, on ne réalise souvent pas le gros travail à faire derrière un projet ! Et je pense que tout ce que je viens de dire est valable dans tous les domaines(création d’entreprise, lancement d’un produit, etc).

Mais peut-être vous demandez-vous comment j’ai pris conscience de tout cela (non, dites oui pour me faire plaisir Tongue out) ? Et bien, comme je commençais à maîtriser la SDL, et que le temps de la programmation arrivait, je me suis rendu compte que je n’avais rien comme base… Je me suis donc documenté sur de nombreux sites : le Site du Zér0, Developpez.com, Oniromancie ou encore le Games Creators Network. Sur ce dernier site, qui est une mine d’or pour qui rêve de créer un jeu vidéo, j’ai trouvé un tutorial montrant comment créer un RPG de A à Z avec les outils que j’utilisais(langage C + SDL). Ce tuto, accessible à peu près à tout débutant,était très complet, mais j’ai trouvé que les fonctionnalités du RPG créé au final étaient un peu limitées, ou longues à créer avec la méthode utilisée. Cependant, même ce RPG était assez difficile à réaliser (en tout cas sans organisation) ! C’est alors que j’ai commencé à réfléchir au projet.

Je vous parlerai dans un prochain article, qui sera la suite de celui-ci, de l’organisation de Supra-Quest ! ;)

Deux pages de remplies !

25 février 2009

Bonjour à tous !

Je vous annonce aujourd’hui que j’ai rempli la page Supra-Quest (accessible via le menu en haut à gauche en cliquant sur “Le jeu”). Vous y trouverez une présentation générale du jeu. J’ai également commencé à remplir la page sur le développement de Supra-Quest : ces pages seront perpétuellement mises à jour, surtout la seconde.

Avec elles, vous devriez avoir beaucoup plus d’informations sur  ce que va être ce jeu ! Je dois avouer que jusque là, je n’avais rien laissé filtrer. Innocent Je pense continuer sur cette lancée ces temps-ci !

Supra-Quest (présentation générale)

Développement de Supra-Quest

Linux et Supra-Quest

3 janvier 2009

Bonjour à tous !

Je vais dans cet article vous parler de l’avancement du développement de Supra-Quest, et de ce que j’utiliserai pour le développer.

Oui, j’ai bien dit “utiliserai”, car je n’ai pas commencé. Rappelez-vous ! Aux dernières nouvelles, j’étais en train de m’entraîner à manier  la SDL (voir cet article).  Et c’est peu après que j’ai découvert l’élite du best du meilleur de la crème des crèmes des systèmes d’exploitation : Linux. :p

Je suis donc parti à l’aventure sous Linux… au détriment de Supra-Quest. Mais maintenant que j’ai fait un tour d’horizon de cet OS (synonyme de système d’exploitation), jepeux me remettre au travail. Concernant Linux, sachez que je suis loin d’avoir découvert tous ses secrets (qui peut prétendre l’avoir fait ?), mais je comprends beaucoup mieux certaines choses, je cerne plus les avantages de ce système, ses inconvénients, etc. Très bientôt, je commencerai une série d’articles sur le sujet. ;)

Mais revenons à nos moutons. C’est il y a environ un mois que j’ai décidé de me remettre à Supra-Quest mais en restant sous Linux. En effet, depuis peu, bien que Windows soit toujours installé sur mon ordinateur, je n’utilise plus que Linux (sauf quand je susi forcé d’utiliser Windows, soit dans 3% des cas). J’ai donc dû apprendre à développer sous Linux. J’ai dû choisir entre plusieurs logiciels, et apprendre à utiliser un programme nommé “gcc”.  C’est chose faite, je sais développer sous Linux ! J’utilise deux programmes : vim, un éditeur de texte surpuissant, et gcc, un compilateur (un programme qui transforme le code source en exécutable, c’est-à-dire en fichier qui peut être éxecuté, le jeu quoi).

Par contre, après tout ce temps passé sans programmer, j’ai dû me remettre dans le bain. J’ai donc recommencé à zéro le cours que j’utilise pour programmer, et, j’ai réussi en une après-midi (et encore, une moitié d’après-midi !), à boucler la partie 1 de ce cours ! À la fin de l’après-midi, j’avais fini un jeu de “Plus ou moins ?” (le jeu où un nombre mystère que le joueur doit trouver est tiré au hasard par l’ordinateur ou un joueur, et où le joueur devant trouver le nombre est aidé par les indices “C’est plus !” ou “C’est moins !”). Quelques captures d’écran ?

Code source d'un jeu de Plus ou Moins
Code source d’un jeu de “Plus ou Moins” écrit avec vim, un puissant éditeur de texte

Un jeu de Plus ou Moins
Un jeu de Plus ou Moins

Je suis donc en train de me remettre dans le bain de la programmation ! ;)

Mon programme est le suivant :

  1. Se remettre dans le bain (en cours)
  2. Apprendre à utiliser la SDL
  3. S’entraîner
  4. Développer Supra-Quest

Quant à la date de sortie de la version Alpha 1 (une vers de Supra-Quest, elle ne peut pas être précisée pour le moment. Je sais seulement que c’est l”étape 3 de mon programme qui va être la plus longue avant de sortir la version Alpha 1. Ah, il me reste quelques annonces à vous faire :

  • Je ne vous ai pas encore beaucoup parlé de l’univers de Supra-Quest, car  je ne voulais pas vous en dévoiler trop. En tout cas, je en vous dirai plus rien sur le scénario (je vous ai déjà parlé de la légende de l’univers de SQ). Je vous parlerai surtout du gameplay.
  • Je remplirai bientôt la page sur le développement de Supra-Quest et la page “Supra-Quest”
  • Je vous l’ai déjà dit, mais je vous le rappelle : je commencerai bientôt une série d’articles sur Linux
  • Voici, rien que pour vous, le jeu “Plus Ou Moins” que j’ai programmé, disponible en versions Windows et Linux (pour la version Linux, pour voir comment l’installer et y jouer, lisez le fichier “LISEZ-MOI.txt”) :

    Plus Ou Moins (version Linux ; 5.24 ko)

    Plus Ou Moins (version Windows ; 10.49 ko)

Le forum est de nouveau opérationnel !

28 décembre 2008

Bonjour à tous !

Je voulais vous annoncer que le SQ-Forum fonctionne à nouveau ! Dès maintenant, vous pouvez y accéder par ce lien :

Se rendre au SQ-Forum

Joyeux Noël

25 décembre 2008

Bonjour à tous !

En ce 25 décembre 2008, je tiens à vous souhaiter à tous un joyeux Noël ! Je remercie ceux qui suivent cette aventure depuis le début, c’est-à-dire depuis déjà 6 mois ! Eh oui, que de chemin parcouru ! ^^

J’ai aussi deux annonces à faire :

  • Le forum devrait bientôt réouvrir (dès le 28 décembre)
  • Je commencerai prochainement une série d’articles dans la série”Informatique”, dont je vous laisse la surprise du sujet ;)

Et à très bientôt sur le SQ-Devblog !

Problème sur le forum

19 décembre 2008

Edit2: Le nouveau forum est créé et fonctionnel, mais il n’est pas encore ouvert à tous car il reste quelques réglages à faire.

Edit1: Mon hébergeur (celui qui héberge le SQ-Devblog) a fait son possible pour régler le problème (et je l’en remercie, le support est rapide et efficace), mais je vais devoir en recréer un nouveau. 

Bonjour à tous!

Vous avez dû remarqué que  le forum ne fonctionne plus… C’est normal ! En essayant d’installer une chatbox, j’ai fait une fausse manip et BANG… Forum HS…

Donc voilà, désolé, je vais essayer de réparer ça le plus vite possible ! :)