Aller au contenu
Bobmorane85

Reverse the Verse spécial OCS – Object Container Streaming

Recommended Posts

Objectif – Améliorer les performances de Star Citizen

Dans cette émission, Jared Huckaby reçoit Gordon McLean (Gameplay Programmer), Clive Johnson (Lead Network Programmer ) et Chris (Lead Technical QA), qui vont nous parler essentiellemetn de l’OCS (Object Container Streaming).

reverse-the-verse.jpg

A quoi sert l’object container streaming ?

Nous vous en avions donné une petite explication dans notre article concernant les optimisations importantes de Star Citizen. Et comme le soulignent dans ce Reverse the Verse, Gordon McLean et Clive Johnson, l’objectif principal était et reste toujours de rendre Star Citizen jouable sur de nombreux PC. La quantité monstre d’informations concernant les planètes et des systèmes serait difficilement gérable, en tout cas pas sans écrans de chargement. Et à ce propos, Chris Roberts et CIG ont toujours voulu dans la mesure du possible, un univers sans chargement. Comme quoi les ambitions ont vraiment augmenté depuis le début du développement du jeu, car il y a quelques années encore, nous étions très loin de pouvoir obtenir de telles promesses ; nous n’y pensions même pas d’ailleurs. Les planètes devaient arriver bien plus tard après la sortie du jeu et les devs réfléchissaient à comment procéder pour une entrée en atmosphère, s’il fallait une animation pré-calculé ou autre… Bref,  on l’oublie souvent, mais Star Citizen a gagné une sacré envergure par rapport à ce qui était prévu à la base. C’est ce que souligne également Corentin Billemont dans notre précédente interview et il faut rendre à César ce qui appartient à César, CIG a fait un excellent boulot.

Autre exemple, une planète comme ArcCorp n’était pas censé être visitable dans sa totalité, mais uniquement en survolant un couloir virtuel jusqu’à la zone d’atterrissage et point barre. Les développeurs ont réalisé un travail colossal pour nous permettre de passer d’un jeu avec écrans de chargement et sans pouvoir atterrir sur une planète avant très longtemps, à un jeu tel qu’il est déjà à ce jour  et qui n’a pas fini de nous émerveiller !

starcitizen-daymar-stanton.jpg

Crédit image : Mr Trash.

Mais retournons du côté de l’OCS…

Avec cette technologie serveur et client vont fonctionner de paire. Le serveur sait où le client (ordinateur du joueur) se trouve actuellement dans le jeu et charge donc les données dans sa mémoire. Lorsque le joueur arrive sur une zone, le serveur indique au client les données à diffuser. Lorsque le joueur quitte la zone, la mémoire du serveur est libérée pour permettre le chargement d’autres données.

Cette technologie existe en fait depuis quelques années et n’a pas attendu Star Citizen pour servir d’autres jeux vidéo, mais elle est plus couramment utilisée sur de plus petites maps dans des jeux multijoueurs ou en mode solo. Ainsi, le client peut charger toutes les données du serveur et il n’y a pas de rupture dans la fréquence d’images ou autres infos. En raison de la taille considérable de Star Citizen, des ajustements ont été nécessaires.

Donc une fois l’object container streaming mis en place, le framerate devrait être parfaitement optimal ?

Cela devrait apporter de meilleures performances certes, même si selon les dires de nos invités, ce n’est pas la panacée. Le client doit uniquement charger les données pertinentes dans son environnement et libérer la mémoire en conséquence, par exemple lorsque vous quittez une zone ou que d’autres joueurs quittent cette même zone.

Et pour charger ou décharger la mémoire, il faut principalement que le joueur se trouve à proximité de l’entrée/sortie d’une zone. Cela dépend également de la taille des objets/entités. Cette régulation est effectuée par le serveur.

Les variables sérialisées ou serialized variable

Concernant les variables sérialisées, celles-ci permettent aux différentes technologies de communiquer et de travailler ensemble plus efficacement. Elles permettent en outre de mettre à jour les données et de les envoyer au client uniquement s’il y a modification. Autrement dit, au lieu de charger à chaque fois l’univers, le serveur ne vous enverra que l’information de ce qui a été modifié ou qui a changé de place. Et là on y gagnera aussi pas mal en framerate.

Concernant les retours avec l’object container streaming

Selon les trois invités de Jared, Chris, Gordon McLean et Clive Johnson, les performances n’ont jusqu’à présent pas été aussi bonnes qu’espérées (on parle des attentes concernant l’OCS). Toute l’équipe d’assurance qualité en a fait l’expérience. Mais à l’heure actuelle, presque tous leurs collègues signalent une amélioration notable, voir une augmentation drastique des performances… Cela devrait continuer à s’améliorer petit à petit d’ici la sortie de la mise à jour Star Citizen Alpha 3.3, on leur souhaite en tout cas de réussir ce patch plus que tout autre.

Il n’y aura d’ailleurs pas plus de joueurs avec l’OCS côté client, mais uniquement avec l’OCS côté serveur. Pour ceux qui se poseraient la question, s’ils bossent d’abord sur l’OCS côté client, c’est parce qu’ils ont besoin des prérequis que l’on a déjà évoqué. Une fois disponibles, ils pourront envisager de terminer l’object container streaming côté serveur.

Selon les invités de Disco Lando et de manière générale, la version actuelle du build de la 3.3 peut être chargée plus rapidement et les stations spatiales comme Port Olisar avec tous les objets peuvent être chargées plus rapidement également.

Le plus grand défi dans le développement de l’OCS concernait le transfert de données asynchrone dans le réseau, mais pas seulement ; Gordon et Clive expliquent que la communication entre les nombreuses équipes affectées par OCS fut également compliquée. Pour l’équipe d’assurance qualité, le défi consiste à tester la dernière version sur autant d’ordinateurs que possible pour trouver autant de bugs que possible.

Les développeurs ajoutent que si le CPU et la mémoire graphique pourront bénéficier un petit peu de l’object container streaming, c’est surtout la RAM qui en profitera de loin le plus.

De nombreux ajustements doivent être faits encore pour obtenir davantage de performance…

 

Source : starcitizenfrance.fr

Partager ce message


Lien à poster
Partager sur d’autres sites

×