quake bsp map loader


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:

Screenshot from 2021-03-17 11-41-36

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?

Related issues:

Best wishes

1 possible answer(s) on “quake bsp map loader

  1. @Mugen87 Ok, but I feel like userData is not really the place. I wanted to elaborate on that, but since this issue is closed, I think, I’ll just publish that in the external project and use THREE.js as an underlying framework, because this kind of maps require some kind of more consideration.