Le moteur est fait pour être particulièrement général et pouvoir s’adapter à toutes les situations. Il peut donc arriver que certaines fonctionnalités ne vous conviennent pas ou que vous souhaitiez développer de nouveaux outils.
Dans ce chapitre, nous allons détailler la manière de créer de nouvelles actions (c’est le plus courant, les actions étant fortement liées aux règles de votre jeu), de nouveaux types d’entités, de nouveaux types d’objets...
Nous vous recommandons, dans l’esprit de partage qui anime les développeurs du moteur, de passer sur le site officiel du projet pour faire profiter à tous des améliorations que vous pourriez apporter.
La licence LGPL vous autorise à modifier directement les sources du moteur. Cependant, pour faciliter les éventuelles mises à jour, ou toute autre opération qui nécessiterait d’effacer le dossier contenant le moteur, il vous est recommandé de placer vos fichiers dans un dossier séparé, imitant la hiérarchie du moteur.
Supposons l’architecture suivante:
Racine de votre site | -- GamePHP (source du moteur) -- site (votre site) -- ext (vos nouveaux fichiers)
Il faut préciser au moteur que vous avec développé des fichiers en plus et lui indiquer le chemin vers le dossier les contenant. Ceci se fait en définissant la constante _GAME_DIR (ne pas oublier le / final). Exemple.
define("_GAME_DIR", "/chemin/vers/mes/fichiers/");
Par la suite, lorsque vous tenterez d’inclure un fichier à l’aide de la fonction Engine::file, le moteur privilégiera vos fichiers à ceux qui lui appartiennent. Des détails et des exemples vous seront donnés dans la suite de ce chapitre.
Attention: un certain nombre de fichiers ne peuvent être réécrits. Ces fichiers constituent la base du moteur.
Ils sont définis dans le fichier Engine.php dans la variable statique $not_rewrite.
En voici la liste (susceptible d’être modifiée): Action, Engine, Entity, Globals, Manager, Object, Prototype
Si vous placiez tout de même un fichier contenant l’un de ces noms dans votre nouveau dossier, le moteur l’ignorerait .