====== Développement du client de jeu IRIS ====== ===== Principes de développement ===== Le client est envisagé comme comportant deux zones distinctes, le InGame and le OutGame, chacun placés dans la hiérarchie d’une node de ce nom dans la scène Main. Le InGame concerne tout ce qui nécessite la connexion à un serveur de jeu, et le OutGame, tout ce qui ne le nécessite pas. Bien que certains sytèmes soient partagés, comme les préférences (via le Global Settings), le jeu est soit dans un état, soit dans l’autre. En InGame, il est prévu pour faire tourner [[https://en.wikipedia.org/wiki/Entity_component_system|une architecture de type ECS]], basée sur [[https://github.com/csprance/gecs|le plugin GECS]]. {{tag>godot client khanat mmorpg}} ===== La hiérarchie des dossiers ===== treeView-beta "res:/ /" "autoloads" "data" "data_definition" "scenes" "widgets" "scripts" "scripts_template" "Node" ==== autoloads ==== Dans ce répertoire sont enregistrés scènes et scripts des classes enregistrée comme //Globals// dans le projet. ==== data ==== Répertoire où sont stockés les assets, les Resources. Ce répertoire sera alimenté à l’avenir par un autre système, par le biais du Khreator, quand celui-ci sera effectif. Il s’agit de toutes les data nécessaires pour le jeu. ==== data_definition ==== Scripts servant à la création des classes de données du répertoire //data// et de tous les autres objets dérivés de la classe //Resource//. ==== scenes ==== Scènes utilisées pour le jeu, avec leur script lié s’il est unique. Le sous-répertoire accueille les widgets qui sont réutilisés de nombreuses fois. ==== scripts ==== Scripts qui ne sont liés ni à une scène //.tscn// ni héritant de la classe Resource. ==== scripts_template ==== [[https://docs.godotengine.org/en/stable/tutorials/scripting/creating_script_templates.html|Gabarits]] pour les scripts proposés automatiquement par Godot, afin d’aider à conserver toujours la même organisation. Pour l’instant, seules la classe Node et celles qui en héritent proposent un gabarit //Custom organized Node script//.