O que é o formato de ficheiro BSP?
Um arquivo .bsp é um nível de jogo 3D binário compilado, nomeado após o algoritmo Binary Space Partitioning usado para dividir recursivamente o espaço 3D para renderização eficiente em tempo real. O formato foi introduzido em 1996 com o Quake da id Software e, desde então, ramificou-se em várias variantes intimamente relacionadas, mas mutuamente incompatíveis, usadas por diferentes engines de jogos.
O arquivo usa um contêiner binário baseado em «lumps»: um cabeçalho fixo armazena um número mágico, um número inteiro de versão e um diretório de lumps numerados. Cada lump é um bloco de dados contíguo que contém uma categoria específica de dados - nós da árvore BSP, vértices, faces, arestas, lightmaps, dados de visibilidade (PVS), definições de pontos de spawn de entidades e referências de texturas ou materiais. Dados de entidades, como pontos de spawn, gatilhos e coletas de itens, são armazenados como pares chave-valor ASCII simples dentro de um lump dedicado.
As principais variantes incompatíveis incluem:
- Quake 1 (BSP29): versão int = 29; id Software, 1996.
- GoldSrc / Half-Life 1 (BSP30): versão int = 30; Valve, 1998.
- Quake 2 / Quake 3 (IBSP v38/v46): magic ASCII
IBSP, seguido pelo inteiro da versão. - Source Engine (VBSP): magic ASCII
VBSP, versões 17-21 dependendo do jogo (CS:GO, TF2, L4D2). - Source 2 (VBSP2): magic
VBSP, versão 29; usado no CS2 e Half-Life: Alyx.
Arquivos .bsp são saídas compiladas, não arquivos de origem. Os designers de níveis trabalham em arquivos .vmf (Valve Map Format) ou .map e compilam para .bsp usando o vbsp.exe (Source Engine) ou q3map2 (família Quake).
Segurança e proteção
RISCO: MEDIUMOs arquivos BSP em si são dados estáticos e não podem executar código. No entanto, carregar um BSP maliciosamente criado em uma engine de jogo vulnerável pode desencadear estouros de buffer ou bugs de corrupção de heap (existem CVEs históricos para jogos da engine Quake). O risco é relevante principalmente ao baixar mapas personalizados de fontes não confiáveis para jogos multiplayer; mapas oficiais da Steam Workshop são geralmente mais seguros.
Detalhes do formato
em resumo- Quake 1 BSP (BSP29) - Formato original da id Software de 1996, sem magic ASCII, número de versão 29 no deslocamento 0.
- Quake 3 / Quake Live BSP (IBSP v46) - Usa o magic 'IBSP' como o Quake 2, mas versão 46; usado por engines de código aberto (ioquake3, OpenArena).
Programas que abrem arquivos BSP
Detalhes técnicos
especificação profunda| Contêiner | Binário baseado em lumps personalizado; existem variantes incompatíveis por engine de jogo |
| Codificação | Binário |
| Ordem dos bytes | Little-endian |
| Magic bytes | Dependente da engine: IBSP (Quake 2/3), VBSP (Source/Source 2), int 29 ou 30 bruto (Quake 1/GoldSrc) |
| Campo de versão | Inteiro no cabeçalho: 29=Quake 1, 30=GoldSrc/HL1, 38=Quake 2, 46=Quake 3, 17-21=títulos da Source Engine, 29=Source 2 |
| Tipos de lump | Nós/folhas/planos da árvore BSP, vértices, faces, arestas, lightmaps, visibilidade PVS, definições de entidades, referências de materiais |
| Dados de entidade | Armazenados como pares chave-valor ASCII simples no lump de entidades (pontos de spawn, gatilhos, coletas, etc.) |
| Formato do lightmap | RGB de 24 bits por luxel (Source Engine); monocromático de 8 bits por luxel (Quake 1) |
| Intervalo de coordenadas | ±32.768 unidades (Quake 1); ±16.384 utilizáveis para geometria (Source Engine) |
| Compressão | Nenhuma no nível do arquivo; o Source 2 suporta compressão LZ4 opcional por lump |
| Tamanho típico | 2 MB - 200 MB (mapas de Quake 1-20 MB; mapas de Source 5-100 MB; mapas de CS2 50-200 MB) |
| Saída compilada | O BSP é a saída do compilador; a origem é .vmf (Source) ou .map (Quake), compilado com vbsp.exe ou q3map2 |
| Compatibilidade entre engines | Nenhuma - cada variante de engine é mutuamente incompatível com as outras |
| SO associado | Windows, Linux, macOS |
| Lançado | 1996 (Quake 1.0, id Software) |
| Versão mais recente | Source 2 VBSP2 (2020+, used in CS2 / Half-Life: Alyx); multiple incompatible lineages |
| Especificação | developer.valvesoftware.com |
Conversões de BSP
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos BSP.