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 à 16:18:23] – [La hiérarchie des dossiers] 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]].
- 
- 
-{{tag>godot client khanat mmorpg}} 
  
 ===== La hiérarchie des dossiers ===== ===== La hiérarchie des dossiers =====
Ligne 13: Ligne 10:
         "res:/ /"         "res:/ /"
             "autoloads"             "autoloads"
- 
             "data"             "data"
             "data_definition"             "data_definition"
 +            "i18n"
             "scenes"             "scenes"
                 "widgets"                 "widgets"
Ligne 32: Ligne 29:
 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//. 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 ==== ==== 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. 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.
Ligne 42: Ligne 41:
  
 Pour l’instant, seules la classe Node et celles qui en héritent proposent un gabarit //Custom organized Node script//. 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}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/mmorpg/client/iris/developpement.1781021903.txt.gz · Dernière modification : de YannK

Licences Mentions légales Accueil du site Contact Inclusion