Garry's Mod

Garry's Mod

gm_boreas
 This topic has been pinned, so it's probably important
Blueberry_pie  [developer] Sep 26, 2020 @ 6:47am
VMF/source release
Source files for gm_boreas, developed by Wouter Pleizier (aka Blueberry_pie)
Source release version 2020-09-26 (VMF version: 2020-02-16)

Download: https://www.dropbox.com/s/1okqatkyr8spdjj/gm_boreas_source.zip?dl=1
Mirror 1: https://drive.google.com/file/d/15VcbC2uKYyNGMu11J-qM3wv2YgxeQ5Un/view
Mirror 2: https://s.gvid.me/uw/mirror/ko/blueberry_pie/gm_boreas_source.zip

Feel free to use any of the content provided in this source release (except for HL2: Ep1/Ep2 content, which is owned by Valve) for any purpose you like. This includes modifying the map and distributing it, using parts of the map in your own maps and/or porting the map to other games. Please include a link to the original Workshop release if you do so, though.

I've put together some notes that may be useful. Please make sure you've read them before getting started with the source files.

Content
The map relies on a fair amount of custom assets and assets from Half-Life 2: Episode One and Episode Two. All of the assets used in the map (except for stock GMod content) are included in the content folder. Copy the contents of this folder to your game directory before compiling.

The source files of the custom assets are not included in this release.

Embedded content
The embed folder contains various assets that should be embedded in the BSP with the same folder structure. I do not recommend shipping these as loose files inside your addon, because they will either not load at all or override stock content in other maps that the player has installed.

Note: built cubemaps are also included in the embed/materials/maps/gm_boreas/ folder. At the time, the latest update to gm_boreas always caused GMod to crash when building the cubemaps, so I resorted to manually embedding the cubemaps from a previous compile. I do not know if this problem was specific to my hardware/installation and if it still occurs, but I've included them just in case. Only embed these if necessary. If you do, remember to change the name of the gm_boreas folder to the filename of your BSP before embedding. Also, bear in mind that the cubemap filenames correspond to the coordinates of env_cubemap entities in the map, so this process will not work for env_cubemap entities that you've moved or added yourself.

Compiling
The compilers folder contains the compilers that were used to build the latest version of the map. These compilers were modified and built by me and have the following features:
- Support for func_detail_blocker
- Support for dynamic/physics props as prop_static
- Large address aware, allowing for more memory usage on 64-bit systems
- Increased compile limits (doubled or quadrupled)

Warning: some of the increased limits in these compilers are higher than what GMod supports. If GMod crashes while loading your map, take a look at the fullness percentages in your compile log. The compiler may report that certain things (most notably brushsides and texinfos) exceed 50%, when in reality they will have exceeded 100%.

The default GMod compilers will likely not work for compiling this map, so you should probably use these custom compilers instead. Other custom compilers (e.g. Slartibarty's Slammin' compilers) might also work, but I have not tested this.

The map was compiled in Hammer's expert compile mode with these settings:
VBSP: -allowdynamicpropsasstatic
VVIS: default settings
VRAD: -ldr -lights boreas.rad -StaticPropLighting -StaticPropPolys -TextureShadows
VRAD: -hdr -lights boreas.rad -StaticPropLighting -StaticPropPolys -TextureShadows

Known issues:
- If VRAD crashes for no apparent reason, try running it with -threads 1. This is much, much slower but it fixes some rare crashes.
- When compiling both LDR and HDR lighting, running two separate VRAD processes tends to be more stable than using the -both parameter. However, the second VRAD run seems to mess up the first run's detail prop lighting (e.g. if you run LDR first and then HDR, the detail props will have incorrect lighting in LDR). Whichever lighting mode is most important to you, run that one last.

AI
For the nodegraph: info_node entities are placed throughout the map. GMod should be able to generate a functional nodegraph on its own using these nodes.

For the navmesh: before generating, I strongly recommend setting the convar nav_max_view_distance to 1 (not 0, because this causes a default distance to be used). While this may limit some bot functionality, it also massively reduces the calculation time and file size, which is pretty much essential for a map of this size. (For reference: on an i5-2500K, the default nav_max_view_distance caused the calculation to take 5 days, and it resulted in a 700 MB navmesh file that took ages to load.)

