Qu'est-ce que le format de fichier BSP ?
Un fichier .bsp est un niveau de jeu 3D binaire compilé, nommé d'après l'algorithme Binary Space Partitioning utilisé pour diviser récursivement l'espace 3D afin d'obtenir un rendu en temps réel efficace. Le format a été introduit en 1996 avec Quake d'id Software et s'est depuis diversifié en plusieurs variantes étroitement liées mais mutuellement incompatibles utilisées par différents moteurs de jeu.
Le fichier utilise un conteneur binaire basé sur des « lumps » (blocs) : un en-tête fixe stocke un nombre magique, un entier de version et un répertoire de blocs numérotés. Chaque bloc est un segment de données contigu contenant une catégorie spécifique de données - nœuds d'arbre BSP, sommets (vertices), faces, arêtes, lightmaps, données de visibilité (PVS), définitions de points d'apparition d'entités et références de textures ou de matériaux. Les données d'entités telles que les points d'apparition, les déclencheurs (triggers) et les objets à ramasser sont stockées sous forme de paires clé-valeur ASCII simples dans un bloc dédié.
Les principales variantes incompatibles incluent :
- Quake 1 (BSP29) : version int = 29 ; id Software, 1996.
- GoldSrc / Half-Life 1 (BSP30) : version int = 30 ; Valve, 1998.
- Quake 2 / Quake 3 (IBSP v38/v46) : magic ASCII
IBSP, puis entier de version. - Source Engine (VBSP) : magic ASCII
VBSP, versions 17-21 selon le jeu (CS:GO, TF2, L4D2). - Source 2 (VBSP2) : magic
VBSP, version 29 ; utilisé dans CS2 et Half-Life: Alyx.
Les fichiers .bsp sont des sorties compilées, pas des fichiers sources. Les concepteurs de niveaux travaillent dans des fichiers .vmf (Valve Map Format) ou .map et compilent en .bsp à l'aide de vbsp.exe (Source Engine) ou q3map2 (famille Quake).
Sécurité et sûreté
RISQUE : MEDIUMLes fichiers BSP eux-mêmes sont des données statiques et ne peuvent pas exécuter de code. Cependant, le chargement d'un BSP malveillant dans un moteur de jeu vulnérable pourrait déclencher des dépassements de tampon ou des bogues de corruption de tas (des CVE historiques existent pour les jeux utilisant le moteur Quake). Le risque concerne principalement le téléchargement de cartes personnalisées de sources non fiables pour les jeux multijoueurs ; les cartes officielles du Steam Workshop sont généralement plus sûres.
Détails du format
en bref- Quake 1 BSP (BSP29) - Format original d'id Software de 1996, pas de magic ASCII, numéro de version 29 à l'offset 0.
- Quake 3 / Quake Live BSP (IBSP v46) - Utilise le magic 'IBSP' comme Quake 2 mais en version 46 ; utilisé par les moteurs open-source (ioquake3, OpenArena).
Programmes qui ouvrent les fichiers BSP
Détails techniques
spécifications approfondies| Conteneur | Binaire personnalisé basé sur des blocs (lumps) ; des variantes incompatibles existent par moteur de jeu |
| Encodage | Binaire |
| Ordre des octets | Little-endian |
| Octets magiques | Dépend du moteur : IBSP (Quake 2/3), VBSP (Source/Source 2), entier brut 29 ou 30 (Quake 1/GoldSrc) |
| Champ de version | Entier dans l'en-tête : 29=Quake 1, 30=GoldSrc/HL1, 38=Quake 2, 46=Quake 3, 17-21=titres Source Engine, 29=Source 2 |
| Types de blocs | Nœuds/feuilles/plans d'arbre BSP, sommets, faces, arêtes, lightmaps, visibilité PVS, définitions d'entités, références de matériaux |
| Données d'entités | Stockées sous forme de paires clé-valeur ASCII simples dans le bloc d'entités (points d'apparition, déclencheurs, objets, etc.) |
| Format de lightmap | RGB 24 bits par luxel (Source Engine) ; monochrome 8 bits par luxel (Quake 1) |
| Plage de coordonnées | ±32 768 unités (Quake 1) ; ±16 384 utilisables pour la géométrie (Source Engine) |
| Compression | Aucune au niveau du fichier ; Source 2 prend en charge la compression LZ4 optionnelle par bloc |
| Taille typique | 2 Mo - 200 Mo (cartes Quake 1-20 Mo ; cartes Source 5-100 Mo ; cartes CS2 50-200 Mo) |
| Sortie compilée | Le BSP est le résultat du compilateur ; la source est .vmf (Source) ou .map (Quake), compilée avec vbsp.exe ou q3map2 |
| Compatibilité inter-moteurs | Aucune - chaque variante de moteur est mutuellement incompatible avec les autres |
| OS associé | Windows, Linux, macOS |
| Publié | 1996 (Quake 1.0, id Software) |
| Dernière version | Source 2 VBSP2 (2020+, used in CS2 / Half-Life: Alyx); multiple incompatible lineages |
| Spécification | developer.valvesoftware.com |
Conversions BSP
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers BSP.