| |
Contents |
Qu'est-ce que Crystal Entity Layer ?
Crystal Entity Layer est un plugin développé afin d'être utilisé en conjonction avec Crystal Space. Il est conçu pour faciliter la création de jeux basés sur Crystal Space, en fournissant des concepts tels que des entités, des propriétés et des comportements.
Crystal Space est SDK léger et modulaire, incluant de nombreux composants pour la création d'applications variées et de jeux. Pour plus d'information sur Crystal Space, merci de consulter la page dédiée.
On suppose ici que vous connaissez les idées de bases derrière Crystal Space. Plus spécifiquement vous devez avoir des notions à propos du SCF (Shared Class Facility) et du VFS (Virtual File System), très utilisés également par CEL.
Crystal Entity Layer est toujours en développement. Les éléments de développement sont à l'heure actuelle hébergés sur Sourceforge. Quiconque souhaitant y contribuer devrait visiter la page du projet CEL et SourceForge.
Crystal Entity Layer est libre et devrait le rester. Il est placé sous la licence GNU Copyleft pour bibliothèques (LGPL). Une copie de la LGPL est incluse dans le manuel pour votre usage personnel. En bref, la LGPL vous autorise à utiliser Crystal Space comme bibliothèque dans vos produits, même commerciaux, mais les modifications de la bibliothèque ou les travaux dérivés incorporant des parties de la bibliothèque doivent rester librement disponibles pour quiconque, sous les termes de la licence LGPL.
Concepts
Tout objet situé dans le monde de jeu est représenté par une Entité. Ceci inclut le monde lui-même et tous les objets qui s'y trouvent, comme les Joueurs (PJ), les Personnages Non Joueurs (PNJ), les Objets et les Caméras.
Les Entités CEL de base sont gérées par la Couche Physique. Ces Entités de base ne peuvent pas faire grand chose en tant que telles. Pour ajouter une première fonctionnalité, ou habituellement plus, les Classes de Propriété de la Couche Physique sont ajoutés à l'Entité.
Les Classes de Propriétés sont utilisées pour fournir des attributs, des fonctionnalités et des contraintes spécifiques aux entités, et fournissent par ailleurs l'interface de la bibliothèque Crystal Space. Ce peut être un simple attribut, tel qu'autoriser une Entité à stocker son poids, voire une fonctionnalité plus complexe comme la réception d'une entrée depuis le clavier ou le dessin d'un objet 3D comme un mesh. Le jeu de propriétés fournit par l'ensemble des Classes de Propriété définit ce qu'est réellement l'Entité, et quelle fonctionnalité fournit-elle.
Les Classes de Propriété sont ajoutées aux Entités lors du lancement. Ceci signifie pour le développeur que les Classes de Propriétés peuvent être ajoutées ou retirées des Entités à la volée.
Les Classes de Propriétés sont générées par les Fabriques de Classes de Propriétés. Elles sont habituellement implémentées comme un plugin Crystal Space. Ce qui veut dire que vous chargez le plugin, puis le considérez comme requis pour créer des Classes de Propriétés.
La Couche Physique est aussi responsable de fournir la Couche Persistance. C'est un système qui est responsable de la sauvegarde et du chargement de l'état de chaque Entité. Il peut s'agir d'un fichier sur un disque, ou tout autre forme de base de données. Les jeux solo l'utilisent pour proposer des fonctionnalités de sauvegarde, par exemple.
La Couche Comportement gère des choses comme la logique de jeu. C'est cette couche qui dicte comment une Entité va se comporter face aux contraintes imposées par la Couche Physique.
La Couche Physique est capable de générer des évènements, qui passent par la Couche Comportement de façon à être activés par dessus. De tels évènements interviennent par exemple quand une Entité est cliquée par le pointeur de la souris, quand une touche particulière est enfoncée ou quand un objet est ajouté à l'inventaire. De tels évènements sont habituellement générés depuis les Classes de Propriété lorsqu'un ensemble de conditions prédéterminées est achevé.
La majeure partie de la Couche Comportement peut être implémentée en un langage de script tel Python, si le projet le prévoit. Ceci autorise que le comportement des Entités soit facilement scripté sans avoir à recompiler le projet en entier, et que de nouveaux comportements soient ajoutés de la même façon.
En résumé, Crystal Entity Layer est lui-même constitué de deux couches, la Couche Physique et la Couche Comportement.
La Couche Physique est responsable de la gestion de toute les Entités de base, fournissant via le système de Classes de Propriétés de quoi manipuler les attributs, les fonctionnalités et contraintes des Entités, de quoi permettre à ce système de communiquer avec la Couche Comportement, et fournissant enfin à une Couche Persistance de quoi permettre la sauvegarde et le chargement d'Entités vers plusieurs formes de stockage.
La Couche Comportement gère la façon dont les Entités se comportent en fonction des restrictions imposées par la Couche Physique. Elle peut être implémentée en C++, ou sous d'autres formes de langage scripté.
Comment lire ce manuel
Ce manuel a été écrit et est actuellement maintenu par Daniel Thoroughgood. Un retour constructif, des suggestions ou des contributions sont toujours les bienvenues.
Si vous trouvez quelque chose dans ce manuel que vous pensez incorrect, merci de le notifier via la liste de diffusion, de façon à ce qu'une relecture et une correction soient opérées.
Ce manuel est également destiné à servir de référence, et en tant que tel, l'ordre le lecture n'est pas très important pour les développeurs expérimentés. Les nouveaux utilisateurs de CEL devraient cependant lire le manuel du début à la fin.
Statuts actuels
Crystal Entity Layer est toujours en phase Beta, et devrait le rester dans un futur proche. Crystal Space, sur lequel ce travail se base, est encore en plein développement (très actif) et de temps en temps des changements peuvent toucher les sources Crystal Space de telle sorte que le fonctionnement de Crystal Entity Layer en soit entravé, en partie voire totalement.
Du fait que Crystal Entity Layer soit toujours en développement, certaines fonctionnalités pourraient ne pas fonctionner comme prévu, voire pas du tout. Certaines peuvent en effet n'être que partiellement implémentées et peuvent provoquer à la fois des bugs connus et/ou inconnus.
Ne vous laissez pas pour autant décourager par l'utilisation de Crystal Entity Layer. La plupart des fonctions centrales sont implémentées et fonctionnent correctement. Tous les bugs rapportés sont étudiés aussi vite que possible et les contributions sont toujours les bienvenues.
Utiliser Crystal Entity Layer pour votre projet
Si vous souhaitez utilisez Crystal Entity Layer pour votre projet, vous devrez obtenir et compiler à la fois les sources de Crystal Space et de Crystal Entity Layer.
Lisez la documentation Crystal Space, et jetez un oeil aux extraits et exemples afin de vous familiarisez avec son fonctionnement.
Vous devriez aussi rejoindre les listes de diffusion Crystal Space et Crystal Entity Layer de façon à voir comment les choses se développent.
Vous devrez également approuver la LGPL (GNU Library General Public Licence).
Si vous utilisez Crystal Entity Layer dans un projet, merci de nous le faire savoir, car nous somme très intéressés de connaître les différents projets utilisant à la fois Crystal Space et Crystal Entity Layer.
Guide pour la documentation
- TODO: Complete this section when the layout of the manual is solid and cross references are all in place.
Liste des fonctionnalités
- Section vide
Où obtenir Crystal Entity Layer ?
Version release et version de développement
La page officielle Crystal Entity Layer contient les informations nécessaires à l'obtention des releases officielles de CEL et de la version actuelle de développement.
Merci de garder à l'esprit que les deux versions sont toujours en phase Beta. La principale différence entre les deux est que la release est testée et relativement stable.
Avec la version de développement, les résultats peuvent varier. Parfois la compilation peut ne pas être simple sur toutes les plateformes, voire impossible. Certaines fonctionnalités partiellement implémentées ne feront pas l'objet d'une abondante documentation.
Cependant, la version de développement aura toujours les fonctionnalités les plus récentes, et en contiendra probablement certaines indisponibles dans la version release.
Vous aurez également besoin de Crystal Space pour utiliser Crystal Entity Layer. Comme ce dernier, Crystal Space est disponible en versions release et développement. Pour plus d'informations à ce sujet, merci de vous reporter à la documentation Crystal space.
Crystal Space et Crystal Entity Layer sont disponible sur la page de téléchargement
En général une version release de Crystal Entity Layer devrait être compilée par dessus la version release correspondante de Crystal Space. Idem pour la version de développement, qui devraient être compilées par dessus la version de développement Crystal Space de même date.
Mélanger les versions ne garantit pas un bon fonctionnement, et en réalité risque fort de ne pas fonctionner.
SVN
Comme Crystal Entity Layer est activement développé, des changements sont très fréquemment faits sur les sources, de façon quotidienne.
Les toutes dernières sources de Crystal Entity Layer peuvent être téléchargées depuis les serveursSVN SourceForge's.
Pour consulter le tronc SVN dans un sous-répertoire `cel', utiliser :
- svn co https://svn.sourceforge.net/svnroot/cel/cel/trunk cel
Listes de diffusions
Il y a actuellement deux listes de diffusion Crystal Entity Layer qui peuvent intéresser les utilisateurs et les développeurs.
La principale liste concerne la discussion générale, les questions et les rapports de bugs. Vous pouvez y souscrire en visitant la page suivante :
Vous pouvez également consulter une archive des posts antérieurs de cette liste ici :
La liste de mise à jour SVN sert à notifier les changements des dépôts sources SVN. Tous les utilisateurs ayant souscrit à cette liste recevront un email à chaque fois qu'un développeur mettra les sources à jour. Vous pouvez souscrire à cette liste ici :
Vous pouvez également consulter une archive des posts antérieurs de cette liste ici :
GNU Library General Public License
Version 2, Juin 1991
Licence originale disponible sur cette page :
Traduction française non-officielle disponible sur cette page:
Langue:
English •
Brazilian •
Chinese •
Deutsch •
Español •
Esperanto •
Français •
Magyar
Translate this page
