Unvanquished 0.55, enfin lĂ âŻ!
AprĂšs une longue attente la version 0.55 du jeu Unvanquished a Ă©tĂ© publiĂ©e le 20 octobre 2024. Deux mises Ă jour mineures se sont succĂ©dĂ©es le 3 novembre et le 15 dĂ©cembre pour peaufiner cette version, juste Ă temps pour ĂȘtre dĂ©posĂ©e sous le sapin de NoĂ«lâŻ!
Unvanquished est un jeu vidĂ©o libre et gratuit mĂȘlant stratĂ©gie en temps rĂ©el et actions Ă la premiĂšre personne dans un univers futuristique oĂč deux factions (humains, aliens) combattent pour leur survie.
Sâinscrivant dans la continuitĂ© de Tremulous (rĂ©vĂ©lĂ© en 2006) et basĂ© sur ce dernier, Unvanquished dĂ©veloppe cette expĂ©rience de jeu nerveuse et exigeante depuis 2013, en amĂ©liorant continuellement le moteur et explorant des variantes et ajustements de jouabilitĂ©.
Laisse-moi goĂ»ter Ă cette versionâŻ!
- lien ná” 1 : Unvanquished 0.55: Awesomeness has arrived
- lien ná” 2 : Unvanquished 0.55.1, letâs polish it!
- lien ná” 3 : Unvanquished 0.55.2: bots in the sky
- lien ná” 4 : Des nouvelles de Unvanquished
- lien ná” 5 : Unvanquished, 10 ans et Invaincu
Sommaire
- Gameplay
- Bots
- Interface utilisateur
- Traductions
- Nouveaux visuels
- Fichier dâentitĂ©
- Le futur est lumineux
- Corrections du moteur de rendu
- Performance améliorées
- Bien entendu que ça fait tourner UnvanquishedâŻ!
- Nouveaux joujoux
- Ă venir
- Il est temps de jouerâŻ!
Cette version avait été promise dans le dernier article Des nouvelles de Unvanquished, et 10 mois aprÚs la version 0.54, voici la version 0.55.
Pendant cette annĂ©e 2024, le jeu a fait lâobjet dâun dĂ©veloppement soutenu et vu lâarrivĂ©e de nouveaux contributeurs.
Gameplay
- La portĂ©e du «âŻrocket podâŻÂ» a Ă©tĂ© rĂ©duite: 2000qu â 1300qu (62m â 40m).
- Il nâest plus possible de dĂ©sĂ©voluer vers la mĂȘme classe, ce qui permettait de recharger ses projectiles sans attendre.
Bots
- Les bots aliens savent désormais éteindre les bases en feu.
- Ils peuvent aussi utiliser le granger avancé pour atteindre des plate-formes élevées et y construire.
- Les classes sachant marcher sur les murs le font de maniĂšre plus fiable, et le saut de mur du maraudeur est plus prĂ©cis lorsquâil escalade des murs.
Dâautres amĂ©liorations sont plus subtiles, les bots peuvent naviguer dans les cartes de façon plus efficace depuis que la taille des tuiles du maillage de navigation est configurable. Les mappers (ceux qui crĂ©ent ou modifient des cartes) peuvent aussi configurer dâautres aspects de la navigation.
Un déséquilibre qui rendait les bots aliens moins bons que les bots humains a été retravaillé.
La navigation dans la carte perseus a Ă©tĂ© amĂ©liorĂ©e. Câest un des patchs de la mise Ă jour mineure 0.55.1, câĂ©tait dĂ©jĂ prĂȘt pour la 0.55 mais avait Ă©tĂ© oubliĂ© (oupsâŻ!).
La 0.55.2 a donné aux bots la capacité de voler et la capacité de danser autour des ravins sans tomber.
Interface utilisateur
Il est dĂ©sormais possible de se dĂ©placer et dâutiliser certaines touches dâaction alors que certains menus circulaires sont ouvertsâŻ: Ă©volution, construction, balises (beacons). Cela permet dâouvrir le menu de construction en tant que granger avancĂ© sans tomber. On peut aussi Ă©voluer tout en courant ou en sautant, etc.
Les nouveaux menus avec les options de réticules.
Traductions
La version 0.55 est la premiĂšre version majeure dâUnvanquished Ă distribuer de nouveau des traductionsâŻ! Nous avions dĂ©jĂ distribuĂ© quelques traductions avec la version de correction 0.54.1, elles Ă©taient en quelques sorte en prĂ©visualisation. Cette version apporte les traductions pour le Français, lâAllemand, lâItalien, lâEspagnol, le Finlandais, deux variantes de Portugais, et trois variantes de Chinois.
Dans les premiers jours dâUnvanquished nous avions des traductions, mais il y a longtemps nous avons changĂ© la technologie utilisĂ©e pour implĂ©menter lâinterface utilisateur et la prise en charge des traductions a dĂ» ĂȘtre rĂ©implĂ©mentĂ©e. Les voici de retour et nous sommes heureux de vous les distribuer de nouveau. Pour contribuer plus de traductions et les affiner, le mieux est de le faire sur Weblate.
Nouveaux visuels
De nouveaux modĂšles sont lĂ âŻ: la «âŻpainsawâŻÂ» dâAlex Tikkoiev et le Chaingun dâextreazz. Ils ont Ă©tĂ© intĂ©grĂ©s au jeu par Ishq. Cela semble simple Ă faire mais nous nâavons pas de modeleur ni dâanimateur actif et cela nous freine beaucoup, vous pouvez nous rejoindre.
Le nouveau chaingun dâextreazz.
La painsaw produit désormais des étincelles quand elle impacte des surfaces dures, agissant comme le Grand Communicateur de vos désirs de disperser des tripes extra-terrestres.
La nouvelle painsaw dâAlex Tikkoiev.
Il y a dix ans nous avons reçu une fonctionnalitĂ© bien sympathique appelĂ©e particules douces (soft particles). Cela empĂȘche certains effets comme le brouillard ou les nuages dâacides dâĂȘtre affichĂ©s de maniĂšre disgracieuse lorsquâils touchent des murs. Initialement lâeffet nâĂ©tait configurĂ© que pour une poignĂ©e de shaders. Rapidement des programmeurs paresseux se sont ditsâŻ: «âŻconfigurer les shaders est ennuyeux, et si nous activions la fonctionnalitĂ© pour toutes les particulesâŻ?âŻÂ». Malheureusement, cela rend certaines particules invisibles, spĂ©cialement les effets dâimpacts qui sont trĂšs proches de murs ou de sols. Apparemment personne nâa remarquĂ© ça pendant 9 ans, jusquâĂ ce que nous retournions Ă la configuration manuelle de shaders Ă cause de changements architecturaux liĂ©s Ă autosprite2
. AprĂšs une revue mĂ©ticuleuse de tous les systĂšmes de particules du jeu, nous avons corrigĂ©, retirĂ© ou amĂ©liorĂ© certains effets graphiques. Par exemple le souffle du canon lucifer produit dĂ©sormais une onde de choc, causant une distorsion visuelle. Un tel effet Ă©tait dĂ©jĂ prĂ©sent dans les donnĂ©es, mais il ne fonctionnait pas Ă cause dâun problĂšme de tri des shaders. Le tir secondaire produit aussi un flash violacĂ© Ă lâimpact, effet qui Ă©tait souvent invisible Ă cause des particules douces automatiques.
Le nouvel effet de soin de la médistation.
Reaper a repensĂ© lâeffet de soin de la medistation et lâa rendue plus transparente, pour que les joueurs en cours de soin puissent voir Ă travers.
Sweet a ajoutĂ© un nouvel effet visuel au champ de force de la carte plat23. Cela utilise lâeffet de mirage de chaleur (heat haze) qui Ă©tait initialement conçu pour les armes et les effets de feu, mais il se trouve que ça peut Ă©galement produire des effets trĂšs sympathiques dans les cartes. Nous remercions Masmblr pour la maniĂšre dont il nous fait avancer en dĂ©montrant dans ses propres cartes communautaires comment il est possible dâexploiter de façon crĂ©ative et nouvelle des fonctionnalitĂ©s que nous proposons dĂ©jĂ âŻ!
Fichier dâentitĂ©
Le moteur prend dĂ©sormais en charge les fichiers dâentitĂ©. Cela est particuliĂšrement utile pour les cartes (niveaux de jeu) sans source (il y en a des centainesâŻ!). Un fichier dâentitĂ© permet certaines personnalisations de comment certaines entitĂ©s fonctionnent (portes, ascenseurs, tĂ©lĂ©porteursâŠ). Il est possible dâextraire une description dâentitĂ©s avec q3map2
et le fichier extrait peut ĂȘtre Ă©ditĂ© avec un Ă©diteur de texte et lu par le moteur lorsquâil charge une carte. Le fichier dâentitĂ© peut aussi ĂȘtre utilisĂ© pour modifier comment la lumiĂšre dâune carte sera appliquĂ©e (il est possible dây renseigner des variables qui configurent le moteur de rendu pour cette carte).
Le futur est lumineux
Une vidéo démontrant la compatibilité des lumiÚres de diverses cartes historiques (voir la vidéo complÚte).
Un effort aux long cours est fait pour que le moteur affiche de meilleures lumiĂšres en jeu. Les investigations ont commencĂ© Ă livrer des rĂ©sultats significatifs en 2020 avec lâaffinage du procĂ©dĂ© de compilation des lumiĂšres. Cet effort est multi-facettes et touche Ă de multiples aspects de la chaĂźne de production et de rendu. Ces derniĂšres annĂ©es, Illwieckz sâest assurĂ© que diffĂ©rents types dâĂ©clairage soient pris en charge. LâĂ©clairage par vertex (vertex lighting) a Ă©tĂ© ajoutĂ© en plus de lâĂ©clairage par grille (grid lighting) et de lâĂ©clairage par texture (lightmap). Ainsi les cartes qui mĂ©langent Ă©clairage par vertex et Ă©clairage par texture sont dĂ©sormais correctement affichĂ©es. Illwieckz a aussi dĂ©bugguĂ© les styles de lumiĂšres, une sorte de lumiĂšre dynamique prĂ©-calculĂ©e qui fusionne plusieurs textures de lumiĂšre (lightmap) au moment du rendu.
Comparaison entre l'ancien suréclairage (à gauche) et le nouveau suréclairage (à droite). Comparer avec un curseur.
AprĂšs cela Illwieckz a rĂ©implĂ©mentĂ© le mĂ©canisme de surĂ©clairage (overbright) pour Ă©viter la troncature des lumiĂšres (light clamping). Il se trouve que le moteur de rendu de Quake 3 souffrait dâune limitation qui attĂ©nuait les lumiĂšres autant quâil les Ă©claircissait⊠Le nouveau code non-buggĂ© est dĂ©sormais activĂ© par dĂ©faut. Cela a suscitĂ© des dĂ©bats puisque comme le moteur id Tech 3 avait un surĂ©clairage buggĂ© depuis plus de 20 ans, utiliser un moteur de rendu non-buggĂ© peut rĂ©vĂ©ler des bugs que les crĂ©ateurs de niveaux nâont jamais vu avant, et il Ă©tait mĂȘme possible dâintroduire des bugs dans certains logiciels de production sans que les gens ne sâen rendent compte ! Certaines personnes peuvent argumenter que lâaffichage buggĂ© est la façon dont le crĂ©ateur du niveau sâattend Ă ce que son niveau soit vu⊠Cette histoire va si loin que cela mĂ©riterait un article dĂ©diĂ©âŻ!
La prochaine Ă©tape sur ce chemin vers un meilleur Ă©clairage sera de faire de la colorimĂ©trie correctement et de faire de la fusion linĂ©aire de lumiĂšre (quelque chose quâid Tech 3 nâa jamais fait), mais cette tĂąche est pour le futur.
Corrections du moteur de rendu
Une vidéo montrant la récursion de miroirs et de portails et leur fusion (voir la vidéo complÚte).
-
SpritesâŻ: Les surfaces utilisant le mot clĂ© de shader
autosprite2
sont correctement affichĂ©es, câest parfois utilisĂ© pour afficher des effets de symĂ©trie axiale, par exemple pour une flamme de bougie. Ce travail a Ă©tĂ© rĂ©alisĂ© par Slipher. - Portails et miroirsâŻ: Reaper a terminĂ© lâimplĂ©mentation de la rĂ©cursion de portail et de miroir, a implĂ©mentĂ© la fusion de portails et la fusion alphaGen (une technique qui permet dâobscurcir un portail selon la distance Ă celui-ci), et a rendu possible dâavoir des portails mobiles. Il a corrigĂ© la rotation de portail ainsi que des bugs de portails liĂ©s aux lumiĂšres, et sâest assurĂ© que du creep extra-terrestre de taille 10 millions de fois la taille de lâunivers observable nâapparaissent pas dans les portailsâŠ
- VidĂ©oâŻ: Nous pouvons Ă nouveau jouer des vidĂ©os sur les surfaces. Avec le temps le code sâĂ©tait gĂątĂ© (rotten code), Ă©tait devenu cassĂ© et avait mĂȘme Ă©tĂ© enlevĂ© tandis quâil Ă©tait cassĂ©. Il fut ressuscitĂ© et a fait lâobjet dâune profonde rĂ©Ă©criture par Slipher, et la fonctionnalitĂ© fonctionne de nouveau â et mĂȘme mieux quâavant (avec moins de limites arbitraires)âŻ! Cette nouvelle implĂ©mentation Ă©tait dĂ©jĂ visible dans la version 0.54.1, la voici dĂ©sormais dans une version majeure. Le seul format pris en charge est lâantique format RoQ utilisĂ© par Quake 3 qui, par mesure de compatibilitĂ© avec les donnĂ©es de jeu existantes, est le codec que nous devons prendre en charge avant tout autre codec. Nous ne fermons pas la porte au fait de prendre en charge dâautres codecs, mais pour cela il faudrait que la fonctionnalitĂ© soit utilisĂ©e plus souvent pour justifier cet effort supplĂ©mentaire.
- BrouillardâŻ: Reaper a corrigĂ© lâeffet de brouillard, qui Ă©tait cassĂ© dans la version 0.45. OupsâŻ!
- LumiĂšresâŻ: Les lumiĂšres dynamiques sont dĂ©sormais moins pixelisĂ©es, quand bien mĂȘme ce problĂšme nâest pas encore complĂštement corrigĂ©.
- PBRâŻ: La prise en charge de textures prĂ©tendues «âŻbasĂ©es sur la physiqueâŻÂ» est dĂ©sormais dans un Ă©tat viable grĂące Ă Ishq (plus dâartefacts noirs). Câest dĂ©jĂ utilisĂ© avec un nouveau modĂšle de chaingun. Pour le rendre bon, nous avons besoin de le faire fonctionner avec les rĂ©flexions spĂ©culaires (rĂ©flexions statiques).
Une vidéo montrant la lecture de vidéo sur les surfaces du jeu (voir la vidéo complÚte).
En corrigeant le shader autosprite2
, la fusion de portails et la lecture de vidĂ©os, nous avons corrigĂ© 3 rĂ©gressions du moteur original de Quake 3 et qui Ă©taient liĂ©es Ă la prise en charge de format de fichiers anciens et de techniques tout aussi anciennes. Parce que notre moteur de rendu nâest plus celui de Quake 3, corriger certaines de ces rĂ©gressions requiert parfois dâĂ©crire du code neuf plutĂŽt que de corriger un code existant, et câest exactement ce qui sâest produit pour les portails.
Performance améliorées
Unvanquished 0.55.2 a Ă©tĂ© publiĂ©e pour NoĂ«lâŻ!
Le moteur et le jeu sont plus rapides que jamaisâŻ!
- Simplification du cielâŻ: Reaper a purifiĂ© par le feu le code de rendu du ciel qui Ă©tait archaĂŻque et⊠étrange. Ce code pouvait gĂ©nĂ©rer plus de 1000 triangles par trame rien que pour dessiner le ciel. Une skybox nâa pas besoin dâune gĂ©omĂ©trie aussi fine, elle est simplement modĂ©lisĂ©e comme lâintĂ©rieur dâun cube. En plus le code faisait des allers-retours mĂ©moire entre la mĂ©moire principale et la mĂ©moire graphique⊠đ€Šââïžïž Nous dessinons donc le ciel maintenant avec seulement 12 triangles. Inutile de dire que les performances sont significativement amĂ©liorĂ©es, et ça aurait toujours dĂ» ĂȘtre comme ça.
- CullingâŻ: Il sâagit du procĂ©dĂ© qui Ă©lague les surfaces non-visibles pour Ă©viter de les dessiner. Illwieckz a optimisĂ© lâimplĂ©mentation gĂ©nĂ©rique pour processeur central (CPU), Slipher a ciselĂ© Ă la main un code SSE pour les processeurs x86, et Reaper a permis dâutiliser la carte graphique (GPU) quand le pilote et le matĂ©riel sont compatibles.
- RĂ©duction des dĂ©lais IPC par du traitement par lots et de la mise en cacheâŻ: Ces travaux accĂ©lĂšrent des choses comme les particules, les marques dâimpact, et les ombres. Illwieckz a rĂ©duit le temps dâattente pour ces communications interprocessus en ajoutant des alternatives Ă nos interfaces de programmation (API) qui fonctionnent par lot. LâIPC est comme un service postal qui transporte les messages entre le processus du jeu Unvanquished et le moteur DĂŠmon. Pour un facteur, lâimportant nâest pas le nombre de pages que vous Ă©crivez mais le nombre dâenveloppes Ă livrer. Vous pouvez donc allĂ©ger sa charge de travail en mettant toutes vos lettres dans une seule grande enveloppe. Pour un cas dâutilisation (dĂ©jĂ livrĂ©e dans la version 0.54.1), Slipher a implĂ©mentĂ© une mise en cache cĂŽtĂ© code de jeu. Pour filer la mĂ©taphore, il nâest pas nĂ©cessaire de rĂ©-envoyer le mĂȘme courrier si le contenu est dĂ©jĂ connu. Sur du matĂ©riel actuel, ces optimisations peuvent augmenter le taux de trame (framerate) de plusieurs centaines de FPS quand il y a de nombreuses particules et autres choses de ce genre Ă lâĂ©cran (spam de grenade incendiaires, par exempleâŻ!).
- Code de vertex flottant plus rapideâŻ: LâimplĂ©mentation de vertex plein-flottant Ă©crite par Slipher pour Ă©tendre la compatibilitĂ© Ă du matĂ©riel plus ancien ou de plus basse gamme qui ne prennent pas en charge les demi-flottants a aussi doublĂ© le taux de rafraĂŻchissement sur du matĂ©riel qui fonctionnait dĂ©jĂ âŻ! La rĂ©Ă©criture a aussi apportĂ© de menues optimisations dans le code de modĂšles.
- Placage de reliefâŻ: Reaper a corrigĂ© un bug dans le code des cartes de relief (relief mapping), ce qui a dĂ©bloquĂ© quelques centaines de FPS sur des cartes graphiques de gĂ©nĂ©ration actuelle.
-
Usage mĂ©moire des imagesâŻ: Illwieckz a implĂ©mentĂ© le mĂ©canisme
fitScreen
pour les textures dâinterfaces utilisateurâŻ: câest une alternative Ă lâantique implĂ©mentationnoPicMip
de Quake 3âŻ:noPicMip
instruisait le moteur de ne jamais rĂ©duire la taille dâune image,fitScreen
sâassure quâelle soit rĂ©duite dâune façon quâelle ne devienne jamais plus large que lâĂ©cran. Par exemple une capture dâĂ©cran dâune carte (niveau) utilisĂ©e dans la liste des cartes et au chargement dâune carte ne sera plus jamais chargĂ©e en pleine rĂ©solution dans la mĂ©moire graphique si elle doit ĂȘtre affichĂ©e sur un Ă©cran640Ă480
(pour donner un exemple extrĂȘme)⊠CombinĂ© avec le mĂ©canismer_maxImageDimension
que nous avons ajoutĂ© en version 0.52 pour les textures qui ne sont pas utilisĂ©es pour les interfaces utilisateurs comme alternative Ăr_picmip
, ce nouveau mĂ©canisme donne au jeu une empreinte mĂ©moire en VRAM trĂšs trĂšs faible quand on utilise un Ă©cran avec une rĂ©solution toute petite. - Plus de prĂ©-calculâŻ: De nombreuses dĂ©cisions Ă©taient prĂ©alablement prises Ă chaque trame en rendant telle ou telle surface, Illwieckz sâest assurĂ© que ces dĂ©cisions soient dĂ©sormais prises une fois pour toute lorsque le shader est parsĂ©. Ce que nous appelons «âŻshaderâŻÂ» ici est un format de dĂ©finition de matĂ©riaux utilisĂ© par id Tech 3 et ses dĂ©rivĂ©s, ainsi que de nombreux outils dâĂ©dition de cartes. Ne pas confondre avec un «âŻshader GLSLâŻÂ» qui est un programme exĂ©cutĂ© sur la carte graphique.
- SSAOâŻ: Le shader GLSL SSAO (Screen Space Ambient Occlusion) a Ă©tĂ© rendu un peu plus rapide par Reaper.
Le moteur et le jeu ont Ă©tĂ© profilĂ©s intensivement par Illwieckz en utilisant Orbit. Cet effort a permis dâidentifier des goulots dâĂ©tranglement (bottleneck) et du code non-optimal. Au final cela nous a aidĂ© Ă implĂ©menter de nombreuses optimisations Ă de nombreux endroits dans le code.
Le chargement de carte a aussi Ă©tĂ© amĂ©liorĂ© de plusieurs façonsâŻ:
- Le moteur ne calcule plus la somme de contrĂŽle des images CRN au chargement.
- Le moteur ne compile plus certains shaders GLSL qui sont détectés comme inutilisés.
- De la mĂȘme façon nous avons rĂ©duit le nombre de permutations de shader GLSL Ă compiler.
- Les joueurs qui aiment jouer seul apprĂ©cieront notre gĂ©nĂ©ration «âŻmultithreadâŻÂ» de maillage de navigation de bot (bot navigation mesh), grĂące Ă Ishq et Slipher. Cela fait partie de la phase de chargement lorsque vous jouez une carte pour la premiĂšre fois dans un jeu local. Cette gĂ©nĂ©ration nâutilisait avant quâun seul fil dâexĂ©cution (thread), dĂ©sormais toute la puissante de votre processeur est exploitĂ©e en mettant tous les cĆurs Ă contribution. Les hĂ©bergeurs de serveurs peuvent Ă©galement en profiter et peuvent configurer cette fonctionnalitĂ© avec la variable
g_bot_navgenMaxThreads
(utiliser moins de fils utilise moins de mĂ©moire, ce qui peut ĂȘtre prĂ©fĂ©rĂ© sur certains serveurs).
Il y a aussi tout un ensemble de choses qui nâont pas de lien avec le moteur de rendu qui rendent le jeu plus rapideâŻ:
- Le prĂ©rĂ©glage «âŻle plus basâŻÂ» (lowest) pour les appareils de trĂšs bas de gamme a Ă©tĂ© optimisĂ© encore plus.
- Nous distribuons des modĂšles optionnels en faible qualitĂ© â pour le moment seulement pour les constructions, avec la seule diffĂ©rence que ces modĂšles ont moins dâarticulations. Cela permet de traiter lâanimation de ces modĂšles sur des GPUs plus bas de gamme (au lieu de basculer sur le code CPUs quand le GPU est trop bas de gamme).
- Il a Ă©tĂ© dĂ©couvert que certaines variables de configuration (cvar) Ă©taient utilisĂ©es par le code de jeu pour envoyer des informations Ă lâinterface du code du jeu dans le but de les afficher Ă lâĂ©cran. Cela signifie que le jeu sâenvoyait une lettre Ă lui-mĂȘme Ă travers le moteur Ă chaque trame⊠En fait cela demandait mĂȘme deux lettresâŻ: une pour envoyer la donnĂ©e au moteur, une pour la rĂ©cupĂ©rer depuis le moteur, tout ça pour une donnĂ©e dĂ©jĂ connueâŻ! Cette horreur a Ă©tĂ© atomisĂ©e avec un prĂ©judice extrĂȘme.
- LâaccĂšs Ă une cvar de jeu par son nom depuis le jeu utilise dĂ©sormais un cache local, rĂ©duisant encore le nombre de messages que le jeu et le moteur doivent Ă©changer, accĂ©lĂ©rant de beaucoup lâinterface utilisateur.
Ceux qui aiment faire tourner des benchmarks seront heureux dâapprendre que le taux de trame de la fonctionnalitĂ© timedemo
nâest plus plafonnĂ© Ă 999âŻfps.
De plus, lâinterface Curses peut dĂ©sormais afficher les FPS.
Bien entendu que ça fait tourner UnvanquishedâŻ!
Toujours du cĂŽtĂ© du moteur de rendu, lâexigence minimale est dĂ©sormais OpenGL 2.1 sans extension spĂ©ciale. Cela signifie que le matĂ©riel le plus limitĂ© qui puisse faire tourner Unvanquished inclue les ATI R300, les Intel GMA 3 et 4 (sous Linux) et les Nvidia NV40. Parfois mĂȘme un OpenGL 2.1 incomplet pourrait suffireâŻ!
Votre carte graphique est prise en charge. Si cela ne fonctionne pas alors quâelle est censĂ©e prendre en charge OpenGL 2.1 (ou plus), câest trĂšs probablement un bug de pilote.
Par exemple mĂȘme le VC4 du Raspberry Pi 3B+ peut soutenir 60âŻfps avec la prĂ©configuration la plus basse (lowest) et une rĂ©solution faible. Cependant le pilote a encore besoin dâĂȘtre amĂ©liorĂ© pour ĂȘtre compatible avec tous les niveaux jouables.
Un Raspberry Pi 3B+ dessinant la carte plat23 Ă 60 fps avec le prĂ©rĂ©glage « le plus bas »âŠ
Jouer Ă Unvanquished sur un RPI3 nâest vraiment pas recommandĂ© (la mĂ©moire vive disponible sera aussi trĂšs limitante), mais si un RPI3 arrive Ă tenir le rang, câest que le jeu tourne sur vraiment nâimporte quoi, y compris sur un topinambour (parce que mĂȘme une patate ça serait du luxe đ€ïž).
Voici quelques optimisations qui ont Ă©tĂ© faites pour Ă©tendre la compatibilitĂ© du moteurâŻ:
- Lâextension
GL_ARB_half_float_vertex
nâest plus requise. Cela sâajoute au fait que lâextensionGL_ARB_framebuffer_object
nâest plus non-plus requise depuis la version 0.54 pour ĂȘtre compatible avec plus de matĂ©riel. La rĂ©Ă©criture faite par Slipher pour prendre en charge Ă la fois les vertex demi-flottants ou les vertex plein-flottants a mĂȘme amĂ©liorĂ© les performances du moteur (code plus concis, code plus performant, et qui permet plus de chose⊠tout ça Ă la fois)âŻ! - Les textures 3D ne sont plus requises. Câest quelque chose qui est obligatoire en OpenGL 2.1, mais le moteur peut faire sans lorsque lâimplĂ©mentation est incomplĂšte. De telles implĂ©mentations incomplĂštes peuvent ĂȘtre trouvĂ©es avec certaines puces graphiques embarquĂ©es conçues pour OpenGL ES, et Mesa se permet de fournir «âŻautant quâil peutâŻÂ» dâOpenGL pour faire fonctionner les compositeur de bureau. Le moteur DĂŠmon sait dĂ©sormais se satisfaire lui-aussi dâune telle implĂ©mentation incomplĂšte.
- Une collection de codes de dĂ©tection a Ă©tĂ© implĂ©mentĂ©e pour identifier des pilotes buggĂ©s ou lent, ainsi que des matĂ©riels lents. Quand câest possible, un code moins buggĂ© ou plus rapide est activĂ© lors de lâexĂ©cution. Par exemple lors de ce cycle de dĂ©veloppement nous avons mis le pied dans ce que les dĂ©veloppeurs Intel caractĂ©risent comme un dĂ©faut matĂ©riel de lâarchitecture Iris (lâactuelleâŠ), et ont suggĂ©rĂ© un contournement qui limite les dĂ©fauts visuels la plupart du temps. Il y a quelques annĂ©es nous avions identifiĂ© que le dernier pilote Nvidia pour toute une gĂ©nĂ©ration de carte donnĂ©e ment sur la prĂ©sence dâune extension, et plante si on tente de sâen servir, et ne sera jamais mis Ă jour⊠donc depuis un moment dĂ©jĂ on le dĂ©tecte pour corriger ses prĂ©tentions. Il y a aussi une gĂ©nĂ©ration de vieilles cartes ATI qui sont plus rapides en flottants quâen demi-flottant (la prise en charge annoncĂ©e par le pilote est trĂšs probablement une Ă©mulation pour permettre de faire fonctionner dâautres logiciels qui nâont pas dâimplĂ©mentation alternative), donc on dĂ©tecte et on utilise le code le plus adaptĂ© Ă cette architecture. Il y a dâautres types de contournements mais ces trois-lĂ sont reprĂ©sentatifs. Nous avions dĂ©jĂ quelques-uns de ces contournements implĂ©mentĂ©s (comme celui pour certaines Nvidia), mais dĂ©sormais nous avons un procĂ©dĂ© standardisĂ© pour implĂ©menter de tels contournements et pour pouvoir les dĂ©sactiver (pour que les fabricants de matĂ©riel et/ou dĂ©veloppeurs de pilotes puissent reproduire les bugs, par exemple).
Bien sĂ»r toutes les amĂ©liorations de la vitesse dâexĂ©cution ont Ă©tendu la compatibilitĂ© en transformant des Ă©quipements «âŻcapable de faire le renduâŻÂ» en «âŻquelque chose avec lequel on peut jouerâŻÂ».
Nous avons aussi ajoutĂ© la possibilitĂ© de compiler et exĂ©cuter un moteur DĂŠmon natif sur FreeBSD. Les binaires NaCl exĂ©cutĂ©s dans le bac Ă sable tournent toujours dans le mode de compatibilitĂ© Linux, mais le moteur peut dĂ©sormais ĂȘtre natif FreeBSD. Une telle astuce doit probablement ĂȘtre utilisable sur dâautres systĂšmes qui ont une compatibilitĂ© Linux intĂ©grĂ©e (NetBSD par exemple, mais nous nâavons pas testĂ©), en utilisant un binaire natif pour le moteur et la compatibilitĂ© Linux pour la machine virtuelle du code du jeu.
Un point que nous aimerions amĂ©liorer dans le futur au niveau du moteur est lâutilisation mĂ©moire.
Nouveaux joujoux
Remarquez les reflets sur les tuyauxâŻ!
Placage de reflet (trĂšs expĂ©rimental)âŻ: Tandis que notre moteur de rendu progresse, les reflets statiques qui Ă©taient complĂštement cassĂ©s sont dĂ©sormais en meilleur Ă©tat. Une fois activĂ©s, vous pourrez apercevoir votre environnement dans les matĂ©riaux rĂ©flĂ©chissants, comme des tuyaux mĂ©talliques, des plastiques brillants, et des surfaces excessivement polies⊠Puisque cela est statique, seule la gĂ©omĂ©trie stationnaire de la carte est pour le moment reflĂ©tĂ©e, bien que cela soit suffisamment subtil pour que les diffĂ©rences ne soient pas trop Ă©videntes, surtout au beau milieu de lâaction. En outre, les donnĂ©es de reflets sont enregistrĂ©es et chargĂ©es depuis le disque quand vous activez la mise en cache dans les options. Le code du moteur en charge de sĂ©lectionner les reflets pour chaque surface a aussi Ă©tĂ© amĂ©liorĂ©, apportant des reflets plus corrects et de grandes amĂ©liorations de performance.
SystĂšme de matĂ©riaux (trĂšs expĂ©rimental)âŻ: Une autre Ă©tape vers la modernisation du moteur est lâajout dâun systĂšme de matĂ©riaux. Lorsque le matĂ©riel et les pilotes sont compatibles, cela dĂ©place de nombreuses tĂąches de rendu depuis le CPU vers le GPU, produisant ainsi un flux de travail centrĂ© sur le GPU. Bien que cela ajoute un peu plus de travail au GPU, cela Ă©limine une forte pression mise sur le CPU, ainsi que de nombreux aller-retours entre le moteur et le pilote et entre le CPU et le GPU. Sur les cartes les plus exigeantes pour le CPU (en particulier celles avec un âvisâ mauvais, le vis est une reprĂ©sentation de la carte gĂ©nĂ©rĂ©e par le compilateur de carte qui dĂ©termine quelle partie devrait ĂȘtre visible selon le point de vue) cela peut doubler le taux de trame comparĂ© au moteur de base. Ce systĂšme est encore incomplet et de nombreuses amĂ©liorations sont Ă venir.
Reaper est celui qui se cache derriÚre la réalisation de ces chantiers impressionnants.
Pour pouvoir en profiter il vous sera nĂ©cessaire dâavoir OpenGL 4.6 et (en plus) lâextension GL_ARB_bindless_texture
. Il reste cependant des problĂšmes avec certains matĂ©riels et pilotesâŻ: tout devrait fonctionner avec Nvidia, le systĂšme de matĂ©riaux et le «âŻfrustum cullingâŻÂ» devraient fonctionner avec Mesa (radeonsi pour AMD, etc.) quand la derniĂšre version de Mesa est utilisĂ©e (lâ «âŻocclusion cullingâŻÂ» ne fonctionne pas encore et pourrait planter avec un Mesa qui ne vient pas de la branche de dĂ©veloppement main
âŠ). Cela ne fonctionne pas avec le pilote propriĂ©taire AMD Ă cause de bugs. Des contournements pour ces problĂšmes sont planifiĂ©s, mais tous nâont pas Ă©tĂ© implĂ©mentĂ©s Ă temps pour la sortie de cette version.
Ă venir
Parmis les dĂ©veloppements qui sont dĂ©jĂ testables sur certains serveurs et qui seront disponibles dans la prochaine version, il y a le mode «âŻvampireâŻÂ», qui est un mode alternatif de gestion des ressourcesâŻ: plutĂŽt que de miner du point de construction, chaque Ă©quipe se voit dotĂ©e dâun lot dĂ©terminĂ© de points en dĂ©but de partie et lorsquâune Ă©quipe dĂ©truit une construction adverse elle sâapproprie les points de construction associĂ©es. Ce mode «âŻvampireâŻÂ» est Ă©valuĂ© comme une solution potentielle au problĂšme de certaines parties qui sont trop longues ou semblent bloquĂ©es avec des Ă©quipes trop bien fortifiĂ©es de chaque cĂŽtĂ©. Ce mode de jeu peut ĂȘtre testĂ© en avant-premiĂšre sur des serveurs comme Map&Bot Testing, Der Bunker, ou Bug Squash Central.
Il est temps de jouerâŻ!
Le jeu Unvanquished se tĂ©lĂ©charge ici et les parties en cours sont listĂ©es iciâŻ!
Commentaires : voir le flux Atom ouvrir dans le navigateur