Au commencement, lorsque l’on fait sa première carte, généralement, il existe deux sortes de finalités :
- on la termine mais elle est pour ainsi dire complètement à chier.
- on ne la termine pas mais on acquiert en revanche une expérience non négligeable pour la suite.
Me concernant, ça a été la seconde possibilité qui a dirigé mon mapping. Et plutôt deux fois qu’une. J’ai donc d’abord travaillé sur deux cartes qui n’ont jamais vu le jour, avant de sortir une première map qui n’était certes pas extraordinaire, mais quand même parfaitement jouable.
Cette façon de progresser m’a très vite permis d’en apprendre beaucoup sur le mapping et les difficultés à réaliser ce que l’on souhaite, dans les limites du moteur de half-life... Sans que ça rame quoi. Et ce constat était encore plus d’actualité lorsque j’ai commencé à mapper... Il y aura bientôt 5 ans.
Pourquoi est-ce que je vous parle de tout ça? Et bien tout simplement parce que lorsque l’on souhaite faire une belle carte, qui affiche un maximum de détails, tout en évitant que cela rame, on s’intéresse très vite à l’optimisation. Un bien grand mot qui permet de découvrir moult techniques permettant de réduire les r_speeds et donc d’augmenter les FPS. Oulà, je commence peut être à parler chinois pour certains. Qu’est ce que c’est que ces r_speeds?
Bon et bien les r_speeds correspondent à une commande que l’on active via la console, et qui permet de connaître le nombre de polygones calculés à l’écran (et non pas affichés), qu’il s’agisse de polygones de murs (world polygons ou wpolys) ou de polygones de modèles (entities polygons ou epolys). Voici quelques images qui vous aideront à visualiser de quoi je parle :
Après avoir tapé developer 1 & r_speeds 1 dans la console, on obtient donc cette ligne de code qui s’affiche en haut à gauche de votre écran (les deux premières images). La première valeur indique les FPS, la seconde le temps de latence par rapport au rafraîchissement de l’image, et les deux dernières valeurs sont les plus importantes. Les wpolys correspondent aux worlds polygons, c’est à dire les polygones des murs, sol, caisses, etc. C’est à dire tout ce qui compose les objets physiques. Les epolys correspondent quant à eux aux entity polygons, c’est à dire les polygones des armes, des joueurs et de certains modèles comme des arbres ou plantes :
Sur cette image, il y a 6 modèles : 3 modèles de plantes (2 juxtaposées au premier plan, et une au second plan), 2 modèles de squelettes, et le dernier, c’est vous et votre couteau (ce qui constitue un modèle à part entière). Si d’autres joueurs étaient présents sur l’image, il aurait fallu les additionner eux aussi, ainsi que les armes qu’ils utilisent. A chaque fois, on ajoute de nouveaux epolys... Bref, quand il y a une foule de modèles et de joueurs aux mêmes endroits, si votre PC ne suit pas, ça fait mal aux FPS.
Vous l’aurez compris, plus les epolys & wpolys sont élevés, et plus la carte risque d’être injouable. En gros, les r_speeds, par convention, ne doivent pas dépasser 650-700, surtout lors des phases de combats. Car c’est lors de ces phases de jeu que les epolys montent en flèche (à cause des présences des joueurs justement). Bref, un bon mappeur veillera à ne pas charger sa carte de détails dans les endroits où les joueurs se rencontrent, pour ainsi éviter que cela rame. Vous comprenez maintenant pourquoi, lorsque vous êtes nombreux sur une carte comme aztec, ça rame. Beaucoup de joueurs affichés en même temps et une carte non optimisée... Les r_speeds grimpent.
Pour continuer un peu sur les epolys, j’aimerai vous montrer la différence entre modèles et sprites. Un modèle, comme nous venons de le voir, est une entité volumétrique, c’est-à-dire en trois dimensions dans le jeu. A l’inverse, un sprite est une simple image, en 2D. Pour ceux qui s’en souviennent encore, les ennemis dans doom 1 et 2 étaient des sprites. C’est à dire des images fixes. Une fois à terre, peu importe l’angle de vue que vous aviez sur les cadavres de vos ennemis, ceux-ci vous apparaissaient toujours de la même manière. C’est quake 1 qui a révolutionné le "quake-like" justement, en introduisant des adversaires en 3D, et non plus en 2D. D’ailleurs Half-Life n’est rien d’autre que le moteur de quake 1 amélioré... Mais ça c’est une autre histoire. Voyons un peu mieux ce qu’est un sprite, et ensuite la différence entre un sprite et un modèle :
Sur cette double image, je fixe le sprite, et je tourne autour. Comme vous pouvez le voir, j’en ai toujours la même perception : il s’agit bien d’une image fixe.
Sur ce petit montage, on voit distinctement la différence entre un sprite et un modèle, avec à gauche leur représentation dans le jeu, et à droite leur représentation dans les logiciels qui permettent de les visualiser à part. Dans le cas du sprite on a bien une image, dans celui du modèle, un volume.
Bon après, ce petit discours vous devinez un peu mieux les quelques bases du mapping, les objets et difficultés qu’un mappeur doit apprendre à maîtriser. Et surtout, vous distinguez mieux les environnements dans lesquels vous évoluez.
Le nombre de polygones des joueurs étant impossible à modifier (on ne peut pas demander à tous les joueurs d’utiliser des High FPS models), la seule chose que l’on puisse faire contre les epolys c’est d’éviter d’ajouter trop de modèles dans les cartes. En revanche, les sprites ne prennent pas de ressources, mais ils sont clairement moins intéressants comparés aux possibilités d’un modèle (ben oui, c’est de la 2D).
Vous l’aurez compris, le gros du travail d’un mappeur se situe donc au niveau des worlds polygons, car c’est là le coeur même de la carte. Savoir optimiser son mapping prend alors toute son importance.
Et c’est en optimisant ses cartes que l’on utilise diverses techniques, qui peuvent ensuite être exploitées par ceux qui les connaissent en cours de partie...
Enfin!, vous vous dites, on arrive à la partie la plus intéressante de ce dossier.
Modifié le 17/04/2019 à 12:49
Pleins d’explications sur les maps, gg ccf
Modifié le 17/04/2019 à 12:49
Modifié le 17/04/2019 à 12:49
Modifié le 17/04/2019 à 12:49
Modifié le 17/04/2019 à 12:49
A noter que les screens ont été réalisées sur un PC tout pourri. Ici on a le droit à des screens avec 30 fps et des smokes toutes moches :s
Modifié le 17/04/2019 à 12:49
Modifié le 17/04/2019 à 12:49
Modifié le 17/04/2019 à 12:49
Modifié le 17/04/2019 à 12:49
Modifié le 17/04/2019 à 12:49