summaryrefslogtreecommitdiff
path: root/doc/conception.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/conception.txt')
-rw-r--r--doc/conception.txt19
1 files changed, 19 insertions, 0 deletions
diff --git a/doc/conception.txt b/doc/conception.txt
index 6fe61cd..4376a64 100644
--- a/doc/conception.txt
+++ b/doc/conception.txt
@@ -19,6 +19,25 @@ Ce module regroupe toutes les fonctions "techniques" commune au serveur et au cl
=== 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)
+ timeBefore_ms = SDL_GetTicks();
+ // code princpal d'une frame
+ wantWait=waitForNextTick(timeBefore_ms, drift_ms);
+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 ====
+Module contenant la logique du jeu pour passer d'un instant (tick) au suivant. L'état des animations et lemmings sont mis à jour.
+
+==== 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 ====
+Toute la gestion de l'affichage, les primitives pour plaquer les sprites et des tests au pixel.
+
+==== Loader ====
+Module gérant le chargement d'un niveau (utilisé dans un thread par le client pour être asynchrone avec thread d'affichage).