12 releases (breaking)
Uses new Rust 2024
new 0.9.1 | Apr 19, 2025 |
---|---|
0.8.2 | Mar 4, 2025 |
0.7.0 | Mar 2, 2025 |
0.6.0 | Aug 29, 2024 |
0.1.0 | Feb 18, 2022 |
#278 in Game dev
21 downloads per month
Used in 2 crates
(via tf-asset-loader)
100KB
3K
SLoC
VBSP
Rust parser for valve bsp files.
Mainly tested with Team Fortress 2 and Counter Strike Source files, other source games using bsp versions 19, 20 or 21 might also work.
Adding other sourcemod variants should be fairly straight forward and pull requests for them are welcome.
Example usage
fn main() -> Result<(), vbsp::BspError> {
let data = std::fs::read("maps/cp_steel.bsp")?;
let bsp = vbsp::Bsp::read(&data)?;
println!("{:?}", bsp);
Ok(())
}
See vbsp-to-gltf or vbspviewer for some more examples of how to use the bsp data.
TODO
- smooth normals for displacements
- smooth normals for faces
Credits
This project is adapted from the quake bsp parser and wouldn't be possible without information from the source engine wiki.
Dependencies
~12MB
~183K SLoC