1. Forums
  2. Discord
  3. About Mapcore
  4. Patreon Supporters
  • Login
  • Register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • More Options
  1. Mapcore
  2. Discussions
  3. Level Design

Dynamic lighting, weather, and logic

  • sevin
  • June 6, 2015 at 8:33 AM
  • sevin
    • June 6, 2015 at 8:33 AM
    • #1

    Hi guys,

    I just bought CS:GO yesterday and have been poking around the SDK to get my footing as I log my first few hours.

    After decompiling all of the maps included at this time, I have a few questions.

    The first is: how is the dynamic lighting done? I remember reading it's an entity that works in conjunction with the light_environment, called env_cascade_lighting. Cross-checking with the VDC seems to support this is the entity that does that. But inspecting my decompiled maps seems to reveal that most use light_directional or nothing at all. I've only found one map so far (de_lake) that uses env_cascade_lighting. And Dust2 apparently has neither of these entities even though it still has dynamic lighting. In any case, the entities angles never match the light_environment's angles. Can someone shed some light on this?

    The next question I have concerns rain: which system do I use? de_aztec apparently uses a huge func_precipitation brush entity set to particle rain as its type. When I try this, nothing happens. It's blank. The "rain" and "particle rainstorm" systems work but they don't look nearly as good as Aztec's. Also, the rain apparently causes splashes in standing water. Is this caused directly by the particle rain detecting its surface and applying the effect or is there something more to that?

    Lastly for now, I'm confused on how alternate game modes are setup, like arms race and demolition. I assumed there'd be a master entity just telling the game first and foremost that the map was an arms race or demolition map like how koth and arena is done in TF2, but I can't find anything like that. I also see a lot of info_armsrace_terrorist/counterterrorist entities scattered around arms race and demolition maps. Is there a reason for this? As far as I can tell, you still spawn in at the info_player_terrorist/counterterrorist entities as usual.

    I will probably come up with some more questions as I continue to snoop around since the CS:GO SDK is quite different than all the other Source games before it. Thanks in advance!

    sevin

  • DrywallDreams
    • June 6, 2015 at 8:49 AM
    • #2

    light_env also enables cascaded shadow maps (dynamic shadows) automatically based on their parameters.

    Aztec might use additional particle effects, I'm pretty sure particle rainstorm is what it uses, without being able to look at the moment. If it is actually particle rain, try copy/pasting the brushes from Aztec and see if that works. IIRC rain does make splashes on water automatically.

    Gamemodes are determined based on a console command. IIRC the console command to control it is "mp_gamemode (0-4)". When uploading to the Workshop, you can choose what gamemodes your map supports. info_armsrace_* are used to differentiate regular spawns from Arms Race for the retrofitted Demolition maps, the server needs to be running arms race to use them though. Demolition just uses the normal info_player_* spawns.

  • sevin
    • June 6, 2015 at 9:20 AM
    • #3

    Thanks for the info, Drywall. So I don't actually need env_cascade_lighting at all? Light_environment entities automatically do it in CS:GO?

    So to clarify the spawnpoints: I'd put those extra ones in if I wanted the map to double as an arms race map?

  • DrywallDreams
    • June 6, 2015 at 9:27 AM
    • #4

    Yes and yes. I wouldn't advise just throwing in Arms Race spawns into a regular de map or something though, wouldn't end up being the most fun to play.

  • leplubodeslapin
    • June 6, 2015 at 10:40 AM
    • #5

    Actually the entity env_cascade_lighting is automatically created if not placed manually. It takes the parameters it needs from the light_environment as said before.
    I remember at the beginning of the CS:GO SDK, it was necessary to compile your map in -final in order to get these shadows (and not in -fast or -normal), maybe it's not the case today. (But still, compile in -final it's better :D )

  • Vaya
    • June 6, 2015 at 10:53 AM
    • #6

    you need -final for decent lighting/shadows. if it does 2 lighting passes you have the correct setting (takes a while even on simpler maps)

    I would recommend doing a -final compile every so often because it can radically change the lighting on your map - it adds reflections to white walls etc


    Edit - actually...this isn't true, read post below.

  • leplubodeslapin
    • June 6, 2015 at 11:04 AM
    • #7
    Quote from Vaya

    you need -final for decent lighting/shadows. if it does 2 lighting passes you have the correct setting (takes a while even on simpler maps)

    I would recommend doing a -final compile every so often because it can radically change the lighting on your map - it adds reflections to white walls etc

    Wat ?

    No the thing that might take 2 lighting pass is one for the HDR version and another one for the LDR (= no HDR).
    The LDR is useless on CS:GO, since people can't disable the HDR in the video parameters. It will double your compilation time and your map file size for nothing, it's useless.
    Edit your compilation configuration and change the -both with -hdr.

    And I think there is also radiosity with normal compilation but it's less accurate.

  • Vaya
    • June 6, 2015 at 11:15 AM
    • #8

    haha cheers. Saves me some compile time...Learn something new everyday.

  • leplubodeslapin
    • June 6, 2015 at 11:34 AM
    • #9

    np you're welcome ^^

  • sevin
    • June 6, 2015 at 5:04 PM
    • #10

    So if env_cascade_lighting is automatically generated, that explains the maps that don't have that entity in them, but what about the ones with light_directional?

    Also I looked back at Aztec and it appears the rain is the result of a single func_precipitation spanning the entirety of the map. It is also using particle rain. I assume the "particle" means it has collision detection.

    Another question: how do people map for this game alone? CS:GO is way more detail-oriented than any other Source game and that translates into a lot more work for the mapper. Also, there is more close-quarters combat in houses than the other Counter-Strike's, and that makes for some really hairy brushwork. How do you guys go about laying out a house?

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself Login
Discord

The Mapcore Discord is our lively IRC channel of the 2000s reborn. Chat about level design, gaming, and more.

Latest Posts

  1. Custom Gamemodes Contest

    Angel
    July 20, 2026 at 11:46 AM
  2. FAQ

    Angel
    July 20, 2026 at 10:14 AM
  3. Tangerine

    Harry Poster
    July 18, 2026 at 11:10 AM
  4. Any of the old guard still around? D:

    Warby
    July 12, 2026 at 8:23 PM
  5. About our archived forums

    Thrik
    June 30, 2026 at 2:12 PM
  6. Mapcore Discord

    mason_fan123
    June 24, 2026 at 8:52 PM
  7. [CS2] Valley

    Serialmapper
    June 22, 2026 at 11:56 AM
  8. Free Music / SFX Resource - Over 2500 Tracks

    Eric Matyas
    June 18, 2026 at 12:32 PM
  9. Pango [WIP]

    Elowen
    June 11, 2026 at 10:13 AM
  10. [CS2] Dvina

    Jeremy Rivera
    June 11, 2026 at 10:03 AM
  1. Privacy Policy
  2. Contact
Powered by WoltLab Suite™