Skip to content

WIP t6 custom map loading#539

Open
LJW-Dev wants to merge 129 commits into
Laupetin:mainfrom
LJW-Dev:bsp-compilation
Open

WIP t6 custom map loading#539
LJW-Dev wants to merge 129 commits into
Laupetin:mainfrom
LJW-Dev:bsp-compilation

Conversation

@LJW-Dev

@LJW-Dev LJW-Dev commented Oct 11, 2025

Copy link
Copy Markdown
Contributor

Notes:

  • Techsets are loaded and dumped with my custom implementation, I think it should use the official techset structure but this isn't super important.
  • The world asset uses a .fbx file and uses OpenFBX as it's loader
  • It doesn't use any xmodels apart from the skybox, as I found them too complicated to load from the world asset. Definitely should be implemented somehow though.
  • You need 6 gsc files for the link to be successful and for the map to load on bo2, but 4 of them are redundant (the _fx and _amb GSC files). This could be changed to make it simpler for users to create their custom maps, but i'm not sure if simplifying it is a good design choice.
  • Maps require footstep tables, but there's no loading/dumping of them right now. I add empty footstep tables so the map will load, we could change this so users can edit the footstep tables but i don't know how this would be done.

LJW-Dev added 23 commits July 7, 2025 15:53
note: techniques should be dumped in seperate files from technique sets, but compiling them all into the techset works as well but is harder to read.
…missing image check to the BSP compiler to reduce the output prints when an image is missing.
@Laupetin Laupetin added the enhancement New feature or request label Oct 11, 2025

@Laupetin Laupetin left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey there, thank you for the PR, the feature is pretty awesome :)
I've looked through a lot of the code by now, sorry it takes so long, it's a big PR 😅
I probably won't have that much time in the upcoming days, so i'll submit the comments I have currently.

I haven't looked at CustomMapLinker.h yet, though since I do not know that much about the BSPs yet, I probably won't be able to say about that part 😅
So generally my comments are more related to code structure and memory management for example.

Also please forgive that I'm adding a lot of comments, it's just my style of doing code review (I'm adding a comment when I have any special thoughts about some place so it ends up being pretty verbose) and does not mean that necessarly everything needs to be addressed or must be solved in a particular way necessarly.
Also I can address a lot of the stuff as well, you don't have to do everything 😛

Again, thanks for putting the work in :D Looking forward to this feature and how it evolves

Comment thread src/Common/Game/T6/T6.h Outdated
Comment thread src/Common/Game/T6/T6.h Outdated
Comment thread src/Common/Game/T6/T6.h Outdated
Comment thread src/Common/Game/T6/T6.h Outdated
Comment thread src/Common/Game/T6/T6.h Outdated
Comment thread src/ObjLoading/Game/T6/CustomMap/ProjectCreator.h Outdated
Comment thread src/ObjLoading/Game/T6/CustomMap/ProjectCreator.cpp Outdated
Comment thread src/ObjLoading/Game/T6/CustomMap/ProjectCreator.cpp Outdated
Comment thread src/ObjLoading/Game/T6/CustomMap/ProjectCreator.cpp Outdated
Comment thread src/ObjLoading/Game/T6/CustomMap/ProjectCreator.cpp Outdated
Done:
- Moved custom map structures to their own objcommon header file
- Updated GfxLightGridRow struct
- Reverted shader_bin file path
- Renamed Project Creator to BSP Creator
- Removed model loading from BSP creator
- Cleaned up BSP Creator and updated the names of structs
WIP:
- Update BSP calculation code to be more readable and use unique/shared ptrs
- Converted BSP tree generation to use unique ptrs
- Updated the linker to use BSP tree unique ptrs and use the new structure of custom map structs
- Updated names to allign with the BSP naming structure
- Updated constants file and assoicated uses
- Updated file structure to use BSP naming scheme
- Re-wrote BSP creator to use c++ more efficiently
LJW-Dev added 28 commits April 13, 2026 13:07
…imposed limits, beautified code, added comments where logic wasn't very obvious.
@LJW-Dev LJW-Dev force-pushed the bsp-compilation branch from 95b8c68 to e4fb8b4 Compare May 1, 2026 15:56
@LJW-Dev

LJW-Dev commented May 31, 2026

Copy link
Copy Markdown
Contributor Author

Right now i'm moving to using GLTF as i found it to not have these issues that FBX has had, hopefully switching over would fix the 1st issue (the branch is updated to use gltf ##now).

I agree a warning would be good when it sees not a world material, but when custom materials become possible i doubt many map makers would use the same wpc/wc/etc naming scheme so a full error would be too much. Maybe there's a way to tell if the material will/won't render apart from their naming scheme?

Feel free to add a pull request to the branch if you want to add changes though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants