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:22] – [Principes de développement] YannKfr:mmorpg:client:iris:developpement [04 August 2026 à 12:40:10] (Version actuelle) – [data_definition] YannK
Ligne 4: Ligne 4:
  
 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.1781016682.txt.gz · Dernière modification : de YannK

Licences Mentions légales Accueil du site Contact Inclusion