snake-biscuits / bsp_tool

Python library for analysing .bsp files
GNU General Public License v3.0
102 stars 7 forks source link

Test maps for every branch #16

Open snake-biscuits opened 2 years ago

snake-biscuits commented 2 years ago

Need to identify mapping tools / pipelines and provide test maps for as many games as possible All without distributing any copyrighted maps

branch_scripts with maps:

snake-biscuits commented 2 years ago

Ideally there should be a map for each branch script also need to document the tools pipeline to make each map

Quake, GoldSrc & Source tools are open source

Other tools: CoDRadiant (per-game, have CoD4 tools) DarkRadiant GTKRadiant Hammer++ NetRadiant TrenchBroom UberRadiant (Ritual Entertainment’s Ubertools) Fix

Compiler sets may be a limiting factor, but we can build a compile.bat for each branch

Ideally use something like vbspinfo or q3map -info to generate a .txt statistics file on each map were possible

snake-biscuits commented 2 years ago

Games without tools will be more complex (CSO2 & Titanfall), however incomplete converters exist for CSO2

snake-biscuits commented 2 years ago

Found tools for arkane.dark_messiah_singleplayer https://www.moddb.com/games/dark-messiah-of-might-magic/downloads/dark-messiah-might-and-magic-sdk These are a mirror / backup of official beta tools A Steam AppID for this SDK exists in gameinfo.txt, might be possible to download with SteamCMD?

Haven't gotten hammer to launch just yet, operates through it's own SDK launcher. Had similar issues with the Tactical Intervention SDK, so it could just be a me thing. Installing on C:/ & unpacking all vpks first might work easier, ymmv At present I don't have the hard drive space to try this out properly

snake-biscuits commented 2 years ago

Found tools for troika.vampire https://www.moddb.com/mods/vtmb-unofficial-patch/downloads/bloodlines-sdk These tools are Unofficial; built from HL2 Beta to get VBSP v17, then extended somewhat to match VtM:B needs Developers can be found at Planet Vampire

Have not yet used these tools but am looking forward to communicating with devs to help them out

snake-biscuits commented 2 years ago

Ideally there should be a map for each branch script also need to document the tools pipeline to make each map

Documentation for each branch_script is coming across multiple files

All of this documentation is extremely WIP, but it's good enough for a first draft

snake-biscuits commented 1 year ago

Turns out a spec exists for BSPX extensions to Quake 1 bsps Currently we have no test maps for this so can't really support it yet Will probably just become an extra feature of QuakeBsp (which needs to track external .lit files now)

snake-biscuits commented 1 year ago

We should probably get some test maps custom built for edge cases 1 basic map per branch script should be good for auto-detect, but it doesn't cover every lump

Enough maps to cover every LumpClass is another challenge all it's own

snake-biscuits commented 1 year ago

monochrome.contagion might not be distinct from valve.left4dead2 & can probably just be added to the branch script's GAME_VERSIONS entry

Are their any other branch scripts this might apply to? AFAIK every branch script is distinct in some way, but it's worth checking...

snake-biscuits commented 1 year ago

monochrome.contagion has been folded into valve.left4dead2 as of commit 9c0e0e3

snake-biscuits commented 1 year ago

We also need some external lump files to test how they work These can be quite rare afaik, there aren't many in the "MegaTest" tests/maplist.py

snake-biscuits commented 1 year ago

Still standardising the format of each issue to clearly list games, tools, guide & documentation As well as a common checklist for shipping each test map:

snake-biscuits commented 3 months ago

We technically also need test maps for branches.bspx

BSPX data can be appended to either IdTechBsp[id_software.quake2] or QbismBsp[id_software.qbism] Other .bsp formats might support BSPX

https://github.com/fte-team/fteqw seems to have the best coverage, but other Source Ports support some BSPX lumps[^qwiki]

https://github.com/eukara/freecs, https://github.com/eukara/freegunman, https://github.com/eukara/freehl & https://github.com/eukara/freesci are all mods for https://github.com/fte-team/fteqw So clearly GoldSrc maps can be run in FTEQW https://github.com/fte-team/fteqw/tree/hl2 also exists Does this mean both valve.goldsrc & valve.source maps can include BSPX data? I haven't studied https://github.com/fte-team/fteqw enough to say for sure

valve.source BSPX seems unlikely, since the PAKFILE must be the last lump in the file (as if it was concatenated) AFAIK BSPX must appear after the PAKFILE lump BSPX could of course include a ZIP_PAKFILE lump to ensure the .bsp ends with a PAKFILE Would this have to be a duplicate though, could it interfere with bspzip or other compile utilities?

AFAIK there are no Open-Source compilers for Source Engine titles (MRVN-Radiant's remap doesn't count) Finding a Source Engine .bsp with BSPX seems extremely unlikely

BSPX features may not even be that appealing to Source Engine mappers DECOUPLED_LM could be nice, but that's about it Using anything but the stock compiler wouldn't matter for the Steam Workshop either AFAIK Valve re-compiles maps themselves before shipping in an official update (for TF2 anyway)

[^qwiki]: quakewiki.org: FTEQW File Formats: BSPX lumps