Si l'objectif premier de ce forum est de vous permettre de soumettre vos réalisations de programmation que vous avez décidé de mener de votre propre chef, il est aussi là pour permettre à l'équipe de soumettre des sujets sur lesquels elle aimerait travailler mais pour lesquels elle n'a pas mis la priorité ou n'a pas de temps.
Comme premier sujet de ce type, nous vous proposons de travailler sur un sujet principalement lié au code source du client : les livres consultables dans les bibliothèques du jeu et pouvant contenir des morceaux du background du jeu, des backgrounds de joueurs,...
Il n'est pas choquant d'affirmer aujourd'hui que ces livres sont peu lus, principalement par leur manque d'ergonomie et leur côté rébarbatif. Aussi, l'idée serait de changer la donne et de faire de ces livres des outils agréables et pratiques de lecture, afin que nous puissions enfin tabler beaucoup plus dessus et remplir les bibliothèques du jeu.
Au niveau du code source
Je laisse ceux qui sont séduits par l'idée de travailler sur cette partie du client découvrir le code source eux-mêmes (rappel : le mieux est de le prendre sur le SVN). Je donne cependant quelques indications sur leur fonctionnement.
Il existe deux types de livres à lire :
- Les livres serveur : il s'agit des livres qui, une fois affichés, le sont sous la forme d'un véritable livre à deux côtés. Tous les livres de la bibliothèque du Palais de Fingel ont cet aspect. Outre leur caractéristique visuelle, il y a le fait que le contenu de ces livres est stocké sur le serveur, décodé par le serveur et envoyé en entier au client, qui assure alors l'affichage de ce contenu dans la petite fenêtre en forme de livre.
- Les livres clients : il s'agit de livres qui, une fois affichés, le sont sous la forme d'un simple parchemin. Le parchemin du feu du Trépont, avec le poème, est de ce type. Les textes d'intro sur les races à la création du personnage aussi. Le contenu de ces livres est stocké dans le client, sous forme de fichiers xml (languages/fr/books) interprétés et intégrés par le client.
Si vous désirez modifier les choses, les principaux fichiers source concernés sont books.c et books.h (qui a dit logique?). Vous pouvez finalement autant modifier le code concernant les livres client que serveur, simplement, si vous désirez ajouter de nouvelles balises (autres que les actuelles : page, texte, title, author,...), pour le livre serveur, il faudra que nous opérions des modifications sur le serveur.
Ce n'est pas très grave, seulement, si vous voulez ajouter des balises sur le serveur et les tester avant de nous demander de modifier le serveur, vous devrez le faire sur les livres clients (les balises sont identiques entre client et serveur ; les fichiers livres xml du client sont les mêmes que ceux du serveur en terme de structure).
Si vous avez d'autres questions sur le fonctionnement des livres et sur la partie serveur qui est envoyée au client, n'hésitez pas à le demander à la suite de ce post (évitons de surcharger le post d'introduction :p).
Suggestions de modifications
Il est évident que si nous vous soumettons la problématique des livres qui sont peu pratiques, nous vous laissons toute liberté de choisir ce que vous pensez nécessaire de modifier dans le code source pour qu'ils soient plus ergonomiques.
Cependant, nous vous glissons déjà quelques idées simples qui pourraient améliorer ces livres, à vous de voir si elles vous intéressent ou pas :
- Taille de la fenêtre du livre. Bien trop petite pour de longues lectures. Une taille plus proche de la fenêtre d'options est sans doute plus approprié, la fenêtre pouvant être déplacée sans problème. Agrandir implique cependant d'avoir une image background de livre plus grande, mais cela peut être fait par des graphistes. La taille de la fenêtre et le premier point.
- Chapitrage. Aucune possibilité de bien chapitrer un livre, avec des balises ou autre. Obligation de faire des pages blanches avec juste un titre pour le simuler, ce qui est lourd.
- Police. La police d'écriture n'est pas la plus lisible, et en outre, les lettres qui la composent sont tellement "espacées", qu'une simple phrase prend énormément de place. Voir pour prendre une autre police existante dans le client. Ou pour intégrer une nouvelle police, mais là c'est aussi un boulot plus proche de celui d'un graphiste (obligation de modifier les fichiers de font du client, difficiles à modifier).
- Possibilité via balise de pouvoir mettre des balises de mettre en gras, italique, en couleur, changer de police. Plus de balises de mise en forme pour rendre la lecture plus agréable.
- Mieux gérer les caractères spéciaux. Des caractères comme les double points (":") ne passent pas si mis dans le fichier xml, alors que fortement utilisés.
- Bug des pages. Cela a été signalé dans les bugs Mantis (vieux bug), mais de temps en temps, lorsque l'on joue avec les changements de pages, la numérotation s'affole et la même page s'affiche plusieurs fois à l'identique. Première difficulté de ce problème : arriver à simuler le bug. Deuxième : le régler :p
Bon courage! Et pour la moindre question ou problème, le forum est là pour ça.