FarCry 2 inspired map, early terrain prototyping.

I have been playing FarCry2 lately, and all of a sudden I got this idea to make a map that was themed off of Africa. I got this idea because FarCry2 breaks up it’s map into small segments, that are about the max seize of a big hammer map each.

So I whipped up some terrain and made a base for my map. The idea is to have dirt roads combined with check points, houses, and various places from FarCry2 like “Mike’s Bar”. Including some shanty houses on top of cliffs, basically all the things you would expect to see in FarCry2.

The map vegetation is trying to be mostly Savannah, with an Oasis in the middle.

Here is what I have done with it so far:

http://i.imgur.com/CWkemTo.jpg[/T]

The biggest issue here, is source engine’s limitations, its extremely hard to get good vegetation. I tried my best to make this Oasis look decent, I even manually placed the grass all around it, and optimized the grass by letting it fade out when get about 4000 away from it. It took about 5 hours of work.

I personally say it’s not too bad, speaking the map is meant to have a good overall look, its not meant to be overly scenic, since the map is huge and will have some RP elements in it. The map needs to at least look decent though, I want it to make you feel like you in a FarCry2 like world.

The major things that down the overall quality, is the fact that you can’t have more then 64k detail props, so my thick Savannah grass just wasn’t possible on my displacements. Blend textures are limited to only 2 blends which is a bit of a bummer. By far the most annoying thing, is how restrictive the displacement details are!

If you have any suggestions, tips, or reminders I would appreciate it, its been a long time since I made a map, and its been never since I have tried to make one based around nature while huge enough for RP elements.

P.S. If you have never played FarCry2, here is an example image of the map’s general style:

[T]http://www.psnation.com/wp-content/uploads/2016/01/far-cry-2-ps3-scr-15.jpg

Very nice start, though the water is so dark it looks like tar, try a lighter more brownish water texture
Also the darker ground texture under the tall grass looks weird when the grass is lighter than the ground

Hey you can cut the entire map into segments, remember how in Half-life the loading, that’s because you transition from one map to another while playing the game. Try doing that.

I totally agree! I think I am gonna lighten up the ground texture, and darken the grass to meet them half way, so they look a bit lighter and consistent.

The water definitely needs to be changed, I didn’t experiment with other water textures yet since I ran out of time.

This is kind of the coloration I am looking for:

[editline]4th August 2017[/editline]

In order to do that it would have to be single-player only, and in that case I would just build the entire first area of FarCry2, which would be bad@ss!

But we are talking about Garry’s Mod, so my map needs to be devoid of minor details and map transitions, so that way it can played on in MP and have room for people to place their own props.

It’s definitely gonna have checkpoints though, I think they are just gonna consist of a few shanties and some sandbags for borders, something that looks good and established but empty enough to play with.

The only details I will put in is things like, maybe an occasional burnt car or so, of course it has to have a decent amount of vegetation, I even found some really cool acacia trees I can use, I will probably stick the trees around and only include bushes near trees, cliffs, and locations to keep things simple enough.

The locations, I might stuff a dirt strip air field in there somewhere toward the bottom of the map. I am also thinking about paying homage to FarCry2 by adding in 2 bus stations, on the corner diagonal from each other. They are gonna have open fields so player can park their own bus models in it, but I am gonna make it to where if you use a map, its gonna teleport you to the other bus station using the actual FarCry2 sound effect.

Those are things I have in mind, while I punish poor Hammer Editor by forcing it to behave like Dunia engine with it’s terrain. Hammer really hates it! But lets hope hammer editor can agree on things as I work with it’s displacement system, so far, its making me work hard for it but I am slowly finding out ways to achieve it… lol

How did the grass take 5 hours to make?
The way you phrased your OP- It’s not detail sprites?

Yup, those patches of grass are actually 127x96 prop_dynamics (Only because that model didn’t support being a detail prop) but it worked out for the best because its grass big enough that it kind of needed to be visible from further away.

The reason why I did this is because I don’t think workshop allows custom detail.vbsp’s and I am not sure how the compiler would handle the engine having 2 detail files. I just know you can route to a different detail file and detail material through the Map Properties.

