Un petit état d'avancement. Je rencontre de véritables problèmes de performance actuellement, lié au fait d'avoir mis un certain nombre d'IA en place. Le traffic réseau est plus important, et la gestion des IAs en traitement et en affichage est important.

Je travaille ardemment sur le sujet, car si je ne peux pas mettre de joueurs vs des IAs autant m'arrêter.

Je n'avais pas encore abordé le sujet Thread, et j'ai du m'y mettre.

A ce jour, une boucle unique exécutait de manière quasi séquentielle toute les étapes du programme (traitement des messages réseaux, mise à jour des positions, recueil des touches pressées, affichage des objets,...). Quand un grand nombre de messages arrivent, et qu'il faut traiter les messages pour mettre à jour les objets cela devient juste l'horreur.

De ce fait, sur le client, j'ai désormais 3 threads:

*  le 1er qui gère la communication réseau
* le second qui met à jour les objets (IA, joueur, vaisseau, position, ....)
* le 3e qui gère l'affichage et les inputs joueurs

Côté serveur, j'ai également 3 threads:

* communication réseau
* vie du monde
* création des messages réseaux de mise à jour des clients

J'ai des temps qui se sont largement améliorés. Ma boucle principale côté client passe de 0.08 sec en moyenne à 0.015 sec. Mes envois réseaux sont effectivement envoyés tous les 1/4 de sec, et non plus tous les 0.45 sec en moyenne.

Je suis content d'être passé par cette étape. Néanmoins, elle est encore insuffisante, il faut que je trouve les éléments techniques qui pêchent encore. Mon but est de pouvoir assurer une performance optimale pour au moins 10 joueurs ou IA dans un premier temps.

A suivre