
Au commencement était le verbe... Bon sautons quelques étapes sinon on en finira jamais. A l'origine donc était la fin d'un monde, Tapkaz, sur lequel j'avais quelques temps trainé mes guêtres en peau de pwak. Ayant l'envie de combler le vide, je décidais de me lancer moi aussi dans l'aventure de la création d'un jeu en ligne du même type (incarnation d'un personnage dans un monde original et interaction avec d'autres dans un univers persistant). Bien que cela ne soit pas mon métier, j'ai quelques notions de développement php/sql et autres pour réaliser mon projet.
A ceux qui pensent que l'idée du jeu représente la moitié du travail je répondrais que celle-ci fut trouvée en quelques jours et que je suis au travail dessus depuis bientôt trois ans. Certes, je ne suis pas à plein temps dessus et j'ai parfois pris de mauvaises directions et dû reprendre et corriger de gros éccueils de conception mais tout de même. L'idée centrale, à savoir l'incarnation d'un esprit possédant d'autres créatures est venue d'abord d'un souci de gestion des personnages et de la mort de ceux ci afin de garder une continuité pour éviter le découragement des joueurs. Cela permet d'avoir une base immortelle qui progresse lentement et une partie plus éphémère dont la progression est plus rapide mais plus fragile.
Ensuite vint le choix du thême. Celui-ci fut vite déterminé pour les raisons suivantes : plus grande liberté et facilité de développement par rapport à un univers contemporain ou futuriste et thême facilitant l'adhésion des joueurs actuels. Pour le reste, j'aime bien les dragons donc... J'ai aussi choisi de ne pas me rattacher à un univers connu afin de me garder une plus grande marge de manoeuvre. Malgré cela, j'ai eu diverses sources d'inspiration venant de mes nombreuses lectures : les chroniques de Thomas Covenant de Stephen Donaldson pour une bonne part, la Compagnie Noire de Glen Cook également et d'autres plus anecdotiques.
Une fois avoir mis sur papier un grand nombre d'idées en vrac, on se rend vite compte que l'on démarre un projet très ambitieux. Lorsque l'on est seul à développer c'est mal. Le résultat ? Trois ans pour en arriver à un résultat encore un peu bancal. Les raisons ? Manque de temps, de certaines compétences, de rigueur, de temps, découragement par moment devant l'ampleur de la tâche... manque de temps aussi quand même.
Une fois mes outils en main (mon serveur bien configuré - ça c'est plus mon boulot en fait; mon vim frétillant et mon postgresql ronronnant) et une première ébauche jouable minimale : incarnation et déplacement, j'ai su que j'allais avoir rapidement besoin d'aide. En effet, si j'aime bien coder des choses nouvelles vite, j'ai du mal à revenir dessus pour tester et corriger (on ne peut pas être totalement parfait. J'ai donc proposé à d'anciens kaziens de participer aux tests. Il est très important d'avoir des retours sur son travail tout au long du développement, notamment pour avoir sans cesse des aiguillons pour continuer à avancer. Je ne pourrai pas les remercier assez pour tout leur travail sans lequel j'aurais depuis longtemps laisser tomber pour cultiver des radis.
Saluons donc ici les courageux qui me suivent depuis le début pour presque : el l'acerbe chasseur de bug, garulfo le cul terreux au petit doigt redoutable, Aquilon le poète topographe, azrat et fon acfent, Kharsaal, napator, Maliak, rex toujours fidèles au poste... Rendons aussi hommage à ceux qui ne sont plus là mais dont les contributions furent plus que précieuses : Luong, hayabusa, virgile, Sir_Oko, Uriel, Hybban, Leakcim, Elimerl et tant d'autres. N'oublions pas non plus ceux qui nous rejoint plus récemment : Chatounette, totem, Ptera, IcePhoenix... Saluons enfin par avance tout ceux qui nous rejoindrons peut-être bientôt.
Les choix faits pour réaliser tout ça découle de mon expérience personnelle. En disant cela, j'enfonce une porte mais cela me permet d'introduire cette section. Etant relativement à l'aise en perl et php, je me tournait vers ses deux langages, le premier pour les scripts tournant en tâche de fond pour gérer le monde, le second pour le code du site web proprement dit. J'avais élement envie de tester la technologie ajax donc j'optais pour la librairie xajax de php qui me simplifie grandement la vie. Enfin, ayant pu constater la puissance et la facilité d'utilisation de overlib.js pour avoir des jolies menus contextuels en javascript, je pris cette option là également.
Du côté serveur, j'ai commencé par être hébergé gracieusement par un ami chez lequel je pris ensuite un hébergement plus formel sous la forme d'un serveur virtuel (Lost-Oasis, l'hébergeur du bien). Le choix fut un netBSD parce que j'aime bien (tm). C'est léger, simple à administrer et je préfère sans commune mesurele firewall pf à l'équivalent iptable de Linux. Pour la base de données j'ai opté pour Postgresql plutôt que Mysql par goût, même si je sous-utilise grandement ses capacitées au niveau des triggers et fonctions internes. Ce sera pour une prochaine fois. Pour finir, tout fut codé à la main avec un éditeur de texte : vim. Accessoirement les divers graphismes ont été retouché sous Gimp.
J'en profite pour signaler que les images du jeu ont été récupérées depuis divers autres jeux libres : vulture (port de nethack un peu à l'abandon), freeciv, freecol, etc. Si bien que si vous le souhaitez, vous pourrez obtenir les sources de Plutar qui sera sous licence GPL. Sachez juste que cela pourra vous faire perdre un peu de l'intérêt du jeu si vous vous plongez dans les secrets du code (en plus vous vous appercevrez vite que c'est très mal développé).
Après de longues reflexions avec moi-même, je me suis rendu compte d'un certain nombre de mauvais choix qui ont retardé grandement le travail. Certains furent corrigés mais le principal reste, celui de ne pas avoir codé Plutar en objet. Je pense que cela aurait permis d'avoir un développement beaucoup plus propre et simple à relire. Comme dit plus haut, ce sera pour une prochaine fois.





