User:SirYodaJedi/Source map compiler wishlist: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
Features I'd like to see in custom compilers for {{src13sp}}, {{src13mp}}, and {{strata}}
Features I'd like to see in custom compilers for {{src13sp}}, {{src13mp}}, and {{strata}}


== BSP/CSG ==
== BSP / CSG ==
* Everything from {{mapbase|2}}'s [[VBSP]]
* Everything from {{mapbase|2}}'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
* 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 set func_group and func_detail as nonsolid (ex: for foliage), disabling generation of brushsides for the given brushes.
* Ability to override the [[contents flags|contents]] of func_group and func_detail (ex: for grates).
* Ability to override the [[contents flags|contents]] of func_group and func_detail (ex: for grates).
* Ability to DeathByNukes's {{mapbase|also}} %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 set DeathByNukes's {{mapbase|also}} %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 {{quake2|2}}-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.
* Ability to toggle {{quake2|2}}-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.



Revision as of 18:17, 21 April 2024

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.