On optimise uniquement à la fin d’un développement, vraiment ?
Il y a depuis quelques temps, une croyance populaire autour du développement de Star Citizen, consistant à dire que l’on n’optimise pas un jeu en développement ou à ce stade de l’alpha. Ce qui n’est pas complètement faux en soi, mais absolument pas vrai non plus. En effet lors d’un dev, les programmeurs 3D, réseau etc. cherchent à maximiser le plus possible leurs efforts, afin de ne pas trop se disperser en optimisant un ajout qu’ils devront ré-optimiser derrière à la moindre modification.
De façon générale, pour un jeu vidéo en développement qui se trouve au stade alpha, on va en faire rentrer le plus possible (modules, fonctionnalités etc.) et puis ensuite, on va progressivement corriger les bugs (tout au long du dev) et accentuer l’optimisation à l’approche de la bêta. C’est seulement une fois que tout est fonctionnel que l’on passe le jeu vidéo en bêta. Une fois le stade de cette dernière atteinte, on complète les tests effectués lors de la phase alpha.
Normalement une alpha se réalise en interne et une bêta devient ouverte à certains joueurs afin de permettre aux développeurs de déceler des choses qu’ils n’auraient pu déceler avec les tests effectués en interne.
Avec Star Citizen, les choses se passent un peu différemment de ce que l’on peut observer ailleurs comme type de développement pour des jeux vidéos. Officiellement nous sommes en alpha test, mais dans les faits, les backers réalisent aussi des opérations de bêta testeurs.
Une optimisation de l’univers persistant de Star Citizen nécessaire
Si l’on optimise généralement une fois que l’on sait qu’il ne sera pas nécessaire de revenir dessus, dans le cas de l’univers persistant de Star Citizen, les choses sont quelques peu différentes.
A commencer par une caractéristique d’ordre technique. Si vous n’optimisez pas le jeu, en l’état il ne permettra plus d’aller bien loin dans les objectifs. Pour rappel, Star Citizen se veut être un MMO. Et à ce stade il en est encore très loin. Bien entendu on pourrait attendre encore un peu comme ça, jusqu’à ce que les machines les plus puissantes des backers ne parviennent plus à faire tourner le jeu de façon correcte. Comment ajouter des planètes, des lunes, des PNJ (avec tout ce que cela implique, leur IA, leurs mouvements et actions etc.) et des joueurs supplémentaires, lorsque vous avez par exemple un univers qui va envoyer toutes ces informations sur chaque client ?
Ensuite, il s’agit également de question d’ordre commerciale. C’est souvent un jeu en bêta qui donnera envie à d’autres joueurs de l’acheter. Star Citizen n’est pas en bêta, mais en alpha. Ceci étant, comme nous l’avions vu un peu plus haut, il fonctionne exactement sur le même principe qu’une bêta ouverte. Le But de Cloud Imperium Games est le même que toute entreprise : Gagner de l’argent en apportant satisfaction à leurs clients.
Et rien que pour ces deux raisons, CIG fait des performances et de l’optimisations de Star Citizen, ses principales priorités pour cette année 2018.
C’est ce qu’ont d’ailleurs (une fois de plus) souligné Clive Johnson et Rob Johnson, tous deux programmeurs chez CIG face au micro de Jared Huckaby vendredi dernier dans l’émission Reverse the Verse concernant l’optimisation. Ils essaient toujours de trouver des solutions à long terme, mais les solutions à court terme sont également nécessaires pour le développement de Star Citizen.
Penser que l’optimisation se fait après est faux
Les programmeurs et ingénieurs travaillent toujours sur le netcode et ce depuis le début du développement. L’ancien code est toujours remplacé. Parfois, il faut des mois pour insérer un nouveau code et supprimer l’ancien.
Autre exemple, celui des vaisseaux spatiaux, ils ont été retravaillés pour certains d’entre eux, d’autres sont en cours de rework. La totalité des vaisseaux du jeu seront aux mêmes normes, encore plus jolis, mais aussi et surtout, mieux optimisés. Ils utiliseront moins de polygones pour un meilleur rendu, donc moins de mémoire système, le jeu s’en trouve plus fluide.
Serialized Variable à la 3.1 et Network Bind Culling à la 3.2
Comme nous l’avions vu précédemment, le bind culling a été décalé jusqu’à la mise à jour Star Citizen alpha 3.2 tandis que le patch Star Citizen alpha 3.1 proposera le serialized variable culling.
Quelle différence entre les deux ?
- Le Network Bind Culling signifie que tout ce qui est trop éloigné ne sera pas affiché sur le client du joueur et ne consommera pas de mémoire ou de CPU.
- Le SV Culling signifie que tout ce qui est trop éloigné du joueur n’envoie pas ou ne sollicite pas de mises à jour réseau au client. Les différents objets sont toujours en mémoire, mais tant qu’ils ne sont pas mis à jour, ils sont en veille.
Nous aurons même tendance à dire que le SV Culling est plus stable que le Bind Culling, car avec le Network Bind Culling, les objets doivent être complètement rechargés lorsqu’ils s’approchent du joueur, tandis que les données du Serialized Variable Culling sont eux toujours en mémoire et n’ont besoin que d’une mise à jour, ce qui en définitive consomme moins de ressources.
Selon les premiers retours du test evocati de la 3.1, les gains en performance s’annoncent déjà plutôt bon !
Attention toutefois à bien relativiser à propos du netcode, il n’y a pas que ce dernier qui est important pour les performances d’un jeu vidéo tel que Star Citizen. En d’autres termes, si les performances de la 3.0 ne sont pas optimales, cela n’est pas uniquement à cause du netcode.
Note : Avec le Bind Culling qui sera effectif d’ici fin juin, chaque zoom optique du jeu, comme par exemple le télescope du futur vaisseau scientifique Endeavour, pose problème aux développeurs, car même les objets distants doivent être affichés de nouveau et donc chargés activement pour le joueur qui les observe. Ceci étant, les programmeurs réseaux sont confiants quant à la faisabilité de la chose.
Object Container Streaming
Selon Clive Johnson, l’optimisation la plus attendue par les équipes d’ingénieurs/programmeurs de CIG concerne l’Object Container Streaming. Cette technologie sur laquelle ils travaillent déjà, est prévue pour la mise à jour Star Citizen alpha 3.3.
L’Object Container Streaming est très important, parce qu’il s’agit d’une technologie particulièrement utile pour de nombreuses fonctionnalités qui entreront en jeu dans le futur. En outre, elle réduira le temps de chargement de l’univers persistant, car elle ne chargera que tout ce qui se trouve à proximité du joueur.
Pour faire simple, si vous vous trouvez par exemple sur Port Olisar, tous les objets qui vous entourent dépendront du conteneur d’objets de Port Olisar. Si vous vous déplacez dans une autre zone, par exemple à la station Levski, le conteneur d’objets de Port Olisar avec tous les objets qui lui appartiennent seront supprimés pour vous. Le conteneur d’objets de Levski ainsi que tout son contenu, chargeront alors pour vous. C’est à peu près le même principe de fonctionnement que le streaming, où ne se charge que ce qui est a votre proximité, au lieu de charger tout l’univers comme c’est le cas actuellement
L’OCS va également énormément apporter lorsque les très gros vaisseaux seront implantés dans le jeu. D’ailleurs sans optimisation, inutile d’imaginer avoir de très gros vaisseaux comme par exemple l’Idris, le Javelin ou le Bengal – pour ne citer que ces trois là – dans l’univers persistant imaginé par Chris roberts.
L’Object Container Streaming fait partie des plans pour réaliser d’importants progrès en fluidité.
Autrement dit, vos gains en performance vont réaliser un véritable bond, rien qu’avec cette technologie y compris si vous avez des ordinateurs plus anciens ! Car vous l’aurez constaté, le but de CIG n’est pas de permettre aux seuls joueurs fortunés de pouvoir jouer à Star Citizen, mais qu’un maximum de configurations y compris parmi les plus modestes, puissent profiter pleinement du jeu, sans que cela ne soit trop au détriment de la qualité. Les développeurs travaillent en ce sens.
De l’optimisation de Squadron 42
Quand est-il de l’optimisation et des performances de la campagne solo de Star Citizen Squadron 42 ?
De nombreuses optimisations pour Star Citizen seront également intégrées à Squadron 42. Ceci étant, il y aura également des optimisations spécifiques à Squadron 42, car il s’agit d’un titre solo.
Conclusion : L’optimisation a toujours été omniprésente et est très importante pour CIG, pas simplement pour faire plaisir aux râleurs (légitimes) que nous sommes concernant le framerate catastrophique de la 3.0, encore moins pour donner raison aux fans boys inquisiteurs qui n’ont de cesse de répéter que l’optimisation n’est pas importante, que cela se fait après un développement, comme le leur ont répété inlassablement leurs petits doigts.
Vous voulez un véritable space opera avec de gigantesques batailles spatiales dignes de ce nom ? Soyez rassurés, vous l’obtiendrez grâce l’optimisation et ça tombe bien, car CIG l’a annoncé, 2018 est plus que jamais l’année où beaucoup de choses vont bouger pour Star Citizen. La cerise sur le gâteau, c’est qu’en plus d’avoir un jeu fluide, vous aurez également beaucoup de gameplay et de contenu pour un jeu toujours plus beau et toujours plus riche… Et surtout, beaucoup plus fluide !
https://youtu.be/RjEWyYs6zpw
Très bonne vidéo, qui explique bien ce que représente l’optimisation en général d’un jeu vidéo 😉
merci!!
Un petit pas pour l’homme, un grand pas vers le retribution ! ^^
Merci pour les articles qui sortent continuellement !
Ah c’est joliment dit ça ^_^
Merci Hervé pour le soutien !
« La cerise sur le gâteau, c’est qu’en plus d’avoir un jeu fluide, vous aurez également beaucoup de gameplay et de contenu pour un jeu toujours plus beau et toujours plus riche… Et surtout, beaucoup plus fluide ! »
Je serais pas aussi confiant personnellement. Avoir de l’optimisation + du contenu en même temps, cela me semble difficile.
A voir comment CIG va orchestrer tout cela !
Côté contenu ils ont beaucoup d’avance en terme « d’emballage » si vous voulez. Il y a pas mal d’avancées sur ce qui est visible, mais CIG est obligé d’optimiser avant d’intégrer tout ça au jeu (planètes supplémentaires, lunes etc.), mais une fois que le streaming content sera là, vous allez voir comme ça va défiler niveau ajouts. Par contre tout ce qui est mécanismes (de professions etc.) ça prendra un peu plus de temps.
Mais comme vous l’avez dit Foun, on va voir comment ils vont orchestrer tout cela oui, parce que nous ne sommes jamais à l’abris d’imprévus techniques ^^