Ca y est, j'ai repris les rennes de la chose. Une grosse problématique dans les jeux réseaux et de réussir à envoyer toutes les informations aux joueurs, et que chaque client ait des données à jour par rapport au serveur. Si les données sont envoyées de manière séquentielle et permanentes, le réseau est saturé, et le client n'a pas le temps de traiter tous les messages. Le client se met à ramer.

Dans un premier temps, j'avais déporté le calcul des IA sur le client, afin d'obtenir quelque chose de fluide. Mais malheureusement, on se retrouvait avec des décalages importants entre le client et le serveur. Du coup, une fois par seconde, j'envoyais la position de référence calculée et stockée sur le serveur. Conséquence : les vaisseaux faisaient des bonds en arrière.

J'ai donc lu un certain nombre d'articles sur le sujet pour affiner ma compréhension de la chose. Par exemple, j'envoie désormais les positions des ennemis une fois tous les 1/6e de seconde. Mais ce n'est pas sans conséquence. En une fraction de seconde, le rafraîchissement de l'écran se fait un grand nombre de fois, et cela a pour conséquence qu'on voit le vaisseau ennemi bondir d'un point à un autre. Sans compter sa rotation qui se fait de manière saccadée également.

Un mot magique m'a été glissé à ce moment là : interpolation. Il faut que j'ajoute un calcul savant, pour qu'entre 2 envois de position, je calcule les positions intermédiaires pour donner un mouvement fluide. Ce n'est pas très compliqué à mon sens, mais cela demande un peu de travail. Une fois ce travail effectué, je pense que la partie réseau sera en grande partie résolue. Il me restera à retester le lancement de plusieurs clients.

Pour l'instant, pour me divertir, je me suis lancé dans la création d'une petite interface de chat. Petit supplément qui rendra le jeu plus convivial.

Il me reste une todo list (), somme toute importante avant de rendre la chose disponible pour une première alpha test fermée.