I am writing here, because I am not sure how to approach the issue with BSP loader otherwise. I have it already coded and open sourced (here: https://github.com/distantmagic/personalidol/tree/master/packages/quakemaps ) and I would love to integrate with THREE.js, but the issue is
.map files do contain a lot of game-specific data and each map entity can contain its own properties, that are not only related to the scenery, but also in-game triggers, metadata, etc:
It is easy to just extract geometry itself, but I think that without all the entities metadata that surrounds it (which is really a game domain logic), those maps won’t be really usable in practice (unless they are used just for presentation and not to actually implement a game around them).
Also, most quake map entities can be merged into one bigger geometry, but some entities can have triggers / controllers attached, so the result of the loading would be a series of meshes and not the single mesh.
The question is, is it worth to just extract one big merged geometry and drop all the metadata and map domain logic or is there a place in THREE.js to store this data somewhere?