Bonjour,
Je en suis pas du tout pro en la matière, mais je voudrais savoir combien de polygones compte les personnages des jeux en ligne comme Aion par exemple ?
Je crois que wow c'est 500 le personnage, je me trompe peut-être ?
merci infiniment
Bonjour,
Je en suis pas du tout pro en la matière, mais je voudrais savoir combien de polygones compte les personnages des jeux en ligne comme Aion par exemple ?
Je crois que wow c'est 500 le personnage, je me trompe peut-être ?
merci infiniment
Bonjour,
Je ne vais pas répondre précisément à la question, mais il faut savoir que sur un jeu online, le nombre de polygone importe peu, car les polygones ne sont pas transférés entre le client et le serveur.
Après, WoW en aura peut être moins, car il est sorti il y a longtemps, et que Blizzard voulait le faire tourner sur beaucoup de machines, même les moins puissantes.
Je ne suis pas un spécialiste, mais je pense que ça a quand même son importance car (contrairement à un jeu 'offline'), les concepteurs ne peuvent pas aussi facilement prévoir à l'avance le nombre de personnages affichés en même temps à l'écran.
Dans un jeu 'offline', c'est assez simple: je peux très bien décider dans ma game logic qu'à tel endroit je ne mettrai jamais plus de x monstres en même temps. Genre je fais arriver des vagues de monstres petit à petit en prenant en compte ce qu'il y a déjà d'affiché dans la scène.
Dans un jeu 'online', ça me paraît plus compliqué car il peut très bien y avoir un attroupement de beaucoup de joueurs au même endroit. Il me paraît délicat d'empêcher les gens de se trimballer où ils veulent en fonction de l'affluence et donc il faudra bien être capable de tous les afficher.
Après, je pense qu'avoir un chiffre précis pour le nombre de polygones est assez inutile: l'objectif n'est pas de dire "500 est un bon chiffre" tellement ça dépend de plein d'autres facteurs (type de rendu, type de public et donc hardware ciblé, effets ajoutés à la scène, détails des décors, ...), d'autant que ça peut évoluer (très) vite au fur et à mesure que les nouvelles générations de hardware apparaissent.
Amha, le mieux est encore de choisir une config minimum qu'on s'impose pour le jeu, de s'équiper de la carte graphique qui correspond et de faire quelques tests soi-même en essayant de se rapprocher au mximum des conditions du jeu final.
Salut pour t'en rendre compte il faudrait utiliser un logiciel de 3d.
Un personnage c'est en moyenne entre 5000 et 10000 polygones voire plus.
Cependant dans un jeu sophistiqué si tu charges en mémoire un objet 3d ily a des techniques de réduction de polyogones ou bien tu affiches des persos avec beaucoup de poylognes devant la caméra et des persos avec un nombre réduit de polygones derrière c.a.d. loin de la caméra
J'ai parlé de la prise sur le serveur, qui lui s'en fout un peu d'avoir 10 000 polygones ou 500, car il ne les affichent pas.
Après, pour l'histoire de l'attroupement, j'imagine que de toutes façon, on se prend les limite technique des serveurs / zone / nombre max de joueurs / interactions.
Je sous entends aussi, que le joueur à une machine acceptable, et que WoW, qui est certes une référence, remonte quand même à quelques années, et qu'ils n'ont pas changé le moteur, je crois.
Merci pour vos réponses et réaction
J'ai réussi à glaner aussi des informations complémentaires sur le sujet : A l'heure d'aujourd'hui les MMORPGs usent en moyenne 2.5 k de polygones pour représenter un personnage et 1k pour les créatures du monde.
Par contre, si j'ai bien compris, la donnée des polygones est gérée par les cartes graphiques des clients, c'est à dire que ce n'est pas le serveur qui gère les polys mais ce sont les clients qui les reçoivent ? Ici ont garde l'idée que le serveur gère la position X Y Z.
ps:
Le sujet n'est pas facile, si cela intéresse un programmeur qui aurait une expérience dans le domaine, ou ayant peut être niveau ingénieur programmation réseau, afin de nous aider à créer une document sur le sujet " avec l'histoire des sokets compris je crois" cela pourrait poser quelques structures pour débuter le projet.
Tout à fait. Mais j'avais mal compris la question en fait: je pensais qu'elle portait uniquement sur le côté 'capacités grapiques du client'
Oui: l'ensemble des ressources graphiques est déjà installé sur le client (typiquement via l'installation du jeu) ; le serveur ne transmet aucune ressource graphique, son, etc.
Le contenu des échanges client <=> serveur est minimal: grosso modo de l'odre de "tel perso bouge au de X1,y1 vers x2,y2 entre les temps t1 et t2). A charge pour le client d'afficher le personnage en question, de générer l'animation, de calculer le chemin (en fonction de la topologie du sol), etc...
Tu sembles n'avoir aucune expérience dans le domaine. Or l'aspect réseau d'un MMORPG fait partie des architectures les plus complexes à mettre en oeuvre. C'est un peu comme si un conducteur qui n'a jamais fait de mécanique décidait du jour au lendemain non seulement de construire sa propre voiture, mais ambitionnait également de faire aussi bien qu'une Ferrari. Un peu utopiste, pour le moins.Le sujet n'est pas facile, si cela intéresse un programmeur qui aurait une expérience dans le domaine, ou ayant peut être niveau ingénieur programmation réseau, afin de nous aider à créer une document sur le sujet " avec l'histoire des sokets compris je crois" cela pourrait poser quelques structures pour débuter le projet.
Je te conseille trèèèès vivement de te tourner vers les moteurs déjà existant qui t'éviteront de réinventer la roue (en moins bien) et t'épargneront des années de formation et d'essaie infructueux.
Il me semble que le moteur de Ryzom en est un parmi d'autres.
merci pour ces précisions.
Sinon oui, je n'y entend pas grand chose en programmation, mais j'ai je suis entrain de monter une équipe pour ce faire, mais il est clair que rien ne démarera vraiment tant qu'il n'y aura pas un "architecte" pour la partie dev. Nous en sommes conscient. J'espère trouver ici ou ailleurs un ingénieur, qui a demander une intervention d'un indépendant sur 1 mois pour établir un doc sur le sujet, moyennant compensation.
Je pense que tu ne saisis pas la complexité d'une telle entreprise. Pour faire une autre analogie: tu n'irais pas demander à un architecte en bâtiment de te pondre un plan d'un building de 200 étages en un mois (!) et espérer pouvoir le construire tout seul avec ta brouette toi et ton frère en suivant le plan comme un montage de Lego.
Pourtant c'est grosso modo ce que tu sembles croire comme étant possible en matière d'informatique. Je te conseille vivement de jeter un oeil à ce sujet: La vérité sur la conception de jeux amateurs.
Tu dis que le nombre de polygones importent peu pour le serveur.
Mais il me semble que les tests de collisions sont effectues sur le serveur ?
Au moins la broadphase non?
Si c'est une broadphase alors certes les nombres de polygones ne comptent pas !
C'est a ce moment la que l'on arrive aux problemes classiques des jeux videos en reseaux (et pas que les MMO).
Il y a plusieurs solutions au probleme et chacune d'elle a ses avantages, mais aussi des inconvenients. On peut faire gerer les collisions aux serveurs, tout comme au client.
Dans le cas d'une gestion du cote du serveur, il faudra une phase de validation de la commande du client (donc un message de retour, disant que le client peu bouger graphiquement, ou pas) (Dans la theorie simple, j'entends)
On peut faire la gestion chez le client aussi, car il a la positions de tout les objets, mais dans le cas de collision humain/humain, il faudra une confirmation du cote du serveur, car, dans un cas, il se peut que l'humain dans lequel nous rentrons dedans soit deja parti .
Mais, dans les deux cas, cela ne prend pas trop de bandes passantes, par contre, les effets de latences sont importantes pour le joueur.
En général, on évite très fortement de faire gérer les collisions par le client uniquement car sinon on s'expose aux hacks (le client qui a été modifié pour 'tricher' sur les collisions).
La seule solution 'sûre' est donc de gérer les collisions côté serveur qui joue le rôle de gardien des règles du jeu (et d'arbitre en cas de cas de 'conflits').
Pour y remédier, le client n'attend pas de voir son action validée: il suppose par défaut que l'action l'est et donc peut effectuer l'action correspondante sans attendre (donc plus de latence). C'est seulement en cas d'invalidation par le serveur qu'il est prévenu et qu'il corrige en conséquence.Dans le cas d'une gestion du cote du serveur, il faudra une phase de validation de la commande du client (donc un message de retour, disant que le client peu bouger graphiquement, ou pas) [...] les effets de latences sont importantes pour le joueur.
C'est effectivement la limite où le serveur joue le rôle d'arbitre et qu'il peut y avoir des artefacts visibles pour les joueurs à cause d'une correction à postériori.Dans le cas de collision humain/humain
D'une façon générale, le serveur doit toujours vérifier la véracité de ce qu'un client lui dit. Y compris les collisions qu'il devra donc calculer lui aussi de son côté.
Par contre, quand je disais que le nombre de polygones n'influait pas côté serveur, c'est parce que le serveur ne fait pas des tests sur chaque polygone réellement affiché dans le jeu (sinon il tomberait sous la charge): il utilise des modèles extrêmement simplifiés de chaque élément. Par exemple il pourrait réduire un personnage à une simple boite (une 'bounding box') et donc ne tester que la collision entre les deux boites de deux personnages (ce qui est très rapide) alors que les personnages, eux, sont composés de milliers de polygones à l'écran.
Un exemple d'une image où on voit (dans Counter Strike) le personnage tel que représenté à l'écran avec beaucoup de polygones (à gauche) et le personnage tel que vu pour les tests de collisions (à droite).
Ici on pourrait doubler le nombre de polygones affichés pour le personnage (histoire d'avoir un rendu 'plus beau'), ça ne changerait rien aux calculs effectués pour les collisions (et inversement). Donc les deux ne sont pas corrélés.
L'image est tirée de cet excellent article à propos du moteur réseau de Valve. Même si l'aspect réseau d'un FPS est très différent de celui d'un MMORPG, certaines bases sont communes et je ne peux que te conseiller de le lire attentivement.
Petite question en passant,
On voit que le personnage simplifie est constitue de plusieurs OBB.
Quel est le genre d'algorithme qui permet a partir d'un modele de decouper en plusieurs sous formes physiques de "manieres intelligentes".
Merci
Je pense je ne pas me tromper : les positions des polygones ne sont pas envoyé entre le serveur est le client, c'est juste une position relative au personnage, suivant la complexité du personnage on peut en envoyer plus
par exemple dans un jeu tu affiche une boule : et ben seul le centre de la boule est envoyé, et aussi bien sur le type de l'objet, le client en sachant la position de la boule, + son type (la boule fait x de rayon ect) peut ainsi l'afficher
après je dit ça mais je n'ais jamais dévelopé de jeu en reseau, peut etre qu'il existe d'autres methodes
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager