Livres

Avatar de l’utilisateur
Nati
Messages : 12612
Inscription : 05 août 2004, 22:25
Localisation : Gelbique
Contact :

Livres

Message par Nati »

Introduction

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.
Pour nous, le livre serveur reste le plus intéressant pour y mettre des textes de taille plutôt longue (ce qui est le cas de la plupart des textes), pour favoriser la découverte (et éviter la lecture en fouillant le client), et pour être cohérent avec le concept de livre, le plus répandu (par rapport au parchemin).

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
Voici quelques idées, il y en a sûrement plein d'autres et certaines cités ici sur lesquelles vous pouvez ne pas être d'accord. A vous de faire le choix, l'objectif reste, simplement, de rendre ces livres people et de pouvoir se permettre d'y mettre des pans entiers de background.

Bon courage! Et pour la moindre question ou problème, le forum est là pour ça.

Ackak
Messages : 7348
Inscription : 18 déc. 2005, 19:31

Re: Livres

Message par Ackak »

J'ai fait une petite modification pour agrandir l'affichage des livres. C'est un changement simple par rapport au reste surtout que le code n'est pas très clair. Il faut activer la balise FR_LIVRES pour voir les modifications.
Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson

Ackak
Messages : 7348
Inscription : 18 déc. 2005, 19:31

Re: Livres

Message par Ackak »

Voici un petit script sous linux, qui est très loin d'être parfait mais qui pourrait nous aider à créer des nouvelles polices pour le jeu.

Pour information, les polices sont des images de tous les caractères dans un fichier fontx.bmp se trouvant dans le répertoire textures.

Pour le script, il faut un fichier ttf dans le répertoire (changer le nom dans le script) et un fichier font.jpg d'une couleur noire et de taille 256x256. Il faut aussi avoir ImageMagick d'installer.

Code : Tout sélectionner

#!/bin/sh

IFS=' ';
caractere=(\  ! \" \# \$ \% \&  \\ \( \) \* \+ \, \- . / 0 1 2 3 4 5 6 7 8 0 : \; \< = \> ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \[ '\\' \] ^ _ \` a b c d e f g h i j k l m n o p q r s t u v w x y z { \| } \~ u é â à ç ê ë è ï ô ù ä ö ü Ä Ö Ü ß æ ø å Æ Ø Å ñ Ñ á Á É í Í ó Ó ú Ú û î)

police=police.ttf
taille=15

x=0;
y=20;
for index in "${!caractere[@]}"; do 
    convert font.jpg -append -font $police -pointsize $taille -fill white -draw "text $x,$y '${caractere[$index]}'" font.jpg
    if [ $x -gt 230 ]; then
        x=0
        let "y+=20"
    else
        let "x+=18"
    fi 
done
J'ai fait quelques test et pour l'instant le rendu n'est pas bon, mais je n'ai pas modifié le code non plus (fichier font.c)
Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson

Avatar de l’utilisateur
Lillaka
Messages : 244
Inscription : 16 févr. 2008, 00:36

Re: Livres

Message par Lillaka »

J'ai fait quelques test et pour l'instant le rendu n'est pas bon

Mais tu sers à rien ou quoi ? Il faut faire int (1<X emplacement ou est Véreux à donner à Lillaka x,y pos + ram32 bits + proc int 21 en assembleur)

Mais vraiment alors...

Ackak
Messages : 7348
Inscription : 18 déc. 2005, 19:31

Re: Livres

Message par Ackak »

Sur la dernière version du SVN, il y a pas mal de modifications pour la gestion des livres :

- La taille de la fenêtre du livre dépend de la taille de la fenêtre du jeu

- Balises :
- <livre> : balise principale.
- <titre> : nom du livre.
- <auteur> : auteur du livre.
- <chapitre> permet de créer un nouveau chapitre dont le numéro est auto-incrémenté. Cela crée une nouvelle page qui sera obligatoirement à sur celle de droite le nom du chapitre.
- <texte> : balise pour le texte standard.
- <paragraphe> : balise pour créer un texte suivit d'un saut de ligne.
- <dialogue> : ajoute les guillemets autour du texte et les tirets au début de ligne.
- <saut_de_page /> : permet de faire un saut de page.
- <saut_de_ligne /> : permet d'effectuer un saut de ligne.
- Arguments pour les balises :
- align="gauche/centre/droite" : permet de choisir l'alignement du bloc de texte (n'est pas actif pour les dialogues)
- rouge="1.0"/vert="1.0"/bleu="1.0" : permet de changer la couleur du texte rouge/vert/bleu. Si l'argument n'est pas renseigné, cela prend la valeur par défaut.
Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson

Avatar de l’utilisateur
Rol
Messages : 1724
Inscription : 05 oct. 2006, 16:06

Re: Livres

Message par Rol »

Peut être aussi simplement foncer un peu la police pour rendre ça plus lisible avant de faire des changements ?

Ca peut déjà bien aider au confort de lecture

Ackak
Messages : 7348
Inscription : 18 déc. 2005, 19:31

Re: Livres

Message par Ackak »

Les livres qui sont lus dans le jeu ont eu beaucoup d'amélioration lors des dernières mises à jour. Il reste encore quelques détails, mais on peut dire que le projet de refonte est terminée.
Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson

Verrouillé