Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:mmorpg:client:iris:developpement [09 June 2026 à 14:51:10] YannKfr:mmorpg:client:iris:developpement [04 August 2026 à 12:40:10] (Version actuelle) – [data_definition] YannK
Ligne 3: Ligne 3:
 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. 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]].+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]]. 
 + 
 +===== La hiérarchie des dossiers ===== 
 +<mermaid> 
 +treeView-beta 
 +        "res:/ /" 
 +            "autoloads" 
 +            "data" 
 +            "data_definition" 
 +            "i18n" 
 +            "scenes" 
 +                "widgets" 
 +            "scripts" 
 +            "scripts_template" 
 +                "Node" 
 +</mermaid> 
 + 
 +==== 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//
 + 
 +==== i18n ==== 
 +Fichiers servant à la traduction : fichiers .po par langue proposée et .pot pour le template. 
 +==== 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//. 
 + 
 +===== Le système de son ===== 
 + 
 +Tout ce qui est audio dans le client est géré par un Global, une scène en autoload appelé AudioManager (''%%res://autoloads/audio_manager.gd%%''). 
 + 
 +Pour le moment, il existe 5 bus pour le son: 
 +  - Master, qui se superpose aux 4 autres, pour la gestion générale. Il ne reçoit aucun flux direct, seulement les quatre autres. 
 +  - Music, qui gère la musique non diégétique. 
 +  - Gui, qui propose les sons d’interface. 
 +  - SFX, qui s’occupe des sons émis par les éléments 3D avec une spatialisation de leur émission (position et direction). 
 +  - Ambient, qui s’occupe des sons qui sont présents dans une zone 3D sans avoir un point précis d’émission. 
 + 
 +Chaque sous-sytème est une node fille du système de gestion général. 
 + 
 +{{ :fr:mmorpg:client:iris:screen_capture_20260618_094758.jpg?direct&500 |}} 
 + 
 +Ces sous-systèmes proposent chacun un certain nombre de paramètres pour gérer le sound design: 
 + 
 + {{ :fr:mmorpg:client:iris:screen_capture_20260618_095013.jpg?direct&600 |}} 
 +  * Bus Name: le nom du bus qui gérera les sons émis par ce manager 
 +  * Pool size: le nombre de MediaPlayer simultanés qui seront utilisés par ce manager 
 +  * Cache size : le nombre de Resources stockées en cache parmi les plus fréquemment appelées 
 +  * Use 3D: pour différencier les systèmes placés dans l’espace de jeu 3D de ceux qui ne le sont pas 
 +  * Sound Path: le répertoire où les Resources utilisées par ce système sont placées 
 + 
 +Depuis le code, pour émettre un son, il suffit d’appeler le submanager audio dédié et le nom de fichier de la Resource à émettre (sans son suffixe) et le son sera pris en charge. Pour le moment, seuls les sons d’interface (gui) sont implémentés correctement et la musique de façon minimale. 
 + 
 +Exemples: 
 + 
 +Pour émettre un son de click, indiquer: 
 +<code> 
 +AudioManager.gui.play_sound("ui_click"
 +</code> 
 + 
 +Pour lancer le thème principal du jeu: 
 +<code> 
 +AudioManager.music.play_sound("main_theme"
 +</code> 
 + 
 +===== L’interface ===== 
 + 
 +Le système de préférences ’géré par le Global Settings (''%%res://autoloads/settings.gd%%'') intègre la gestion du thème qui définit les différents éléments d’affichage. Voir la page dédiée sur la gestion du thème : [[gestion_theme]]. 
 + 
 +==== L’interface OutGame ==== 
 + 
 +Une scène (''%%res://scenes/lobby.tscn%%'') gère le menu principal de navigation. 
 + 
 +===== L’internationalisation ===== 
 + 
 +L’internationnalisation se base sur l’usage de [[https://www.gnu.org/software/gettext/manual/gettext.html|gettext]] (fichiers .po). Une page dédiée détaille la façon dont les choses sont implémentées : [[internationalisation]]. 
  
  
 {{tag>godot client khanat mmorpg}} {{tag>godot client khanat mmorpg}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/mmorpg/client/iris/developpement.1781016670.txt.gz · Dernière modification : de YannK

Licences Mentions légales Accueil du site Contact Inclusion