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

Vous n'êtes jamais seul dans votre bunker

Quand vous rentrez dans votre bunker de GTA Online, vous pensez être chez vous, seul. En réalité, d'autres joueurs de votre session sont peut-être dans la même pièce, au même endroit, à quelques centimètres de vous. Le jeu les cache. Cinq preuves, et une carte où toutes les portes mènent au même bunker.

Lecture : 8 min Sources : fonctions réseau du moteur (natives) + serveurs FiveM
Preuve 1 / 5

Tous les bunkers sont le même bunker

Il existe 11 bunkers à acheter dans GTA Online, de Chumash à la forêt de Paleto. Pourtant, il n'y a qu'un seul intérieur de bunker dans tout le jeu. Les 11 portes mènent à la même pièce, rangée au même endroit sous la carte.

C'est pareil pour les boîtes de nuit : 10 adresses, un seul club. Et pour les complexes de Doomsday : 9 entrées, une seule base.

Prendre la porte, c'est un écran noir et une téléportation. Vous ne descendez pas sous votre bunker : vous partez sous le port de Los Santos, là où le dossier Intérieurs a trouvé les boîtes qui flottent sous le sol.

La preuvenatives GTA V
GET_ENTITY_COORDS(PLAYER_PED_ID(), true)
// entrée Chumash → ≈ 899.5, -3246.0, -98.0
// entrée Paleto  → ≈ 899.5, -3246.0, -98.0
GET_INTERIOR_FROM_ENTITY(PLAYER_PED_ID())
// le même intérieur, quelle que soit la porte
Coordonnées de la communauté
11 entrées → 1 intérieur
    Glissez pour tourner autour de la carte. Positions des entrées approximatives, profondeur exagérée.
    Preuve 2 / 5

    Trente joueurs, une seule pièce

    Une session publique de GTA Online accueille jusqu'à 30 joueurs. Si plusieurs d'entre eux rentrent chez eux en même temps, ils arrivent tous aux mêmes coordonnées, dans la même pièce, devant les mêmes machines.

    Sans protection, vous verriez des inconnus marcher dans votre bunker, se coincer dans vos murs et se tenir à cinq sur votre poste de recherche. Dans la démo, retirez les instances et regardez.

    La preuvenatives GTA V
    NETWORK_GET_NUM_CONNECTED_PLAYERS()
    // jusqu'à 30 dans une session publique
    GET_ENTITY_COORDS(PLAYER_PED_ID(), true)
    // chaque joueur dans son bunker : la même position
    —
    Preuve 3 / 5

    Le jeu vous cache les autres

    Les autres joueurs ne disparaissent pas vraiment. Ils sont toujours connectés à votre session, et le réseau continue de suivre leur position. Le jeu les « cache » simplement de votre point de vue.

    Un joueur caché n'est pas dessiné, et il n'a plus de collision : vous passez à travers lui, et vos balles aussi.

    Dans la démo, passez en vue moteur pour voir les joueurs cachés, puis cliquez dans la pièce pour tirer.

    La preuvenatives GTA V
    NETWORK_CONCEAL_PLAYER(joueur, toggle, allowDamagingWhileConcealed)
    NETWORK_IS_PLAYER_CONCEALED(joueur)
    // caché : ni dessiné, ni touchable,
    // mais toujours dans la session
    Cliquez pour tirer
    JoueurOùÉtat
    Preuve 4 / 5

    Une instance est un monde à part

    Le moteur sait aussi ranger des joueurs dans des « sessions tutoriel » numérotées : des instances. Deux joueurs dans des instances différentes ne se voient plus, même s'ils sont au même endroit.

    Inviter quelqu'un chez vous revient à le faire entrer dans votre instance. Dans la démo, glissez les joueurs d'une bulle à l'autre, ou invitez Kenny, et regardez qui voit qui.

    Ces fonctions existent dans le jeu. En revanche, savoir lesquelles Rockstar utilise pour chaque propriété, entre cacher les joueurs et changer d'instance, reste à confirmer.

    La preuvenatives GTA V
    NETWORK_START_SOLO_TUTORIAL_SESSION()
    NETWORK_ALLOW_GANG_TO_JOIN_TUTORIAL_SESSION(équipe, instance)
    NETWORK_GET_PLAYER_TUTORIAL_SESSION_INSTANCE(joueur)
    NETWORK_ARE_PLAYERS_IN_SAME_TUTORIAL_SESSION(joueur1, joueur2)
    NETWORK_END_TUTORIAL_SESSION()
    Natives réelles
    —
    Glissez un joueur dans une autre bulle. Le tableau dit qui voit qui.
    Preuve 5 / 5

    Sur FiveM, on dit « routing bucket »

    Sur un serveur FiveM, ce sont les créateurs du serveur qui gèrent les instances. FiveM leur donne un outil pour ça : les « routing buckets ». Chaque joueur et chaque objet appartient à un monde numéroté.

    Le monde 0 est celui de tout le monde. Placez un joueur dans le monde 1, et il ne voit plus personne du monde 0, même à un mètre. Chaque monde peut même avoir ses propres passants, ou aucun.

    C'est comme ça que les serveurs RP font les appartements, les courses privées et les zones d'attente. Dans la démo, déplacez le joueur et la voiture d'un monde à l'autre.

    La preuvenatives serveur FiveM
    SetPlayerRoutingBucket(source, 1)
    SetEntityRoutingBucket(voiture, 1)
    SetRoutingBucketPopulationEnabled(1, false)
    SetRoutingBucketEntityLockdownMode(1, 'strict')
    GetPlayerRoutingBucket(source)
    -- 0 = le monde de tout le monde
    Natives FiveM documentées
    Joueur Voiture
    —
    Le bouton « Passants » règle le monde où se trouve le joueur.
    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

    En mission, la circulation est un film

    Les voitures que vous croisez rejouent un trajet enregistré par un développeur.