Jump to content

jakuza

Members
  • Content Count

    92
  • Joined

  • Last visited

  • Days Won

    2

Reputation Activity

  1. Like
    jakuza reacted to Radix for an article, Static Prop Combine in CS:GO   
    Static Prop Combine in Counter-Strike: Global Offensive
    A step by step guide
    thanks to @untor
    What is Static Prop Combine?
    Static prop combine, or informally speaking "autocombine", is a new feature in CS:GO's VBSP.
    It allows VBSP to merge together multiple static props into a single static prop, either automatically or with user-defined rules.

     
    What is static prop combine good for?
    Static prop combine is another feature to optimize your maps. Most people might think that "the less geometry rendered the better". So if you use small props, it's easier to hide what is not visible.
    That's not wrong. But there is a problem:
    In Source, there is one draw call per model per material. And these draw calls are very performance-hungry.
    That's where static prop combine comes into play:
    By combining models sharing the same materials, less draw calls are performed, which greatly helps optimization.
    Valve has stated that Nuke runs 40% faster after they implemented static prop combine.
     
    How do I use static prop combine?
    The static prop combine feature was added in 2016 with the release of the reworked de_nuke. But since then it was not (?) used by community mappers, there are no (?) guides on the Internet except this documentation.
    @untor helped me to make static prop combine feature do its job. So we decided that it's time to publish a step by step guide how to use static prop combine.
    We presuppose that you are already familiar with the creation of props  
    0. Backup your CS:GO folder (optional)
    We do not take responsibility for any damage done to your files. So it's time to backup your game files now if you have not already. In general we recommend to duplicate your "Counter-Strike Global Offensive" folder, so you can use a separate installation of CS:GO for mapping while keeping the other one clean for playing.

    1. Source files
    You must have the source files of the models you want to be combined. Usually 3 files for each prop:
    *.qc reference mesh (supported formats are *.smd, *.dmx and *.fbx) physics mesh So if you want to combine props made by you, you should already have these files.
    If you want to combine props made by Valve, you will need to decompile them first. And then change the names - otherwise, the version of the prop that is packed in the VPK would overwrite your version.
        
    In this guide we will use two different pipe props:

    You can download the example files here (contains the *.qc and *.smd files) :
    example.zip
     
    Browse to "...\Steam\steamapps\common\content\csgo\"
    Create a folder "models". In our example we have another subfolder "example". Save the model source files there:
     

    These are our QCs:
    pipe_straight.qc
    pipe_curved.qc

    Notes:
    Restrictions for the *.qc:
    Only the first $body is recognized. $model is not recognized. $appendsource and $addconvexsrc are not recognized. You can only use $upaxis Z or Y.  
    2. Compile your props
    Your models have to be compiled from this directory now:
    Open your model compile tool (I use Crowbar)
    Then browse to "...\Steam\steamapps\common\content\csgo\models\example\" and compile the QCs.
    The compiled model files should be in "...\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\models\props\example\" now.
     
    3. spcombinerules.txt
    Browse to "...\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\scripts\hammer\spcombinerules\"
     

    There you will find "spcombinerules.txt". In this file the combine rules for Valves props are defined. It is a standard KeyValues-formatted text file. Each entry follows the format below.
    Rename it to "spcombinerules_valve.txt" (or whatever you want) and create a new text file "spcombinerules.txt".
    Then copy and paste the following into "spcombinerules.txt" and save it.
     

    4. Stub QCs
    Stub QCs are QCs which contain a base template for the QCs which static prop combine generates. Generally, they should only include:
    $staticprop $surfaceprop $cdmaterials Any $texturegroups used by the models. Browse to "...\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\scripts\hammer\spcombinerules\qc_templates\".
    In our example we create a new subfolder "example", open it and then create a text file and rename it to "pipe_combine.qc":


    Copy and paste the following into "pipe_combine.qc" and save it:
     
    5. Compile your map
    Add some of our example props to your map in Hammer and compile the map.
    In our example we use the following compile parameters for VBSP
    Compile parameters (full list here) :
    -StaticPropCombine: Merges static props together according to the rules defined in scripts/hammer/spcombinerules/spcombinerules.txt. This lowers the number of draw calls, increasing performance. It can also be used to lower the number of static props present in a map.
    -StaticPropCombine_AutoCombine: Automatically generate static prop combine rules for props that VBSP deems should be combined. Note: This does not write to spcombinerules.txt.
    -StaticPropCombine_ConsiderVis: Instead of using the distance limit, combine all props in the group that share visclusters.
    -StaticPropCombine_SuggestRules: Lists models sharing the same material that should be added to spcombinerules.txt.
    -StaticPropCombine_MinInstances <int>: Set the minimum number of props in a combine group required to create a combined prop. Tip:Valve had this set to 3 for the new Dust 2.
    -StaticPropCombine_PrintCombineRules: Confirm: Prints the combine rules?
    -StaticPropCombine_ColorInstances: Instances of combined props get colored.
    -KeepSources: Don't delete the autogenerated QCs and unpacked model files after finishing.
    -CombineIgnore_FastReflection: Combine props, even if they have differing Render in Fast Reflections settings.
    -CombineIgnore_Normals: Combine props, even if they have differing Ignore Normals settings.
    -CombineIgnore_NoShadow: Combine props, even if they have differing Disable Shadows settings.
    -CombineIgnore_NoVertexLighting: Combine props, even if they have differing Disable Vertex lighting settings.
    -CombineIgnore_NoFlashlight: Combine props, even if they have differing Disable flashlight settings.
    -CombineIgnore_NoSelfShadowing: Combine props, even if they have differing Disable Self-Shadowing settings.
    -CombineIgnore_DisableShadowDepth: Combine props, even if they have differing Disable ShadowDepth settings.
     
    6. Success?
    The combined props look exactly like the single props. So how can you be sure that the static prop combine process was successful?
    - Once the map is compiled, the combined props will be packed into your *.bsp automatically.
    - If you add -keepsources to the compile parameters, you can also find the combined props in "...\Steam\steamapps\common\Counter-Strike Global Offensive\csgo\models\props\autocombine\*name of your map*\"
    and their QCs in "...\Steam\steamapps\common\content\csgo\models\props\autocombine\*name of your map*\".
    - If you add -StaticPropCombine_ColorInstances to the compile parameters, instances of combined props are colored in CS:GO.
     
    7. Additional notes
    Hammer:


    - You can manually disable static prop combine for individual props with the "Disable Prop Combine" keyvalue.
    - Prop scaling (Uniform Scale Override) is not supported yet (?)
    - If the original props don't have a collision model, you will have to set collisions to "Not Solid" in the properties. Otherwise the combined prop will be solid (automatically generated collision mesh; causes problems).
    - If the props differ in specific keyvalues, in most cases the default (e.g. Alpha) or the higher value will be used (e.g. fade distances)
    - Props that differ in the below keyvalues will NOT be combined, unless manually overridden with the appropriate VBSP option:
    Render in Fast Reflections (-combineignore_fastreflection) Ignore Normals (-combineignore_normals) Disable Shadows (-combineignore_noshadows) Disable Vertex lighting (-combineignore_novertexlighting) Disable Flashlight (-combineignore_noflashlight) Disable Self-Shadowing (-combineignore_noselfshadowing) Disable ShadowDepth (-combineignore_disableshadowdepth) - Props that differ in the below keyvalues will NOT be combined:
    Skin Color Disable Flashlight  
    TO DO
    some fps tests with an actual map! which gives better results: " -StaticPropCombine_ConsiderVis" or prop combining based on distances? Is there a console command to display the number of performed draw calls/props? ...  
    ______________________________________________________________________
    Sources:
    https://developer.valvesoftware.com/wiki/Static_Prop_Combine
    https://developer.valvesoftware.com/wiki/QC
    https://developer.valvesoftware.com/wiki/VBSP
     
  2. Like
    jakuza reacted to FMPONE for an article, Congratulations to our finalists and Grand Prize Winner, DE_EMPIRE!   
    (Art by Thurnip)
     
    It's Time!
    It’s finally time to declare a grand prize winner in our exciting Counter-Strike: Global Offensive mapping contest. You’ve playtested the maps on Reddit, you've waited months for the results... let's get down to business!!
     
     
     
    GRAND PRIZE WINNER:
     
    DE_EMPIRE
    By Andre Valera

    Workshop Link
     
    Sometimes it boils down to consistency: broad strength across several categories. No map in our contest better exemplifies this notion of consistent quality than Empire.
    Empire features a stacked bomb-site layout similar to popular official maps like Nuke and Overpass. While this relatively unorthodox design presents level designers with additional challenges, Empire ably sticks its landing. Furthermore, the ambition of Empire’s design is tempered well by its no-nonsense visual presentation. We’re left with a digestible, fun, and very playable level.
     
    Congratulations, Andre Valera!
     
    Prize:
    Featured in a goRGNtv showmatch!
    Featured in CEVO PUG rotation for one month!
    $1000 and Mapcore swag!
    CS:GO prize pack courtesy of Valve:
    a signed CS:GO poster, lanyard, vinyl sticker
    SteelSeries Kana Mouse!
     
     
    2nd PLACE:
    DE_BOURG
    by Klems

    Workshop Link
     
    A truly unique map. Some felt it was the strongest entry in the contest given its strong theme, abundant polish, and beautiful visuals; others, however, questioned the map's small scale. This was a tough map to judge.  
     
     
    Prize:
    $400!
    CS:GO prize pack courtesy of Valve: 
    a signed CS:GO poster, lanyard, vinyl sticker
     
     
    3rd PLACE:
    DE_ROYAL
    By Jakuza

    Workshop Link
     
    An attractively sleek map, there is plenty of room for Royal to blossom into something very special. 
     
    Prize:
    $200!
    CS:GO prize pack courtesy of Valve: 
    a signed CS:GO poster, lanyard, vinyl sticker
     
     
    4th PLACE:
    DE_COAST
    By Ornate Baboon

    Workshop Link
     
    A map that was under heavy construction for much of our contest, one gets the sense that Coast wasn't quite ready yet. With a little bit more time, who knows?
     
    Prize:
    $100 + Mapcore swag!
    CS:GO prize pack courtesy of Valve: 
    a signed CS:GO poster, lanyard, vinyl sticker
     
     
    ~~~We at Mapcore would like to thank the r/GlobalOffensive moderators for their assistance, our lovely guest judges, Valve, goRGNtv, CEVO, as well as Gamebanana.com and Steam workshop artist EGO DEATH for contributing to our prize pool.
     
    Last but not least... THANK YOU, for making this 'Core event special and fun!
     
     
    "May Hurg guide you..."
     

  3. Like
    jakuza reacted to FMPONE for an article, Reddit + Mapcore CS:GO Mapping Contest!   
    (Art by Thurnip)
     

    /r/GlobalOffensive and Mapcore are teaming up to grow Counter-Strike: Global Offensive’s mapping community!  

    Check out the reddit thread for this contest »

     
     
    The Big Reveal
     
    We’re hosting a map-making contest for original, competitive 5v5 bomb defusal maps AND competitively-minded hostage maps, open exclusively to mappers who have not yet had their work featured in a Valve Operation! 
     
    Older projects are fair game: now’s the perfect time to polish up that map you’ve been working on but never got around to finishing. Experienced Mapcore judges and prominent members of the Counter-Strike community such as Sadokist, Moses, DDK, James Bardolph, and Anders Blume will be weighing in – but only one map can win it all.
     
     
    Helpful Playtesting
     
    Every week for the length of the contest, eligible maps will be playtested during /r/GlobalOffensive community nights according to a sign-up schedule. Slots on this schedule will be filled on a first-come, first-serve basis following an approval process, but we will try our best to accommodate everyone at least once. However, because it’s impossible to guarantee that all contest entries will have the chance to be playtested, /r/GlobalOffensive playtesting is a supplemental, helpful tool which will have no bearing whatsoever on contest judging.
     
    You can register for a playtesting slot here. Remember -- playtesting registration is first-come, first-serve!
     
     
    Enter Your Level
     
    To officially enter your level into this contest, post a WIP thread with a link to your level’s Steam Workshop page in Mapcore’s official event forum.
     
    Posting a WIP thread with a link to your level’s Steam workshop page constitutes your official entry into the contest, however you don’t need to do both at the same time. In other words, you can post your WIP thread and then update it later with your workshop link if you’re not ready to go right away. You can also feel free to continue updating your workshop level after you’ve posted your workshop link – contest entries will not be judged until after the submission deadline.
     
     
    The Deadline
     
     
    Your level must be submitted to Mapcore by August 31st, 2015 at midnight Pacific Standard Time (PST).
     

    Our panel of judges will then select four finalist levels based on the following criteria:
    Fun factor Visual/thematic presentation (graphics) Overall polish
    Grand Prize Deadline
    After the top four maps have been announced, /r/GlobalOffensive users will put them to the test!
    Once all four finalist maps have been tested, mappers will have two weeks to revise their work based on community feedback. After those two weeks, an official Grand Prize Winning Map will be chosen!
     
     
     
    Contest Calendar
     
     
     
    Our Goal
     
    The goal of this event is to raise awareness about Mapcore's incredible level design community and the incredibly useful playtesting capabilities of /r/GlobalOffensive. Both Mapcore and /r/GlobalOffensive are free resources available to all mappers. To date, Mapcore users are responsible for creating more than 70% of Valve Operation levels. Mapcore’s staff are unpaid volunteers, and do not personally profit in any way from additional traffic to the site.

    Prizes
     
    Of course, it wouldn’t be a contest without a reward… In addition to the helpful feedback and free publicity that CS:GO mappers will receive by participating in this event, each finalist will also receive:
    Eternal Bragging Rights™ and a showcase on Mapcore (where their level will be highly visible to industry-veteran game developers and the rest of the community) A monetary prize ($1000 + Mapcore swag for first place; $400 for second place; $200 for third place; $100 and Mapcore swag for fourth place) The top-finishing map will also be played in a competitive show-match casted and streamed by goRGNtv, for all to watch and enjoy! *NEW* CEVO has generously agreed to host the winning map in their PUG rotations for one month! *NEW* Added $1,000 to prize pool thanks to Gamebanana.com and EGO DEATH (gun skin creator) *NEW* Valve prizes!  
                       Top 4 will receive
    1. Signed CS:GO poster
    2. CS:GO Lanyard
    3. CS:GO Vinyl Sticker
     
             First place will receive a CS:GO prize pack:
    1. Signed CS:GO poster
    2. CS:GO Lanyard
    3. CS:GO Vinyl Sticker
    4. CS:GO SteelSeries Kana Mouse
     
     
    This is your big chance -- get to it!
    Good luck, mappers!
     
    Additional Rules
    Remakes of older maps are NOT allowed. All works must be original to you and their layouts must not have appeared in any prior versions of Counter-Strike. Custom artwork is allowed and encouraged, but must meet workshop guidelines. Collaborations are allowed and encouraged. Any contest winnings arising from a collaboration will be split in accordance with the collaborators' mutual agreement.  
     
    Judging Procedure
    Mapcore staff will rate their top four maps of the contest, results will be tallied and all votes given equal weight. Some time later, the judges and guest judges will rate the top four finalist maps and results will be tallied, with all votes given equal weight. Guest judges will be asked to act as tie-breakers in the event of any ties in the voting.  
    Mapcore Judges
    Jason “General Vivi” Mojica -- Creator of "Rose Iron" Skin (Overkill Software)
    Patrick "Puddy" Murphy -- Creator of CS_AGENCY (Overkill Software)
    RZL (Independent) -- Creator of DE_RESORT
    Shawn “FMPONE” Snelling (Independent)
    Johnny “Sprony” van Spronsen (Journalist)
     
    Guest Judges
    Matt "Sadokist" Trivett -- @Sadokist
    Jason “Moses” O’Toole -- @JmosesOT
    Daniel "DDK" Kapadia -- @followddk
    James Bardolph -- @jamesbardolph
    Anders Blume -- @OnFireAnders
     
    ---
    Our Thanks to 
    EGO DEATH (Steam Workshop author)


     
     
     
×
×
  • Create New...