Also, I would have used a texture that makes the grass look like Savannah grass, but because of Hammer’s limitations it would just be too thin to count, so what I am currently using will have to be ok. Unless anyone knows how to work around that.

I would not suggest going about the grass as you are. Its not efficient at all (As I am sure you noticed) and will eat up a lot of the max entity limitation of Hammer. I’m afraid it also doesn’t look very good. The texture on the model you are using has a sharp contrast between the blades of grass- creating a very “visual noisy” looking grass. You should look to soften the blend between the ground, and the grass on it for a more natural looking foliage and scenes. The way I look at it is: “Grass is a thing that just happens on natural surfaces” it doesn’t do well as a centre piece.

Here is an example of what I am taking about:
https://steamuserimages-a.akamaihd.net/ugc/388796648237846165/4BF467368F878F8A003C0EB0F65EB9FB6B0BDABE/
The grass shares the same(ish) contrast and colour pallet as the texture below it. It creates an overall softening of the two different entities making it feel more natural and real(ish).

For what you are going for, I’d definitely suggest just making your own spritesheet of grass and other vegetation and using $detailsprites. You would have full control over the size, width, and height of the grass. Not to mention colour and verity of foliage. It would also allow you to create a more dense grass sprite to fill out a space more effectively. Though you’d have to deal with Source default 1200 cl_detaildist fade out. (I think there is a work around)

As well, I am pretty sure Workshop does support custom vbsp’s packed in bsp’s. I’d honestly be surprised if it didn’t.

This should make it look 100x better:

[editline]5th August 2017[/editline]

I appreciate the advice! Yes, this is exactly what I was thinking today.

Well, if it will work, I can try to make my own sprite sheet and detail.vbsp, and edit the map properties to direct to them. Then use pack rat to pack inside the map files, sometimes this doesn’t always work though… It will always work for textures, models, and sound but I am not so sure about much else.

I still couldn’t have nice Savannah grass for the rest of the map though. Since the thing is entirely of displacements, it goes past a 64K detail limit! Thats why i used generic desert foliage from HL2, because it works.

P.S. “deal with Source default 1200 cl_detaildist fade out. (I think there is a work around)” The only way to work around this is most likely just to make the map auto run a command to increase this… With Garry’s Mod server’s can do this on their own, so I am probably not gonna worry about it.

[editline]5th August 2017[/editline]

Yeah, if you look at both images, the white contrast around the grass is a bit of a bummer. I mean… It’s not the most horrifying thing, but I am definitely gonna want to try and fix it.

Disable shadows on the the grass, maybe also tone down the normal maps on the grass.

Here is something a friend made a while back.
You may be able to take some inspiration from this, even though it was made in another engine.

Thanks, I never thought about this being an issue of the normal maps, I am gonna do a bit of research. The shadows on this is actually already disabled, that white lining shows up more in hammer editor.

I thank you for showing me this, that’s the thing though, that was done in an entirely different game engine. I wonder what engine this was made in, is this Unreal? or perhaps Unity? Regardless, most game engines these days have a way to paint vegetation, even Hammer Editor V2 for Dota 2 can do that!

The rest of Valve’s games have just been left in the dust, so we are using inferior technology that is hard to work with. Garry’s Mod will never use Source Engine 2 mostly because it would loose compatibility with all the other games, and all mods would have to be redone.

It would be a sh!t show!

[editline]5th August 2017[/editline]

I have attempted to do this, and I ran into a few issues. The .vbsp can only define density for all groups, not individual ones, so the Oasis would have very light grass too. If I did want to go through with it, I would have to cut up 4 displacements simultaneously around the Oasis, then try to use a custom texture to fill the land in with grass, hoping it doesn’t go over the detail limit.

What I did wasn’t very efficient but it did 2 things, it allowed me to customize its fade distance, and it it allowed me to have precise placement of grass around the water.

The main back draws, as you have said, is that it doesn’t blend very well do to the white lining there, and it takes 40.7%!!! Of total entity data. Which is just mentally insane, but on the flip side, since this map is gonna be a Garry’s Mod map, its not gonna have a whole lot more entity data.

This is probably gonna remain as the most difficult and taxing part of the map…

