dimanche 18 avril 2010

Framework, le retour!

Je suis en train de pousser la modularité jusque dans la GUI, avec des résultats plutôt encourageants. L'idée est de construire la GUI autour de blocs indépendants, chacun correspondant à un wxPanel, possédant un pointeur vers un client afin de pouvoir envoyer des messages, et dérivant d'un dispatcher pour recevoir les messages envoyés par le serveur (le tout basé sur les évènements wxWidgets, ce qui me permet de rester mono-threadé).

J'ai ainsi complété un module permettant de chatter. En théorie, j'aurais pu séparer la fenêtre d'envoi de la fenêtre d'historique, mais cela semble moyennement utile pour le moment.

De manière plus générale, je vois bien l'ensemble des serveurs se référencer auprès d'un contrôleur, auquel les clients peuvent se connecter pour obtenir la liste des serveurs disponibles et leurs capacités. Par exemple, un serveur indiquera au contrôleur qu'il supporte le chat et le commerce, un autre supporte un certain nombre de zones, etc. Chaque élément de la GUI peut alors lister les serveurs disponibles qui la supportent (par exemple, le module de chat listera les serveurs qui ont la capacité chat), et décider auquel se connecter.

Bien sûr, tout cela peut être géré en douce par le client, et rester invisible pour le joueur, qui pourrait n'avoir qu'à choisir son univers de jeu (le contrôleur) et laisser la GUI se connecter à qui il faut.

Aucun commentaire: