Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test maps for every branch #16

Open
6 of 55 tasks
snake-biscuits opened this issue Oct 4, 2021 · 12 comments
Open
6 of 55 tasks

Test maps for every branch #16

snake-biscuits opened this issue Oct 4, 2021 · 12 comments
Assignees
Labels
documentation This issue involves a lack of documentation enhancement New feature or request help wanted Extra attention is needed slow burn lots of work & will take a long time
Milestone

Comments

@snake-biscuits
Copy link
Owner

snake-biscuits commented Oct 4, 2021

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 snake-biscuits added the enhancement New feature or request label Oct 4, 2021
@snake-biscuits snake-biscuits added this to the v0.4.0 milestone Oct 4, 2021
@snake-biscuits snake-biscuits self-assigned this Oct 4, 2021
@snake-biscuits
Copy link
Owner Author

snake-biscuits commented Oct 15, 2021

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
Copy link
Owner Author

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

@snake-biscuits
Copy link
Owner Author

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
Copy link
Owner Author

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
Copy link
Owner Author

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

  • docs/tools/index.md
    lists links to all kind of tools
  • docs/tools/compilers.md
    details compilers / converters for each branch script
    so far tools have been found for almost every branch_script
  • docs/tools/mapsrc.md
    lists publically available .map / .vmf files tests could be built with
  • docs/tools/tools.sc
    sc-im table for tracking more detailed breakdowns of tools
    e.g. bsp compile toolchain (vbsp, vrad etc.), editor formats & supported OSes
  • tests/mapsrc/Makefile
    trying to allow bsp compiling via make
    could get messy doing everything with one Makefile, one per game / branch_script may work better
    it's not yet clear to what degree per-game compilers are interchangable within the same branch_script family

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

@snake-biscuits
Copy link
Owner Author

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 snake-biscuits pinned this issue Oct 11, 2022
@snake-biscuits
Copy link
Owner Author

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 snake-biscuits added the slow burn lots of work & will take a long time label Dec 11, 2022
@snake-biscuits
Copy link
Owner Author

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
Copy link
Owner Author

snake-biscuits commented Jan 25, 2023

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

@snake-biscuits snake-biscuits modified the milestones: v0.4.0, v0.5.0 Jan 25, 2023
@snake-biscuits snake-biscuits modified the milestones: v0.5.0, v1.0.0 Mar 17, 2023
@snake-biscuits snake-biscuits changed the title Test map collection gives insufficient coverage Test maps for every branch Apr 17, 2023
@snake-biscuits
Copy link
Owner Author

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
Copy link
Owner Author

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:

  • mapper / contributor credit
  • compiled successfully + compile log
  • bspinfo compiler output (lump sizes etc.)
  • map can be loaded in-game and functions as expected

@snake-biscuits
Copy link
Owner Author

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 lumps1

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)

Footnotes

  1. quakewiki.org: FTEQW File Formats: BSPX lumps

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation This issue involves a lack of documentation enhancement New feature or request help wanted Extra attention is needed slow burn lots of work & will take a long time
Projects
Status: Todo: Other
Development

No branches or pull requests

1 participant