[editline]5th August 2017[/editline]

I found out the white line issue! Its just the texture… who ever made them didn’t blend their alphas very well apparently…

Here is a prototype, I took the texture file and made one big color square, this was the result:

http://i.imgur.com/XO08MyP.jpg[/T]

It looks better despite it’s one tone color, but I am not gonna stop here. I am gonna try to just shave off the alphas around the edges of the actual texture, and see where it goes.

[editline]5th August 2017[/editline]

This is the Oasis at it’s current state, what do you think?

[T]http://i.imgur.com/wcFkpuk.jpg

Alternate Lion King story not included.

I was about to mention the lack of edge padding in the texture, but I see you fixed it already :smile: I think it looks a lot better now, mainly due to the improved alpha blending and reduced visual noise.

For what its worth, there’s no need to pack your .vbsp file into your map or addon, as the file is only used by the compiler. All you need to pack are the material and texture of your detail sprites. And if you want more control over where detail sprites appear, you can use a custom compiler with support for the func_detail_blocker entity. I released one, originally, but my changes have also been implemented in HAVOK’s custom compilers. His version should have a higher detail sprite limit, as well.

If you want to keep using prop_dynamic entities, I recommend doing some profiling to determine whether you’re really improving performance by using multiple models with fade distances. Merging everything into a single model could end up being significantly faster.

Thanks! I appreciate the feed back.

I ended up figuring out that packing the .vbsp file was a waste of time once I did some research (Its even called .vbsp , which is a good indicator that its only to give information to the vbsp.exe . i.e lights.rad).

I appreciate the suggestion on a custom compiler, I installed it for its increase in limits perk, unfortunately it doesn’t have an increase in detail sprite limit yet.

I do want to check to see if it actually improves performance to fade out my dynamic entities. I reckon it should, since I don’t really see any other point it in.

[editline]5th August 2017[/editline]

Never mind on that custom vbsp.exe, it seems to give my map this error “Cannot load the static props… encountered a stale map version. Re-vbsp the map.” and refuses to finish compiling. I am not sure why though, it worked fine the last couple of compiles… I never tried a custom compiler before, so maybe I had an over sight?

[editline]5th August 2017[/editline]

Yup, it does actually seem to improve performance.

I started work on adding in some cliffs, this is the fist one I tried to make:

I wasn’t really sure how I was gonna approach it, so I ended up doing it like it’s the FarCry editor. It actually turned out pretty nice in my opinion.

What do you think?

Well that sucks, I have spent all day trying to convert a model to force it to be static, after I got it to work it flipped it’s axis. This reverted a lot of progress.

NOTE: If you want to change something to prop_static, determine if it can be a static prop first (just because the little “static” box is checked in the MDL viewer, doesn’t always mean that’s true). Convert the models over, THEN make complex prop placements. Other wise your props are gonna be completely flipped, and if they had other rotations, flipping them back 100% accurately will NOT be possible.

Now, if hammer supported manipulation based off of prop orientation, NOT world orientation this might be compromisable… I doubt thats a thing though… I tried searching for it found nothing.

How did you do it? Only program you need is"crowbar" you decompile the .MDL and end up with a bunch of .smds and a .QC file. In that .QC you add $staticprop, compile the QC with crowbar again and youre done. No changing of the .smd files whatsoever. There shouldn’t be any reason the orientation is messed up if done like that.

Exactly what i was thinking! That’s what I did, I used a mdldecompiler.exe that I got off the Valve Wiki. Then I manually added the $staticprop to the .QC and of course renamed the model and directed it to a custom texture (I didn’t even rename the .bmps inside the .smd file, I just placed the texture in the new directory with the exact same name).

After that I ran it with studiomdl.exe and when it was finished… it somehow flipped the model, it didn’t do this when I test compiled it without the $staticprop, so changing that changes it’s axis?

Kind of like how all usable vehicle models share the same orientation, they always face Y , Maybe that has something to do with it?

Perhaps there is a way to edit the orientation manually in the .QC? Maybe this program you mention as Crowbar can preserve orientation?

[editline]6th August 2017[/editline]

Here is what it looks like:

Old model:

