diff options
Diffstat (limited to 'doc/conception.txt')
-rw-r--r-- | doc/conception.txt | 19 |
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). |