dimanche 25 novembre 2007

Inventaire

Pour la route, je poste une petite image de l'onglet d'inventaire. Bien sûr, celui-ci n'a pas beaucoup d'intérêt pour l'instant, puisqu'il n'est pas encore possible de ramasser / échanger. Mais c'est un premier pas!

samedi 24 novembre 2007

Blender et le terrain

Voilà une première tentative pour créer un terrain sous Blender. Partant d'une grille, je l'ai bidouillée pour obtenir un relief potable, puis subdivisée. Ensuite, quelques effets de bruit pour avoir des textures de sol et d'eau, puis un bon coup de "bake" (une nouvelle fonctionnalité de Blender qui permet de faire un rendu de la texture), un export vers le format Wavefront, et voilà!



Dans le jeu, voilà ce que cela donne. Aucun ralentissement, CPU à presque zéro, il y a de la marge pour ajouter du détail.



Peut-être quelques arbres pour rendre l'endroit un peu plus accueillant?

lundi 19 novembre 2007

Bérénice tourne sur Lea

Bérénice est maintenant prête à être testée avant d'être proposée en téléchargement. Je la fais tourner sur notre serveur de production, en parallèle avec Ajax. Faire tourner deux (ou plus) serveurs AdH sur la même machine est étonnamment facile (j'en suis le premier surpris): création d'une nouvelle base de données (disons, adh_berenice, avec un encodage UTF-8), chargement du fichier de définitions SQL, création d'un fichier de configuration pour le serveur qui pointe vers la nouvelle base de données et vers un port différent, démarrage, et basta!

dimanche 18 novembre 2007

Bérénice approche

Le transfert de tous les messages sous le nouveau système généré par mlxsd, le multi avatars par compte, les messages un peu plus respectueux de la bande passante, voilà les bugs qui ont été corrigés récemment. Le système de suivi de bugs nous indique donc qu'il ne rèste que 2 problèmes à corriger dans Bérénice, et j'ai de fait bien envie de les pousser dans la release Castor, parce qu'ils n'ont finalement pas grand chose à faire ici.

Techniquement, Bérénice me semble donc tout à fait prête. Dommage que des problèmes techniques nous aient empêché de mettre tout ce que l'on voulait dedans (par exemple, le système de téléchargement des ressources), mais d'un autre côté, cela a permis l'arrivée d'autres fonctionnalités tout aussi importantes.

Avant de pousser Bérénice sur Sourceforge, l'on va quand même améliorer les graphismes, pour donner un aspect un peu plus peaufiné à la chose. Notamment, je voudrais que l'on renvoie dans les limbes ces horribles cubes noirs qui représentaient les joueurs!

dimanche 11 novembre 2007

Mlxsd : Comme sur des roulettes!

Tests concluants! La génération est incroyablement plus facile qu'avant, bien moins sujette à erreurs, et surtout les éventuelles futures modifications du schéma se traduiront immédiatement par une erreur de compilation en cas d'oubli. Voilà un outil qu'il est utile!

Allez, petite démonstration:


let item1 =
{
Adh.Ident_item_t.id = 33;
Adh.Ident_item_t.name = "Raoul";
Adh.Ident_item_t.self = true
}
and item2 =
{
Adh.Ident_item_t.id = 55;
Adh.Ident_item_t.name = "Christine";
Adh.Ident_item_t.self = false
}
in
{ Adh.adh = Adh.Adh_t.Ident {Adh.Ident_t.ident_item = [item1; item2]} }

se traduira directement en

<adh>
<ident>
<ident_item>
<id>33</id>
<name>Raoul</name>
<self>true</self>
</ident_item>
<ident_item>
<id>55</id>
<name>Christine</name>
<self>false</self>
</ident_item>
</ident>
</adh>


Il ne reste maintenant qu'à porter le serveur Adh sous ce système, et basta!

samedi 10 novembre 2007

mlxsd bientôt dans les bacs!

Revision 333 : mlxsd code complete

Enfin, mon générateur de binds Xml en ocaml est fini! Au final, ce fut plutôt plus simple que ce que j'avais imaginé, développer par petits incréments et beaucoup de tests unitaires a été la technique gagnante. Maintenant, il reste à tester l'outil sur les messages XML d'AdH, et à faire une bonne batterie de tests pour s'assurer que les messages générés par un côté seront bien lisibles par l'autre.

Le développement de fonctionnalités va pouvoir reprendre!

jeudi 8 novembre 2007

La ligne de code quotidienne

Pas de bol, mon activité rémunératrice (mon taf, quoi) se fait plus prenante, ce qui diminue d'autant le temps que je passe sur AdH. Ce qui est amusant, par contre, c'est que cette petite portion de journée est particulièrement efficace. Sur le chemin du retour, ou à la pause de midi, je vais réfléchir à mon design, et à la prochaine étape du développement, ce qui fait que lorsque je démarre mon emacs, je sais assez précisément ce que je veux faire. Je rajoute les quelques lignes longuement ciselées dans mon esprit, je teste, ça marche (presque!), je committe (du verbe committer, bien sûr!), et c'est fini pour la journée!

vendredi 2 novembre 2007

Le bon répertoire

[ 1807495 ] Client should use a clean user data directory: Voilà un "bug utile" de corrigé! Combien de fois ais-je pesté contre les vieux programmes d'avant Windows XP qui mettent leurs cochonneries un peu partout? (Dans le monde Unix, on a été propre bien avant ça). Encore aujourd'hui, certains n'hésitent pas à écrire leurs données où bon leur semble. Et AdH faisait exactement cela, avec quantité de répertoires et fichiers de données et de paramètres utilisateurs, directement dans le répertoire de l'exécutable. Mais ces jours sombres sont finis, et nous utilisons maintenant le bon répertoire tel qu'il est défini par le standard du système d'exploitation utilisé.

Bon, d'accord, c'est très secondaire, comme bug. Ce n'est pas demain la veille que l'on aura un installeur bien propre, et que chaque membre d'une fratrie puisse utiliser le PC familial indépendamment des autres pour jouer à AdH ne semble pas être une priorité.

Et pourtant, ça valait le coup de le corriger, ce bug. Parce que c'est typiquement le genre de problème très simple à résoudre maintenant (5 malheureuses lignes à changer), mais qui s'envenime avec le temps. Quand des centaines de fichiers font référence aux données utilisateurs, quand la mise à jour automatique fonctionne à plein, quand le programme est déjà utilisé aux quatre coins du monde, c'est là que tout d'un coup changer un répertoire va provoquer des catastrophes.

S'il y avait un oscar du bug, je nominerais bien celui là.