New model with $staticprop enabled:

[editline]6th August 2017[/editline]

When i try to just flip them on the axis they turned on, hammer will NOT flip them based on the model axis, but based on the world axis which makes it skew… So it looks like I will have rebuild the roof.

[editline]6th August 2017[/editline]

I figured it out! Turns out mdldecompiler.exe has a little bit of rust so it doesn’t decompile correctly. Crowbar fixed the prop’s orientation, but I still have one issue, despite the prop having $staticprop (Turns out this was there by default, but nasty old mdldecompiler.exe ddin’t even read that).

It still does this:

Error! prop_static using model “models/smashballs/props_debris/metal_panel01a_c.mdl”, which must be used on a dynamic entity (i.e. prop_physics). Deleted.
Error loading studio model “models/smashballs/props_debris/metal_panel01a_c.mdl”!

[editline]6th August 2017[/editline]


// Created by Crowbar 0.44.0.0

$modelname "smashballs/props_debris/metal_panel01a_c.mdl"

$staticprop

$bodygroup "Body"
{
	studio "metal_panel01a_reference.smd"
}


$surfaceprop "metal"

$contents "solid"

$cdmaterials "smashballs\models\props_debris\"

$cbox 0 0 0 0 0 0

$bbox -1.969 -24.423 -65.719 3.088 24.249 65.907


$sequence "idle" {
	"metal_panel01a_anims\idle.smd"
	fadein 0.2
	fadeout 0.2
	fps 30
}

$collisionmodel "metal_panel01a_physics.smd"
{
	$mass 150
	$inertia 1
	$damping 0
	$rotdamping 0
	$rootbone " "
	$concave

}

$collisiontext
{
	break 
	{
		"model"		"props_debris/metal_panelchunk01a"
		"health"		"10"
		"fadetime"		"30"
	}
	break 
	{
		"model"		"props_debris/metal_panelchunk01b"
		"health"		"10"
		"fadetime"		"30"
	}
}

$KeyValues
{
	prop_data 
	{
		"base"		"Metal.Large"
	}
}

This my .QC , I just don’t know what I need to remove in order for it be used as a static prop. Perhaps it has something to do with this?


nodes
  0 "static_prop" -1
end

It’s at the top of all the .smds

Try like this :



$modelname "smashballs/props_debris/metal_panel01a_c.mdl"

$model "Body" "metal_panel01a_reference.smd"

$surfaceprop "metal"

$staticprop

$cdmaterials "smashballs\models\props_debris\"

$sequence "idle" "metal_panel01a_anims\idle.smd" fps 1 loop

$staticprop

$collisionmodel "metal_panel01a_physics.smd"
{
    $concave
}

Thank you! But… I already solved it, i compared it with a static prop .QC , and noticed this:


$collisiontext
{
	break 
	{
		"model"		"props_debris/metal_panelchunk01a"
		"health"		"10"
		"fadetime"		"30"
	}
	break 
	{
		"model"		"props_debris/metal_panelchunk01b"
		"health"		"10"
		"fadetime"		"30"
	}
}

$KeyValues
{
	prop_data 
	{
		"base"		"Metal.Large"
	}
}

I was like: "… What’s this garbage? If it’s just gonna sit there and collect bird poop, why does it have all of this fancy technology! Back in my day, vertical sync wasn’t even a thing, you couldn’t look up! You and your “physics”!

[editline]6th August 2017[/editline]

I am not actually old, but the point is if anyone struggles with this, and wants their horrible collection of prop_dynamics to be something manageable like prop_statics:

1.) Use Crowbar to convert the model

2.) Add $staticprop to the .QC

3.) Then erase extra physics data

4.) Compile.

5.) Maybe grab some aspirin because this was a hospital worthy headache!

Can I skip right to step 5? I like Aspirin
Oh and btw do you have a 3d skybox already? If not I’ve read about a tool recently that lets you generate pretty decent Landscapes. Ill find it and edit this post.

Oh? Sounds neat man, I will take a look at it.

I do have a sky box but its just blank so I can later add in some nice Africa flare to it.

I was even going to add a neat little skybox Pride Rock… so its 10x more Africa…