Roads
The roads, paths and landing strips are a single huge prop with an overlay material. This allowed for more flexible texture mapping and better integration with the terrain, but unfortunately it also means that it can't be modified inside Hammer. The prop was made by importing the terrain displacements into a 3D modeling tool (in my case, 3ds Max via Wall Worm) and then creating road-shaped cutouts of the terrain geometry.

Foliage
To reduce the number of draw calls and improve performance, all of the trees are batched as much as possible. There are 27 unique props, each containing a large number of trees (about as many as a single model in Source can fit) arranged for a specific section of the terrain. Unfortunately, this means that it's not possible to move or delete individual trees, unless you edit the model it's contained in.

The bushes in the map are all detail props. Originally, I'd let the compiler spawn these and use func_detail_blocker where necessary. However, I ended up needing so many func_detail_blocker brushes that I exceed the BSP limits. To work around this, I took the generated detail props from a simplified version of the map and converted those to prop_detail entities that I could place in the VMF. This way, no func_detail_blockers are necessary at all (though they can still be found in a hidden VisGroup in the VMF). It's unconventional and honestly kinda horrible, but prop_detail entities and automatically spawned detail props are handled the same way by the compiler so the end result is the same. (If you want to let the compiler spawn detail props like normal, remove the prop_detail entities from the VMF and change the density in boreas.vbsp)
Last edited by Blueberry_pie; Sep 26, 2020 @ 12:30pm
< >
Showing 1-15 of 34 comments
lordeemaster Nov 19, 2020 @ 2:19am 
When I compile the map, the soundscapes do not work. I tried compiling the map from an unchanged vmf file and everything works except the soundscapes. Do you know what I could be doing wrong?
Blueberry_pie  [developer] Nov 19, 2020 @ 3:27am 
Originally posted by lordeemaster:
When I compile the map, the soundscapes do not work. I tried compiling the map from an unchanged vmf file and everything works except the soundscapes. Do you know what I could be doing wrong?
You'll likely have to embed soundscapes_manifest.txt and soundscapes_boreas.txt into your BSP, using the same folder structure as the contents of the embed folder.

Theoretically it should also be possible to put these soundscape files in your GarrysMod/garrysmod/scripts directory, but I'm not 100% sure if this works. And if it does work, keep in mind that it can prevent stock HL2/GMod soundscapes from working, unless you merge the contents of the manifest with that of the default manifest.
Last edited by Blueberry_pie; Nov 19, 2020 @ 3:28am
lordeemaster Nov 19, 2020 @ 5:49pm 
Originally posted by Blueberry_pie:
Originally posted by lordeemaster:
When I compile the map, the soundscapes do not work. I tried compiling the map from an unchanged vmf file and everything works except the soundscapes. Do you know what I could be doing wrong?
You'll likely have to embed soundscapes_manifest.txt and soundscapes_boreas.txt into your BSP, using the same folder structure as the contents of the embed folder.

Theoretically it should also be possible to put these soundscape files in your GarrysMod/garrysmod/scripts directory, but I'm not 100% sure if this works. And if it does work, keep in mind that it can prevent stock HL2/GMod soundscapes from working, unless you merge the contents of the manifest with that of the default manifest.
Oh, got it, thanks! Works perfectly now. I love the map btw! Amazing work.
Blueberry_pie  [developer] Nov 20, 2020 @ 2:11am 
Originally posted by lordeemaster:
Oh, got it, thanks! Works perfectly now. I love the map btw! Amazing work.
Glad to hear it, and thank you! When the time comes, feel free to show off your modified version of the map here or elsewhere in the discussion forum. I'm always eager to see the changes that people make.
TheOgre26 Feb 20, 2021 @ 9:38pm 
I have a few theories on why in game performance suffers optimal fps (~30fps):
1. Massive amounts of extra skybox area is unused, thus also slowing the compilation time.
2. Potential overuse of func_viscluster, but I have yet to prove it.
3. .vbsp detail_props default density and/or model visibility range too far (but I have not been able to change that).
I'm no expert at this; correct me if I am wrong. I will keep posts on any new optimization experiments/tests.
Blueberry_pie  [developer] Feb 21, 2021 @ 4:24am 
Originally posted by TheOgre26:
I have a few theories on why in game performance suffers optimal fps (~30fps):
1. Massive amounts of extra skybox area is unused, thus also slowing the compilation time.
2. Potential overuse of func_viscluster, but I have yet to prove it.
3. .vbsp detail_props default density and/or model visibility range too far (but I have not been able to change that).
I'm no expert at this; correct me if I am wrong. I will keep posts on any new optimization experiments/tests.
The detail props definitely have an impact on the frame rate, but I felt that the current settings gave a decent balance between performance and quality. Plus, there are clientside commands for reducing the render distance or even disabling them entirely, so I figured I could get away with it.

