Code MP (OF) => 2 codes differents (super chiant à lire)
Publié : mer. mars 26, 2008 9:00 pm
Bonjour à tous,
Je vais faire abstration ici des infos de positions en MP qui sont quoi qu'il arrive en peer to peer et dont la consomation en bande passante est de l'ordre de "25kb/s en Upload" et "25kb/s x nombre de clients" en download, pour chaque joueur connecté
------------------------------------------------------------------------------------------------------
Avant toute chose, quelques definitions au niveau de la gestion des IA apres desaggregation :
Lorsqu'un bataillon/flight est desaggregé par un joueur, il est geré suivant 2 statuts differents "Owner" et "SimOwner" pour lui meme et pour tous les autres joueurs connecté en MP avec lui
Owner => gestion d'une entitée tel qu'un bataillon/flight complet => gestion en tant que objets unique (gestion combat 2D : pas beaucoup d'impact sur l'utilisation du CPU et encore moins sur l'utilisation de la bande passante)
SimOwner => gestion de toutes les vehicules (un char, un lanceur SAM, un soldat, un camion, un F16, un Mig29, etc) faisant partie d'une tel entitée "bataillon/flight" => gestion de plusieurs dizaine de vehicules (gestion combat 3D, vehicule par vehicule : gros impact sur l'utilisation du CPU et impact direct sur l'utilisation de la bande passante)
Local => est geré
Remote => n'est pas geré
exemples :
"Owner:local SimOwner:local" => du point de vue d'un joueur donné, cela veut dire que ce bataillon/flight est geré en tant qu'object unique MAIS AUSSI que chaque vehicules faisant partie de ce bataillon/flight est geré par ce joueur donné
"Owner:remote SimOwner:remote" => du point de vue d'un joueur donné, cela veut dire que ce bataillon/flight n'est pas geré en tant qu'object unique MAIS NON PLUS que chaque vehicules faisant partie de ce bataillon/flight n'est pas geré par ce joueur donné
"Owner:local SimOwner:remote" => du point de vue d'un joueur donné, cela veut dire que ce bataillon/flight est geré en tant qu'object unique MAIS QUE que chaque vehicules faisant partie de ce bataillon/flight n'est pas geré par ce joueur donné
"Owner:remote SimOwner:local" => du point de vue d'un joueur donné, cela veut dire que ce bataillon/flight n'est pas geré en tant qu'object unique MAIS PAR CONTRE que chaque vehicules faisant partie de ce bataillon/flight est geré par ce joueur donné
------------------------------------------------------------------------------------------------------
Ok, je ne vais pas rentrer dans les details, mais suite à mes tests ayant pour but de visualiser la gestion de l'aggregation/deaggregation, voici mes conclusions :
les 2 code MP sont
-soit avec le patch Host all units desactivez (=> code que l'on a toujours utiliser)
-soit avec le patch Host all unit activer
Host all units desactiver
ce code est prevu :
-pour un host n'etant pas specialement super puissant en terme de CPU et n'ayant pas specialement une grosse bande passante en upload, mais quand meme un minimum de 512 kb/s)
-pour des clients devant absolument avoir un CPU raisonnable ou meme puissant et avoir une connexion tres stable en upload avec un minimum de 512 kb/s
-peu importe si utilisation d'un server en 2D ou en 3D
principe de fonctionnement de ce code :
-quoi qu'il arrive, le host est celui qui lance la TE/campagne, peu importe si il ne rentre pas le 1er dans le cockpit, peu importe si il reste dans le monde 2D, peu importe si il rentre cockpit (3D) puis qu'il revienne dans le monde 2D, etc => tant qu'il reste dans la TE/campaign, il restera le host (je ne vais pas expliquer ici ce qui se passe pour les clients si le host a un CTD ou une perte de connexion, les tests sont tjrs en cours mais plusieurs resultats ont deja ete mit à jour et ce serait trop long à expliquer)
-si c'est le host qui desaggrege un bataillon/flight : de son propre point de vue, il le vera en tant "Owner:local SimOwner:local" et du point de vue des autres joueurs connecté (les client donc), ces client le verront en tant que "Owner:remote SimOwner:remote"
-si c'est un client qui desaggrege un bataillon/flight : de son propre point de vue il le verra en tant que "Owner:remote SimOwner:local", du point de vue de tous les autres clients, ce bataillon sera "Owner:remote SimOwner:remote" et du point de vue du host : "Owner:local SimOwner:remote"
cela veus dire que :
-quoi qu'il arrive, le host gere en permanence les bataillon/flight en tant qu'object unique (Owner sera toujours local pour le host), ici tres peu d'impact sur l'utilisation du CPU et de la bande passante.
-et donc fatalement, les client ne gere jamais les bataillon/flight en tant qu'object unique (Owner sera toujours remote pour les clients)
-par contre si un joueur (host ou client) desaggrege un ou plusieurs bataillon/flight, c'est lui meme qui devra gerer chaque vehicules de ce bataillon/Flight (=> SimOwner:local) pour tous les autres joueurs connectés, ce qui a un impact direct sur l'utilisation du CPU et de la bande passante upload de ce joueur, qu'il soit host ou client, cela depend alors du nombre de bataillon/flight qu'il a deseggregé en de combien de vehicules se compose tous ces bataillon/flight, cela peut impliquer de devoir gerer plusieurs dizaines d'objects, toutes les tracantes tirées, toutes les trajectoires de missile tirés => imaginez ici un client avec un petit CPU et une petite bande passante qui doit "hoster" tout cela pour tous les autres joueur connecté ....il y a fatalement des infos qui ne passeront pas en MP
bug connus de ce code :
-desynchro aleatoire pendant certaine partie MP, source du probleme non definie precisement a l'heure actuelle
Host all units activé
ce code est prevu :
-pour un host ayant un CPU vraiment puissant et ayant vraiment une grosse connexion en upload (genre 10 Mb/s en upload et download garantis)
-pour des clients avec CPU modeste et ayant une connexion modeste (128kb/s en upload suffit largement)
-recommandation => utilisation d'un server en 2D
principe de fonctionnement de ce code :
-comme pour les Host all units desactivé : quoi qu'il arrive, le host est celui qui lance la TE/campagne, peu importe si il ne rentre pas le 1er cockpit, peu importe si il reste dans le monde 2D, peu importe si il rentre cockpit (3D) puis qu'il revienne dans le monde 2D, etc => tant qu'il reste dans la TE/campaign, il restera le host (l'ideal ici est de laisser le host en 2D, car il y a un bug enorme si le host rentre en 3D
-les bataillons/flight desaggregés par n'importe quel client seront toujours "Owner:remote SimOwner:remote" pour ces clients
-donc fatalement, ces memes bataillons desaggregé par ces clients seront toujours "Owner:local SimOwner:local" pour le host
cela veus dire que:
-ce sera toujours le host qui va absolument gerer la totalitée des bataillons/flights desaggreger par les clients : il sera donc quoi qu'il arrive "Owner:local SimOwner:local" => enorme impact sur l'utilisation du CPU et de la bande passant, surtout en upload
-les clients ne gerent jamais rien du tout, meme si ce sont eux qui ont desaggreger les bataillons/flights => tres peu d'utilisation du CPU et de la bande passant en upload, par contre ils devront avoir un download suffisament stable et important pour pouvoir recevoir la totalitée des info envoyé par le host
Bug connus de ce code :
-si le host rentre en 3D (cockpit donc) : les bataillons desaggregés par les clients se trouvant a plus de 80MN du host ne tireront jamais sur ces clients : aucune tracante, aucun SAM n'est tiré, donc sans debuggage prealable au niveau exe => NE JAMAIS METTRE UN HOST AVEC LE PATCH "Host all units" ACTIF DANS LE MONDE 3D, IL DEVRA TOUJOURS RESTER EN SERVER 2D
-si le host reste en 2D, il y a un bug qui n'a vraiment aucun impact sur la gameplay : les missiles SAM n'apparaissent visuellement (la fumée et le missile) qu'à 15MN de la position d'un joueur (au dela de 15MN, ou 25 bon km, le missile et sa fumée sont invisible). Mais je vous rassure, seul l'activation des labels permet de voir clairement ce bug, par contre je vous certifie qu'il est bien guidé et que vous avez bien une alerte de tir ou un spike de guidage => je le repete, ce bug n'a aucun impact sur le gameplay MP (video du bug avec labels activés : http://users.skynet.be/fb831016/Bug.wmv
-pas encore de confirmation du bug de desynchro dans ce mode MP
Avantages tres important du Host all unit activé au niveau gameplay :
-les bataillon et les chasseur semble 10x plus agressif qu'avec un host ayant le Host all units désactvé => ils n'hesite pas à tirer abondament sur vous (surtout les SAM, mais aussi les vehicule SAM de protection des bataillons HQ etc), c'est vraiment du pur bonheur de vivre enfin dans un environnement vraiment vraiment dangereux
-une meilleur fluiditée dans la gestion de tous les vehicules, de toutes les trajectoire de missile, etc parce que c'est le host qui controle absolument tout correctement, evidement ce host doit imperativement avoir un surpuissant CPU ainsi qu'un grosse bande passant en upload
Vous savez tout
PS : le code MP Host all units ne s'active que pour le host, donc celui qui lance la TE/campagne, peu importe si les clients ont eux aussi le host all units actif ou pas
Cheers,
BB
Je vais faire abstration ici des infos de positions en MP qui sont quoi qu'il arrive en peer to peer et dont la consomation en bande passante est de l'ordre de "25kb/s en Upload" et "25kb/s x nombre de clients" en download, pour chaque joueur connecté
------------------------------------------------------------------------------------------------------
Avant toute chose, quelques definitions au niveau de la gestion des IA apres desaggregation :
Lorsqu'un bataillon/flight est desaggregé par un joueur, il est geré suivant 2 statuts differents "Owner" et "SimOwner" pour lui meme et pour tous les autres joueurs connecté en MP avec lui
Owner => gestion d'une entitée tel qu'un bataillon/flight complet => gestion en tant que objets unique (gestion combat 2D : pas beaucoup d'impact sur l'utilisation du CPU et encore moins sur l'utilisation de la bande passante)
SimOwner => gestion de toutes les vehicules (un char, un lanceur SAM, un soldat, un camion, un F16, un Mig29, etc) faisant partie d'une tel entitée "bataillon/flight" => gestion de plusieurs dizaine de vehicules (gestion combat 3D, vehicule par vehicule : gros impact sur l'utilisation du CPU et impact direct sur l'utilisation de la bande passante)
Local => est geré
Remote => n'est pas geré
exemples :
"Owner:local SimOwner:local" => du point de vue d'un joueur donné, cela veut dire que ce bataillon/flight est geré en tant qu'object unique MAIS AUSSI que chaque vehicules faisant partie de ce bataillon/flight est geré par ce joueur donné
"Owner:remote SimOwner:remote" => du point de vue d'un joueur donné, cela veut dire que ce bataillon/flight n'est pas geré en tant qu'object unique MAIS NON PLUS que chaque vehicules faisant partie de ce bataillon/flight n'est pas geré par ce joueur donné
"Owner:local SimOwner:remote" => du point de vue d'un joueur donné, cela veut dire que ce bataillon/flight est geré en tant qu'object unique MAIS QUE que chaque vehicules faisant partie de ce bataillon/flight n'est pas geré par ce joueur donné
"Owner:remote SimOwner:local" => du point de vue d'un joueur donné, cela veut dire que ce bataillon/flight n'est pas geré en tant qu'object unique MAIS PAR CONTRE que chaque vehicules faisant partie de ce bataillon/flight est geré par ce joueur donné
------------------------------------------------------------------------------------------------------
Ok, je ne vais pas rentrer dans les details, mais suite à mes tests ayant pour but de visualiser la gestion de l'aggregation/deaggregation, voici mes conclusions :
les 2 code MP sont
-soit avec le patch Host all units desactivez (=> code que l'on a toujours utiliser)
-soit avec le patch Host all unit activer
Host all units desactiver
ce code est prevu :
-pour un host n'etant pas specialement super puissant en terme de CPU et n'ayant pas specialement une grosse bande passante en upload, mais quand meme un minimum de 512 kb/s)
-pour des clients devant absolument avoir un CPU raisonnable ou meme puissant et avoir une connexion tres stable en upload avec un minimum de 512 kb/s
-peu importe si utilisation d'un server en 2D ou en 3D
principe de fonctionnement de ce code :
-quoi qu'il arrive, le host est celui qui lance la TE/campagne, peu importe si il ne rentre pas le 1er dans le cockpit, peu importe si il reste dans le monde 2D, peu importe si il rentre cockpit (3D) puis qu'il revienne dans le monde 2D, etc => tant qu'il reste dans la TE/campaign, il restera le host (je ne vais pas expliquer ici ce qui se passe pour les clients si le host a un CTD ou une perte de connexion, les tests sont tjrs en cours mais plusieurs resultats ont deja ete mit à jour et ce serait trop long à expliquer)
-si c'est le host qui desaggrege un bataillon/flight : de son propre point de vue, il le vera en tant "Owner:local SimOwner:local" et du point de vue des autres joueurs connecté (les client donc), ces client le verront en tant que "Owner:remote SimOwner:remote"
-si c'est un client qui desaggrege un bataillon/flight : de son propre point de vue il le verra en tant que "Owner:remote SimOwner:local", du point de vue de tous les autres clients, ce bataillon sera "Owner:remote SimOwner:remote" et du point de vue du host : "Owner:local SimOwner:remote"
cela veus dire que :
-quoi qu'il arrive, le host gere en permanence les bataillon/flight en tant qu'object unique (Owner sera toujours local pour le host), ici tres peu d'impact sur l'utilisation du CPU et de la bande passante.
-et donc fatalement, les client ne gere jamais les bataillon/flight en tant qu'object unique (Owner sera toujours remote pour les clients)
-par contre si un joueur (host ou client) desaggrege un ou plusieurs bataillon/flight, c'est lui meme qui devra gerer chaque vehicules de ce bataillon/Flight (=> SimOwner:local) pour tous les autres joueurs connectés, ce qui a un impact direct sur l'utilisation du CPU et de la bande passante upload de ce joueur, qu'il soit host ou client, cela depend alors du nombre de bataillon/flight qu'il a deseggregé en de combien de vehicules se compose tous ces bataillon/flight, cela peut impliquer de devoir gerer plusieurs dizaines d'objects, toutes les tracantes tirées, toutes les trajectoires de missile tirés => imaginez ici un client avec un petit CPU et une petite bande passante qui doit "hoster" tout cela pour tous les autres joueur connecté ....il y a fatalement des infos qui ne passeront pas en MP
bug connus de ce code :
-desynchro aleatoire pendant certaine partie MP, source du probleme non definie precisement a l'heure actuelle
Host all units activé
ce code est prevu :
-pour un host ayant un CPU vraiment puissant et ayant vraiment une grosse connexion en upload (genre 10 Mb/s en upload et download garantis)
-pour des clients avec CPU modeste et ayant une connexion modeste (128kb/s en upload suffit largement)
-recommandation => utilisation d'un server en 2D
principe de fonctionnement de ce code :
-comme pour les Host all units desactivé : quoi qu'il arrive, le host est celui qui lance la TE/campagne, peu importe si il ne rentre pas le 1er cockpit, peu importe si il reste dans le monde 2D, peu importe si il rentre cockpit (3D) puis qu'il revienne dans le monde 2D, etc => tant qu'il reste dans la TE/campaign, il restera le host (l'ideal ici est de laisser le host en 2D, car il y a un bug enorme si le host rentre en 3D
-les bataillons/flight desaggregés par n'importe quel client seront toujours "Owner:remote SimOwner:remote" pour ces clients
-donc fatalement, ces memes bataillons desaggregé par ces clients seront toujours "Owner:local SimOwner:local" pour le host
cela veus dire que:
-ce sera toujours le host qui va absolument gerer la totalitée des bataillons/flights desaggreger par les clients : il sera donc quoi qu'il arrive "Owner:local SimOwner:local" => enorme impact sur l'utilisation du CPU et de la bande passant, surtout en upload
-les clients ne gerent jamais rien du tout, meme si ce sont eux qui ont desaggreger les bataillons/flights => tres peu d'utilisation du CPU et de la bande passant en upload, par contre ils devront avoir un download suffisament stable et important pour pouvoir recevoir la totalitée des info envoyé par le host
Bug connus de ce code :
-si le host rentre en 3D (cockpit donc) : les bataillons desaggregés par les clients se trouvant a plus de 80MN du host ne tireront jamais sur ces clients : aucune tracante, aucun SAM n'est tiré, donc sans debuggage prealable au niveau exe => NE JAMAIS METTRE UN HOST AVEC LE PATCH "Host all units" ACTIF DANS LE MONDE 3D, IL DEVRA TOUJOURS RESTER EN SERVER 2D
-si le host reste en 2D, il y a un bug qui n'a vraiment aucun impact sur la gameplay : les missiles SAM n'apparaissent visuellement (la fumée et le missile) qu'à 15MN de la position d'un joueur (au dela de 15MN, ou 25 bon km, le missile et sa fumée sont invisible). Mais je vous rassure, seul l'activation des labels permet de voir clairement ce bug, par contre je vous certifie qu'il est bien guidé et que vous avez bien une alerte de tir ou un spike de guidage => je le repete, ce bug n'a aucun impact sur le gameplay MP (video du bug avec labels activés : http://users.skynet.be/fb831016/Bug.wmv
-pas encore de confirmation du bug de desynchro dans ce mode MP
Avantages tres important du Host all unit activé au niveau gameplay :
-les bataillon et les chasseur semble 10x plus agressif qu'avec un host ayant le Host all units désactvé => ils n'hesite pas à tirer abondament sur vous (surtout les SAM, mais aussi les vehicule SAM de protection des bataillons HQ etc), c'est vraiment du pur bonheur de vivre enfin dans un environnement vraiment vraiment dangereux
-une meilleur fluiditée dans la gestion de tous les vehicules, de toutes les trajectoire de missile, etc parce que c'est le host qui controle absolument tout correctement, evidement ce host doit imperativement avoir un surpuissant CPU ainsi qu'un grosse bande passant en upload
Vous savez tout
PS : le code MP Host all units ne s'active que pour le host, donc celui qui lance la TE/campagne, peu importe si les clients ont eux aussi le host all units actif ou pas
Cheers,
BB