Bon, je vous le dis tout de suite, je suis dev touche à tout, mais ça n'empêche pas de savoir qu'on va me la mettre quand on vend une feature ou une technologie à la con.
Cela veut pas dire que je crois pas au Serveur Meshing de Star Citizen, mais en faisant des recherches y'a des problématiques que personne sur ce forum n'a posé, et qui rend ce truc obligatoire un peu trop idéaliste...
Je précise, ici on va parler du Static Server Meshing promis dans les 12 mois, on va pas rentrer encore dans les délires d'instances qui se créent, parce que vous allez voir même en statique, on aura des soucis.
J'ai déjà fouiller le forum, et j'ai maté ces vidéos du directeur technique de CIG, il a l'air vraiment passionné et il a l'air de pas vouloir nous la mettre :
https://youtu.be/piJHV9WEQ_o
Et pour ceux qui ont le temps :
https://youtu.be/CrUUwolcZEw?t=4993
Regardez au moins la première vidéo avant de continuer.
Bon bah jusque là tout est calme, tout est beau, viens ensuite des questions que personnes n'a posés et qui reste importante :
- Le Serveur Meshing a besoin de synchronisé les différents nodes entre eux.
Sur leurs schéma d'escroc à https://youtu.be/CrUUwolcZEw?t=5753
il ne montre pas comment c'est censé se faire. (y'a pas deux flèches entre chaque nodes).
Certains vont dire qu'ils ont simplifier, mais que tout les nodes communiques entre eux,
NON NON NON,
ça marchera pas comme ça, parce que déjà ta pas besoin de faire communiquer tout les nodes entre eux, juste ceux qui sont cotes à cotes, et surtout pour sync deux serveur ensemble, faut qu'il communique
Donc tu envois un message supplémentaire. Par rapport à une architecture client / serveur classique, tu n'es plus efficace.
Bah oui, dans un serveur / clients classique, les clients envois leurs données, le serveur les sync.
Mais dans le cadre du serveur meshing, les client envoi leurs données, à plusieurs serveurs qui doivent communiquer ensemble PUIS renvoyer leurs données.
Y'a une étape supplémentaires, et en informatique, une étape supplémentaire = moins efficaces, parce que si tu fais ça avec deux serveurs, c'est OK, mais si tu as 4 nodes côtes à côtes dans une grande bataille spatial MON CUL SUR LA COMMODE qu'ils vont se sync, ils vont se ralentir les un les autres surtout si y'a beaucoup de joueur dans chaque instance.
Imaginez qu'un de ces 4 serveurs soit overload, il ne pourra plus se sync correctement avec les autres et les autres serveur vont avoir les mêmes que vous avez quand vous laguer sur minecraft, ils vont pas avoir les données à temps, et bah là tu te retrouves avec des serveurs qui lag entre eux...
Bon en vrai ça remet pas en cause le Serveur Meshing, ce que je viens de vous expliquer ne va pas arriver avec SC (normalement),
je pense que CIG à déjà prévu ça et c'est l'une des raisons pour laquelle vous n'avez que 3 instances dans leurs preuves de concept Serveur Meshing :
https://www.youtube.com/watch?v=UClkcRuGNF8
En gros vous avez un serveur Rouge, un Bleu et un Vert, mais vous n'avez pas de serveur entre le Rouge et le Bleu. Je pense qu'ils n'ont pas mis de 4 ème node car ils savaient que si tout les serveurs sur chaque node se voyait, il serait surcharger les un les autres et ça reviendrais à mettre un seul serveur pour tout le monde...
Pire, je pense aussi que ceux dans le serveur Rouge ne se Sync pas avec le serveur Bleu, quand vous regardez la démo, ils ne se voient pas y'a un mur entre les deux... Les serveur disparaissent sur les 4 l'écrans
En gros, le serveur Vert est le chef de la bande, il reçoit les données des deux serveurs et les renvoient au deux, c'est lui qui sera toujours le plus chargés des trois, vous me suivez jusque là ?
Cette surcharge du serveur Vert est exponentiel en fonction des joueurs que tu auras sur LES TROIS SERVEURS
Donc, pour l'instant sur du serveur Meshing, on ne montera pas à plus de 2 serveurs (je dis pas 3 car le Rouge et le Bleu ne sont pas sync entre eux)
Maintenant imaginons deux serveurs (une station et son intérieur) et l'espace avec des vaisseaux qui attaque la station :
Serveur A : Station
Serveur B : Space
On a 50 joueurs sur chaque serveur qui se combattent
Les serveurs pour chaque joueurs doit :
- Envoyés données au client
- Envoyés données au serveur adverse
- Envoyés données à la BDD
+ Si un joueur change de serveur, reprendre toutes les entités à l'autre serveur, ce qui va nécessité plusieurs échanges
Sur une architecture avec un seul serveur ça serait seulement :
- Envoyés données au client
- Envoyés données à la BDD
En gros y'a des cas d'utilisateurs, pas si spécifique que ça, ou il n'est pas intéressant de faire appel à du serveur Meshing
SURTOUT dans les cas des vaisseaux avec leurs propres serveur
Tout ça pour dire, ce que vous appelez du Serveur Meshing, ce sera juste du multi instance, la plupart du temps ce sera pas opti de l'utiliser, ils vont juste se contenter de foutre un serveur pour chaque lune / planète / système stellaire et vous n'aurez pas de bataille à 2500 joueurs dans plusieurs planètes parce que le jeu sera en PLS à cause de leur moteur qui stream tout.
Pour l'instant c'est ça l'avancement du Serveur Meshing de SC.
Après ça ne veut pas dire qu'ils vont pas réussir à le mettre en place avec plusieurs autres serveurs, ce défaut peut être corrigé en mettant un serveur "Chef d'orchestre" par exemple qui va s'occuper de dire à tout les nodes ce qu'ils doivent sync en priorité
Mais bon, c'est comme en automobile, plus tu ajoutes des pièces, moins c'est fiables et ce sera plus dur à maintenir.
Franchement j'aimerai bien en discuter avec des gens calé pour avoir leurs avis...