There's not much I can say about the other theories at this point. Gut feelings can be misleading when it comes to performance, so I would advise testing them out and doing before/after comparisons with the cl_showfps and +showbudget commands. I don't have the time or energy to experiment with this map any more, but I'm eager to hear about your findings if you want to look into it.
MARK2580 Dec 29, 2021 @ 4:38pm 
Concerning compilers: should these compilers work in gmod / bin with replacement? Or are they for SDK 2013? As I understand it, these are some compilers that were previously posted on the facepunch forum ???
Blueberry_pie  [developer] Dec 30, 2021 @ 5:12am 
Originally posted by MARK2580:
Concerning compilers: should these compilers work in gmod / bin with replacement? Or are they for SDK 2013? As I understand it, these are some compilers that were previously posted on the facepunch forum ???
Either should probably work. Replacing GMod's compilers is what I did for the release that's currently on the workshop. That's probably the easiest method, so I'd try that first. Just keep in mind that they probably won't work if you're currently on the 64-bit branch of GMod.

And yes, I've previously posted these compilers on the Facepunch forums as well. The ones included in the download here are probably the same, or they have some additional raised limits. I don't remember exactly.
Last edited by Blueberry_pie; Dec 30, 2021 @ 5:13am
Azazyr Jan 26, 2022 @ 11:27am 
really new to this so this will probably seem dumb, but where do you put the expert compile settings in at?
Blueberry_pie  [developer] Jan 27, 2022 @ 7:01am 
Originally posted by Cringe Woman Lady Thing:
really new to this so this will probably seem dumb, but where do you put the expert compile settings in at?
When you open the Run Map dialog (F9), click the Expert button if you haven't done so already. From there, you can put the appropriate settings in the Parameters field of each compile process, like in this image.[i.imgur.com] Just make sure you put the parameter(s) before the existing -game parameter. Also, by default there's only one $light_exe (VRAD) item in the list, so you'll need to create an additional one if you want both LDR and HDR lighting (running VRAD once with the -both parameter is technically also an option, but it's prone to crashes in my experience).

I should warn you that gm_boreas pushes GMod to its limits, and that finishing the project involved a ton of headaches. If you're new to Hammer then I would strongly advise you to start by creating a simple map on your own, rather than editing an existing one (especially one as complex as this).
quand j'essaye de compiler la carte, on m'indique que le fichier est introuvable. Auriez vous une solution ?
Blueberry_pie  [developer] Sep 20, 2022 @ 10:00am 
Originally posted by Docteur:
quand j'essaye de compiler la carte, on m'indique que le fichier est introuvable. Auriez vous une solution ?
Make sure you use the custom compilers that are included in the zip file, and that you use the compile parameters listed in the first post and in the readme. If you've done that and the compile still fails, post your compile log and I'll take a quick look at it.
Le problème a bien été réglé, mais maintenant c'est le sol que je vois en noir. ^^'
Last edited by ALISTAIR RAVENSCROFT; Sep 26, 2022 @ 7:09am
Blueberry_pie  [developer] Sep 26, 2022 @ 10:04am 
Originally posted by Docteur:
Le problème a bien été réglé, mais maintenant c'est le sol que je vois en noir. ^^'
Glad to hear you're on the right track. But again, you'll need to post a compile log if you want me to help you with these kinds of problems. Otherwise there's not much I can do, in most cases.
Riggs Oct 31, 2022 @ 2:33pm 
How long did it take to normally compile?
< >
Showing 1-15 of 34 comments
Per page: 1530 50