Tout le temps! Ça n’a pas changé depuis au moins GTA3 (au bas mot mais on va prendre un jalon) et c’est, au fond, un problème de maths: combien peux-tu te permettre de charger si tu charges tout le temps?
On peut par exemple voir un extrait de cette présentation de spider-man à 16:38 pour l’approche:
- On découpe le monde en zones, pour un monde ouvert ça sera agencé très régulièrement, genre une grille mais il mentionne qu’en plus de ça il y a des zones plus abstraites spatialement, contrôlées par des scripts. Pour un Dark Souls classique les liens entre zones ressembleront plus à une carte du métro londonien, et il y aura des petits bouts comme ça dans un monde ouvert pour les donjons spécifiquement.
- Les zones ont une taille maximum (en octets) standardisée, et on sait qu’on garde le voisinage en mémoire plus un peu de rab. Tu sais aussi de combien de nouvelles zones tu as besoin quand tu change de voisinage
- Le perso a une vitesse maximum (celle du cheval pour Elden Ring)
- Tu as dans ton budget technologique un débit maximum pour tes données
Du coup:
Temps dispo pour charger une zone = taille géographique d’une zone / (vitesse max du perso * nombre de nouvelles zone potentielles) = taille en octets d’une zone / débit
Dans le cas de Spider-man ils finissent par arrive à 20 mégas par zone et après toutes les décisions sont prises autour de ça, en rendant les fichiers aussi compacts que possible (même avec un SSD c’est toujours charger depuis le disque qui prend le plus de temps) et en coupant quand c’est trop gros.
Il y a des astuces en plus comme ne charger les textures les plus détaillées que si le perso ralentit (du coup elles peuvent être au-dessus de la limite) ou avoir des zones où, au hasard, tu ne peux pas utiliser ton cheval (vitesse max inférieure → plus grande taille maximum donc plus de trucs au mètre carré, selon la formule) et/ou la connectivité est moindre (genre un donjon). Si tu as besoin de changer tout le voisinage d’un coup et tu n’as pas envie d’un écran de chargement tu vas le déguiser en moyen de transport très long genre un ascenseur qui dure.
Note aussi que c’est pour charger des nouveaux trucs, mais si tu as plus de mémoire que de débit tu peux te permettre de garder les choses longtemps en mémoire, comme un dragon ou un runebear qui te course à travers une bonne partie de la map (note qu’ils finissent finit par dépopper si ils s’éloignent trop longtmeps de leur point de départ).
Pour que le joueur ne réalise pas que les zones distantes ne sont pas là elles sont remplacées par des versions inertes et moins détaillées. Spider-man a toujours une version low-poly de tout manhattan en mémoire par exemple. Souvent il y a un niveau de détail intermédiaire (genre dans SotC le monde est divisé en zones de 600m qui sont divisées en zones de 100m, donc il y a trois niveaux possibles), parfois plus dans les très grands mondes.