jeudi 11 février 2010

Un serveur de données

Un des éléments du framework qui me semble particulièrement important est le serveur de données. L'idée est d'avoir un système centralisé qui maintienne l'état des divers éléments du monde, et qui soit accessible via une API simple à intégrer dans les différents services du framework. Les données étant les plus abstraites possibles, c'est le moment parfait pour ressortir du placard mes vieux hacks autour des listes de propriétés. L'on pourra également jeter un coup d'oeil sur ce fil chez les faiseurs de monde de JeuxOnline.

Avec un serveur de listes de propriétés, il devient facile de sauver et de charger tout un tas de données, d'avoir une API toute simple, et même pourquoi pas une belle interface Web pour aller changer les listes en temps réel.

Ensuite, chaque service peut réclamer les listes dont il a besoin. Gestion des combats? Chercher la liste des personnages, regarder quelle est leur arme courante, aller chercher les listes de leurs armes, faire ses petits calculs, et modifier les points de vie, tout ça dans les listes!

L'écriture pose certains problèmes particulièrement intéressants d'accès concurrent aux données. J'imagine que l'on pourrait demander au serveur de liste un lock en écriture, par exemple lors d'une gestion de combat... Ou simplement s'assurer que chaque liste ne sera jamais utilisée que par un système. Mhhh...

Aucun commentaire: