User:SirYodaJedi/Source map compiler wishlist

From Valve Developer Community
Jump to navigation Jump to search

Features I'd like to see in custom compilers for Source 2013 Singleplayer, Source 2013 Multiplayer, and Strata Source

BSP / CSG

  • Everything from Mapbase Mapbase's VBSP
  • Generate a file alongside the BSP (or in the zip lump) containing KVs for func_group, func_detail, and prop_static, for use with VRAD.
    • The brushes would be stored as a comma-delimited list of brush numbers, indicating which brushes are in the group.
    • KVs which are used by the static prop lump are stripped, along with targetname, mindxlevel, and maxdxlevel
  • func_group
  • Ability to set func_group and func_detail as nonsolid (ex: for foliage), disabling generation of brushsides for the given brushes.
  • Ability to override the contents of func_group and func_detail (ex: for grates).
  • Ability to set DeathByNukes's (also in Mapbase) %compileChopHigh, %compileChopLow, and %compileChopAll settings directly in func_group and func_detail's KVs, so that the same material can have different chop settings in different situations (improving runtime performance)
  • Ability to toggle Quake II Quake II-style detail brush behavior for func_detail (in a KV), wherein it still chops underlying world brushes, even though it doesn't affect VIS. This fixes some lighting bugs caused by the world brush lightmap bleeding underneath the func_detail. You can manually do this with nodraw brushes on stock compilers, but that eats up more brushsides.

VIS

  • Rename 🖿vvis_dll.dll to allow installation alongside vanilla compilers.

RAD

  • Rename 🖿vrad_dll.dll to allow installation alongside vanilla compilers.
  • 64-bit executable
  • bounced prop_static lighting (bouncing both ways between props and lightmaps); this would be really beneficial on lightmapped props
  • Ability to select texture format for PPL files:
    • Recommended formats to allow:
      • Source 2013 Multiplayer RGB888 (default), RGBA16161616F, DXT1, I8, BGR565, BGRA8888 (RGBM-compressed HDR), DXT5 (RGBM-compressed HDR)
      • Strata Source BC6H (default), BC7, RGBX8888, RGBA8888 (RGBM-compressed HDR), RGBA16161616F, DXT1, ATI1N, I8
    • This could possibly be noted by using lightmap resolutions higher than 4096 (reading the three most significant bits as a separate value, with 0 being the default RBG888).
    • Alternatively, unused static prop flags could be used, but VBSP would need to be modified to properly write them.
  • bounced named lights (could also have radius-based control over how far they are allowed to bounce)
  • toggleable shadows for brush entities, handled in a similar manner VHLT's light_shadow (so they'd be controlled by a regular light entity in-game)
  • toggleable texlights, handled in a similar manner VHLT's light_surface (so they'd be controlled by a regular light entity in-game)
  • %lightmapmask for VertexLitGeneric, which dictates locations of the PPL lightmap to mask out and replace with a dialation fill like xwad does for index 255 of transparent textures.
  • An equivalent to ericw-tools's -dirtdebug command, which disables standard lighting and only puts generic ambient occlusion on edges to prevent the unsealed fullbright map from looking bad.
  • Colored texture shadows.
  • Texture shadows from Refract materials.