summaryrefslogtreecommitdiff
path: root/doc/conception.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/conception.txt')
-rw-r--r--doc/conception.txt27
1 files changed, 14 insertions, 13 deletions
diff --git a/doc/conception.txt b/doc/conception.txt
index 4376a64..3aae8f9 100644
--- a/doc/conception.txt
+++ b/doc/conception.txt
@@ -1,11 +1,11 @@
-= Conception =
-== Modules ==
-=== Communs ===
-==== Events ====
+====== Conception ======
+===== Modules =====
+==== Communs ====
+=== Events ===
Le module events permet de gérer une liste d'évènements qui correspondent a des actions d'un joueur.
A un instant donné e.eventTick (daté par le client source de l'évènement), le client e.clientId a généré un évènement de type e.type.
-Les informations complémentaire de l'évènement dépendent de son type :
+Les informations complémentaires de l'évènement dépendent de son type :
* eReady : Signifie que le joueur sur le client en question signale qu'il est prêt à commencer une partie
* eTimeSync : Le client signale l'état de son horloge et attends une réponse du serveur pour se synchroniser. Ces évènements sont gérés si la fréquence des actions de l'utilisateur ne suffit pas à garder une synchronisation suffisante.
* eLemAction : Signifie que le joueur a donné un ordre a un des ses lemmings
@@ -14,10 +14,10 @@ Les informations complémentaire de l'évènement dépendent de son type :
Le module permet de gérer la liste d'évènements, de la trier chronologiquement (utilisé par le serveur), de la sérialiser et désérialiser pour la transférer via le réseau et comporte un méchanisme d'accès exclusif (eventListLock/eventListUnlock).
-==== Utils ====
+=== Utils ===
Ce module regroupe toutes les fonctions "techniques" commune au serveur et au client : gestion des logs, fonctions mathématiques.
-=== Timing ====
+=== Timing ===
Fonctions communes à l'algorithme de synchronisation des horloges des clients par rapport au serveur.
Chaque client respecte le pseudo-algorithme suivant pour sa boucle principale de jeu :
TANTQUE (partie_en_cours)
@@ -28,16 +28,17 @@ FIN TANTQUE
drift_ms est une variable partagée entre le thread principal de jeu (lecture uniquement) et le thread de réception des messages réseaux (mise à jour selon les champs e.eventTick et e.serverTick) via la fonction updateDriftOnEventReception() du module timing.
wantWait est une variable pouvant être affichée pour suivre le comportement de l'algo de synchronisation du temps, mais n'est pas nécessaire au fonctionnement.
-==== Game ====
+=== Game ===
Module contenant la logique du jeu pour passer d'un instant (tick) au suivant. L'état des animations et lemmings sont mis à jour.
-==== Netgame ====
+=== Netgame ===
Module embarquant les primitives qui vont bien pour manipuler les structures de données de data_network.h permettant de gérer l'état des parties réseau. Ce module continent aussi les primitives d'envoi et de réception des évènements réseau
-=== Serveur ===
-=== Client ===
-==== Graphic ====
+==== Serveur ====
+==== Client ====
+=== Graphic ===
Toute la gestion de l'affichage, les primitives pour plaquer les sprites et des tests au pixel.
-==== Loader ====
+=== Loader ===
Module gérant le chargement d'un niveau (utilisé dans un thread par le client pour être asynchrone avec thread d'affichage).
+