User:SirYodaJedi/YBSP: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Created page with "{{draft}} '''YBSP''' ("Yui's BSP") is an upcoming fork of VBSP for {{src13mp}}, with almost all of {{mapbase}} VBSP's features, plus additional features. == Features == =...")
 
(Something I noticed, I'm not fixing the code directly because this compiler is simply not being worked on)
 
(28 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{infotable
|tico=
|state=2
|ownwiki=
|type=t3
|dev={{u|SirYodaJedi}},<br>[[Mapbase#Credits|Open source contributors to Mapbase]]
|engine=2
|base={{src13mp}}'s '''[[VBSP]]'''
|released=
|lastver=
|github=Yuis-Archives/source-sdk-2013_vs2022/tree/ybsp
}}
{{draft}}
{{draft}}
'''YBSP''' ("Yui's BSP") is an upcoming fork of [[VBSP]] for {{src13mp}}, with almost all of {{mapbase}} VBSP's features, plus additional features.
'''YBSP''' ("Yui's BSP") is an upcoming fork of [[VBSP]] for {{src13mp}}, with almost all of {{mapbase}} VBSP's features, plus additional features.
It can also be used for {{tf2branch}} {{gmod}} by running from a {{src13mp}} game's bin folder.
It is currently on hold as its developer determines how best to upgrade to the {{tf2branch|2}} codebase.


== Features ==
== Features ==
=== New features ===
=== New features ===
* todo
* Allow {{cmd|%CompileNoChop}}, {{cmd|%CompileNoLight}}, and {{cmd|%CompileNoShadows}} to be used alongside other [[material map compile flags]]
* New {{code|%Contents_*}} and {{code|%Surf_*}} VMT compile flags, which are parsed last, and allow explicitly setting [[BSP flags (Source)|BSP flags]]. Only use if you know what you are doing.
:{{note|Several contents flags will require being used alongside {{code|%Contents_Empty}} to have the desired effect.}}
:{{bug|hidetested=1|{{code|%Surf_*}} compile flags change the contents instead of the surface flags.}}
* {{code|%CompileDebris}}, which (should) block bullets and [[VPhysics]], but allow [[QPhysics]] to pass through. Useful for stairs.
* Add {{ent|func_group}}. This currently acts the same as grouping world brushes with {{key|Ctrl|G}}, but additional functionality is planned.
:{{important|{{hammer++|2}}'s lighting preview will inaccurately show the brushes as not casting shadows unless the {{code|vrad_brush_cast_shadows}} KV is set to 1. To work around this issue, the FGD that will ship with YBSP will have 1 set as the default value.}}
* Rename {{ent|info_null}} entities to {{code|_null}}, preventing vanilla game code from treating them as [[edict]]s for the first [[tick]].
* Replicate {{cmd|%CompileTeam}} from {{l4ds}}, for mods that wish to use those flags for their own purposes.
* Write {{code|spawnflags}} from {{ent|prop_static}}/{{ent|propper_model}} directly to the static prop lump entry. This allows YBSP to be used with custom VRAD forks that add additional static prop flags without explicitly adding support for them.
* Strip entities with names starting with {{code|propper_}} by default, reducing the size of entity lump. This behavoir can be reverted with {{code|-keeppropperentities}}.
* {{code|%CompilePush_X}}, {{code|%CompilePush_Y}}, and {{code|%CompilePush_Z}}, which push [[QPhysics]] entities on the specified axis (in supported games). Any positive value will push on the axis in the positive direction, and any negative value will push on the axis in the negative direction. Speed is always the same, and the flags can be combined to move in diagonals. Designed for [[flowing water]] currents.
:{{warning|Loading a map using these flags in a {{portal2|2}}-based or {{csgo|2}} based game may result in the surface acting like [[paint]], grenade clips, or drone clips.}}
* Uncommented {{code|-maxlightmapdim}} and {{code|-defaultluxelsize}} parameters, making them usable.
:* {{code|-maxlightmapdim <[[float]]>}} - Maximum size an individual brush face's lightmap is allowed to be before being automatically subdivided. If this exceeds 32 (default), a warning will be printed about it being incompatible with vanilla engine branches.
:* {{code|-defaultluxelsize <[[float]]>}} - Luxel scale to use if luxel scale is 0 or absent. Default 16.
* Explicitly supports {{code|enablelightbounce}} KV on [[static prop]]s when using {{gmod}} [[VRAD]]. This behavior can be disabled with {{code|-nogmodcompat}} parameter.
 
=== From Mapbase ===
=== From Mapbase ===
* Thread limit increased to 32
{{note|The only features from Mapbase 7.2's VBSP which are missing from YBSP are related to [[vscript]] integration; see [https://github.com/Yuis-Archives/source-sdk-2013_vs2022/issues/2 GitHub issue].}}
* Removed warnings for occluders straddling multiple brushes, as this is believed to have only been a problem in 2004-2006 versions of Source
* Thread limit increased to 32.
* Fixed func_detail smoothing groups (from [https://github.com/ValveSoftware/source-sdk-2013/pull/391 ValveSoftware/source-sdk-2013 #391])
* Removed warnings for [[Func_occluder|occluders]] straddling multiple brushes, as this is believed to have only been a problem in 2004-2006 versions of Source.
* Applied various manifest fixes (from [https://github.com/DeathByNukes/source-sdk-2013 DeathByNukes/source-sdk-2013])
* Fixed {{ent|func_detail}} smoothing groups (from [https://github.com/ValveSoftware/source-sdk-2013/pull/391 ValveSoftware/source-sdk-2013 #391]).
* Allowed all models with [[$staticprop]] to be used as prop_static (replicated from [[Slammin' Source Map Tools|Slammin' Source]])
* Applied various manifest fixes (from [https://github.com/DeathByNukes/source-sdk-2013 DeathByNukes/source-sdk-2013]).
* Parallax corrected cubemap support (from the [[Parallax_Corrected_Cubemaps|VDC article]])
* Allowed all models with [[$staticprop]] to be used as {{ent|prop_static}} (replicated from [[Slammin' Source Map Tools|Slammin' Source]]).
* -leaktest enabled by default and replaced with a -noleaktest command (replicated from Slammin' Source)
* Parallax corrected cubemap support (from the [[Parallax_Corrected_Cubemaps|VDC article]]).
%* compileNoShadows command (replicated from Slammin' Source)
* {{code|-leaktest}} enabled by default and replaced with a {{code|-noleaktest}} command (replicated from [[Slammin' Source Map Tools|Slammin' Source]]).
* Areaportal leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used)
:{{note|YBSP re-adds {{code|-leaktest}} as an inert parameter, to prevent it from stopping compilation.}}
* Default cubemaps not generated by default due to an in-shader alternative used by Mapbase; new -defaultcubemap command to reinstate behavior (was previously just -nodefaultcubemap, which was replicated from Slammin' Source)
* {{cmd|%CompileNoShadows}} command (replicated from Slammin' Source).
* Raised limits based on research from ficool2:
* [[Areaportal]] leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used).
:* Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other internal entities)
* Default cubemaps now longer generated by default; new {{code|-defaultcubemap}} command to reinstate behavior (was previously just {{code|-nodefaultcubemap}}, which was replicated from [[Slammin' Source Map Tools|Slammin' Source]]).
:* Raised maximum VBSP overlays from 512 to 8192
* Raised limits based on research from {{u|ficool2}}:
:* Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other [[internal entities]]).
:* Raised maximum VBSP [[info_overlay|overlays]] from 512 to 8192.
:{{note|Maximum VRAD worldlights is also raised to 65536, but this project does not touch VRAD itself, and as such will not include a custom VRAD build.}}
:{{note|Maximum VRAD worldlights is also raised to 65536, but this project does not touch VRAD itself, and as such will not include a custom VRAD build.}}
* [[propper_model]] support
* {{ent|propper_model}} can be treated as {{ent|prop_static}}; this still requires running [[Propper]] beforehand.
* Fixed custom shaders not being lightmapped
* Fixed custom shaders not being lightmapped.


== External links ==
== External links ==

Latest revision as of 18:29, 11 June 2025

SirYodaJedi/YBSP
Development On Hold
TypeOpen source Third Party Tool
DevelopersSirYodaJedi,
Open source contributors to Mapbase
EngineSource Source
Based onSource 2013 Multiplayer's VBSP
 
GitHub
Icon-under construction-blue.png
This is a draft user page. It is a work in progress open to editing by anyone.
Remember to check for any notes left by the tagger at this article's talk page.

YBSP ("Yui's BSP") is an upcoming fork of VBSP for Source 2013 Multiplayer, with almost all of Mapbase VBSP's features, plus additional features.

It can also be used for Team Fortress 2 branch Garry's Mod by running from a Source 2013 Multiplayer game's bin folder.

It is currently on hold as its developer determines how best to upgrade to the Team Fortress 2 branch Team Fortress 2 branch codebase.

Features

New features

Note.pngNote:Several contents flags will require being used alongside %Contents_Empty to have the desired effect.
Icon-Bug.pngBug:%Surf_* compile flags change the contents instead of the surface flags.
  • %CompileDebris, which (should) block bullets and VPhysics, but allow QPhysics to pass through. Useful for stairs.
  • Add func_group. This currently acts the same as grouping world brushes with Ctrl+G, but additional functionality is planned.
Icon-Important.pngImportant:Hammer++ Hammer++'s lighting preview will inaccurately show the brushes as not casting shadows unless the vrad_brush_cast_shadows KV is set to 1. To work around this issue, the FGD that will ship with YBSP will have 1 set as the default value.
  • Rename info_null entities to _null, preventing vanilla game code from treating them as edicts for the first tick.
  • Replicate %CompileTeam from Left 4 Dead seriesLeft 4 Dead series, for mods that wish to use those flags for their own purposes.
  • Write spawnflags from prop_static/propper_model directly to the static prop lump entry. This allows YBSP to be used with custom VRAD forks that add additional static prop flags without explicitly adding support for them.
  • Strip entities with names starting with propper_ by default, reducing the size of entity lump. This behavoir can be reverted with -keeppropperentities.
  • %CompilePush_X, %CompilePush_Y, and %CompilePush_Z, which push QPhysics entities on the specified axis (in supported games). Any positive value will push on the axis in the positive direction, and any negative value will push on the axis in the negative direction. Speed is always the same, and the flags can be combined to move in diagonals. Designed for flowing water currents.
Warning.pngWarning:Loading a map using these flags in a Portal 2 Portal 2-based or Counter-Strike: Global Offensive Counter-Strike: Global Offensive based game may result in the surface acting like paint, grenade clips, or drone clips.
  • Uncommented -maxlightmapdim and -defaultluxelsize parameters, making them usable.
  • -maxlightmapdim <float> - Maximum size an individual brush face's lightmap is allowed to be before being automatically subdivided. If this exceeds 32 (default), a warning will be printed about it being incompatible with vanilla engine branches.
  • -defaultluxelsize <float> - Luxel scale to use if luxel scale is 0 or absent. Default 16.
  • Explicitly supports enablelightbounce KV on static props when using Garry's Mod VRAD. This behavior can be disabled with -nogmodcompat parameter.

From Mapbase

Note.pngNote:The only features from Mapbase 7.2's VBSP which are missing from YBSP are related to vscript integration; see GitHub issue.
Note.pngNote:YBSP re-adds -leaktest as an inert parameter, to prevent it from stopping compilation.
  • %CompileNoShadows command (replicated from Slammin' Source).
  • Areaportal leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used).
  • Default cubemaps now longer generated by default; new -defaultcubemap command to reinstate behavior (was previously just -nodefaultcubemap, which was replicated from Slammin' Source).
  • Raised limits based on research from ficool2:
  • Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other internal entities).
  • Raised maximum VBSP overlays from 512 to 8192.
Note.pngNote:Maximum VRAD worldlights is also raised to 65536, but this project does not touch VRAD itself, and as such will not include a custom VRAD build.

External links