Inside·Rockstar Preuve 0
Dossier complet · série « Le moteur vous ment »

Sous la carte, il y a une autre ville

Quand vous entrez dans votre bunker ou votre labo de motard, vous croyez descendre sous le bâtiment. En réalité, le jeu vous téléporte dans une boîte rangée ailleurs, parfois des dizaines de mètres sous le port. Cinq preuves, et une coupe 3D de ce qu'il y a sous Los Santos.

Lecture : 8 min Sources : fonctions du moteur + coordonnées de la communauté FiveM
Preuve 1 / 5

Les intérieurs flottent sous le port

Les entreprises de motards, l'entrepôt et le bunker de GTA Online n'existent pas derrière leur porte d'entrée. Leurs intérieurs sont regroupés au même endroit, sous les docks du port de Los Santos, entre 37 et 98 mètres sous le niveau de la mer.

La porte que vous ouvrez en ville n'est qu'un déclencheur : écran noir, téléportation, et vous voilà sous la mer. Le jeu ne charge la boîte qu'au moment où vous en avez besoin.

La preuvenatives GTA V
GET_INTERIOR_AT_COORDS(x, y, z)
PIN_INTERIOR_IN_MEMORY(intérieur)  // chargement
IS_INTERIOR_READY(intérieur)
Coordonnées de la communauté
7 intérieurs
Intérieurxyz
Glissez pour tourner autour du port. Tailles des boîtes illustratives.
Preuve 2 / 5

Les tunnels sont des intérieurs

Pour le moteur, le métro, les égouts, les tunnels ferroviaires et les parkings souterrains ne font pas partie de la ville. Ce sont des « intérieurs », exactement comme une maison ou un magasin.

C'est pour ça que la lumière, le son et la météo changent d'un coup quand vous entrez dans un tunnel : vous venez de changer de monde.

La preuvenative GTA V
GET_INTERIOR_GROUP_ID(intérieur)
// métro, égouts, tunnels : un groupe d'intérieurs
Survolez un souterrain
Preuve 3 / 5

Des boîtes reliées par des portails

Pour le moteur, un intérieur n'a pas de murs au sens où vous l'entendez. C'est une liste de pièces, chacune une boîte fermée, et une liste de « portails » : de simples rectangles invisibles posés dans chaque porte, chaque arche et chaque fenêtre.

Chaque portail relie deux pièces. La pièce numéro 0 a un nom à part, « limbo » : c'est tout ce qui n'est pas l'intérieur, donc la ville dehors. Une porte d'entrée ou une fenêtre est un portail vers limbo.

Ce découpage sert à une seule chose : ne dessiner que ce que vous pouvez voir. Dans la démo, déplacez le personnage, tournez son regard et regardez le champ de vision se rétrécir à chaque porte.

—
Glissez la caméra dans la maison ou dehors. Baissez « Portails traversés » pour voir le calcul étape par étape : en orange, les portails que le moteur n'a pas encore franchis.

Comment le moteur choisit ce qu'il dessine

  1. Il cherche la pièce de la caméra. Pas celle du personnage : celle de la caméra. Toute la suite part de là.
  2. Il dessine cette pièce, mais seulement ce qui tombe dans le champ de vision.
  3. Il regarde les portails de la pièce. Pour chaque portail visible, il rétrécit le champ de vision à la taille exacte de ce rectangle.
  4. Il recommence dans la pièce suivante avec ce champ rétréci. À chaque porte, le cône devient plus étroit, et il finit par ne plus rien laisser passer.
  5. S'il tombe sur un portail vers limbo, il dessine la ville, mais uniquement dans la petite part de champ qui passe par la fenêtre ou la porte.

Tout ce qui n'a jamais été atteint par ce cône n'est pas dessiné du tout. Une maison de six pièces peut n'en afficher que deux.

Ce qui passe par les portails

La lumière

Chaque pièce a son propre réglage d'ambiance (le « timecycle »). Passez une porte, et l'éclairage change d'un coup : vous venez de changer de pièce pour le moteur.

Ce qui passe par les portails

Le son

Le jeu se sert aussi des portails pour savoir comment le son voyage d'une pièce à l'autre. Une porte ouverte laisse passer le bruit, un mur plein l'étouffe.

Ce qui passe par les portails

La ville

Depuis l'intérieur, la ville n'existe qu'à travers les portails vers limbo. Pas de fenêtre dans le champ de vision, pas de ville dessinée.

Ce que ça explique en jeu

  • La caméra qui traverse un mur. Elle n'est plus dans la bonne pièce, alors le calcul repart de travers : des pièces entières disparaissent d'un coup, ou l'extérieur s'efface.
  • Les intérieurs vus de dehors. En regardant par une fenêtre, vous ne voyez que la part de la pièce qui passe par ce portail. Le reste de la maison n'est même pas chargé à l'écran.
  • Les grands intérieurs fluides. Un centre commercial ou un bunker reste rapide, parce que chaque mur coupe le travail du moteur.
La preuvefichier d'intérieur (.ytyp) + natives FiveM
// archétype d'intérieur, tel que l'affichent les outils de la communauté
rooms    0 limbo · 1 entrée · 2 salon · …   // chaque pièce : son timecycle
portals  roomFrom → roomTo · 4 coins · flags

GetInteriorRoomName(intérieur, 0)          // "limbo"
GetInteriorPortalCount(intérieur)
GetInteriorPortalRoomFrom(intérieur, portail)
GetInteriorPortalRoomTo(intérieur, portail)
GetInteriorPortalCornerPosition(intérieur, portail, coin)
Structure documentée par la communauté (CodeWalker)
Preuve 4 / 5

Les murs peuvent disparaître

On peut décrocher un intérieur du moteur. Les murs, le sol et les meubles disparaissent, mais les gens qui vivent dedans continuent leur journée, suspendus dans le vide.

La preuve que les personnages et le décor sont deux choses séparées : l'un peut exister sans l'autre.

La preuvenative GTA V
UNPIN_INTERIOR(intérieur)
Preuve 5 / 5

Un même lieu en deux versions

La caravane de Trevor existe en version « sale » et en version « rangée ». Ce ne sont pas des objets déplacés : ce sont deux calques de carte complets, qu'on charge et décharge comme on change de diapositive.

D'autres lieux de l'histoire fonctionnent pareil. Le jeu échange des morceaux de carte entiers selon votre avancée.

La preuvenatives GTA V
REQUEST_IPL("TrevorsTrailerTrash")
REMOVE_IPL("TrevorsTrailerTrash")
REQUEST_IPL("trevorstrailertidy")
Avant-première

Le prochain dossier est déjà sur le Discord

Les membres lisent chaque dossier avant sa publication, avec les fichiers de tournage complets.

Rejoindre le Discord
Dossier suivant

Derrière ce mur, la ville n'existe pas

Le jeu ne dessine que ce que vous pouvez voir, et il triche pour le savoir.