Draconus Battle Camp/Mods---Tank Stuff/Dynamic Weather/Winter/Mudrunner OverHaul

Funny thing with editor...pavel asked me before game launched to do write up on what to improve in the editor..which mind you was complete waste of my time even writing the damn thing...5 hours it took and was detailed with pics...he didnt do anything i suggested....one of which was different terrain sculpting brushes including errosion...i do alot of unreal 4 stuff on the side and the unreal 4 terrain creation part is damn amazing period

I also wish pavel did new way for water use....instead of laying a flat plane overlay why not simply paint the water in real time ....Grim dawn has an editor and full modding tools which i also play with and guess what there terrain editor allows you to actually paint water in real time...
Hell at least Pavel could have done water body brush simple circle that you can scale for doing ponds and lakes....and also roads could be painted using a simple material brush...wider you make the brush wider road is...this way you can easily join them

@draconus
How does the game react with the type map you speak about,some creation in the workshop are allready hard to run properly even with LAA let alone the stock executable.

@joridiculous wow anything over 64 for block size is why ur having issues eventualy...the engine has set resource limits in the exe itself even with LAA enabled that 4 gig patch st mod exe itl still have issues with this due to these

Eventually figured this out through tons of testing even with the LAA enabled and why editor has limits set on everything for example how manny plants per block and num blocks a map can be comprised of

You can also adjust the height map ceiling in the editor ....editor common shader but unless you understand HLSL coding i wouldnt mess with it and same can be done on game exe itself using mod exe but....ive tried to explain to people there are limits for a reason so go over that and its ur own risk with crashing and other typical non sense when you push the engine to far

I wouldnt mess with any of it since doing so will eventually lead to problems even with the st mod exe and that 4 gig mem patch...

Also dont go nuts with models my friend nor distributions...Super Scott found out hard way wouldnt listen to me at all with his dirt time map and a rediculous 9k+ in models and rediculous amount of distributions....you cant throw that manny 3d models at the rendering engine and why maps that run like crap with low fps dips this is why...too manny 3d models on the map in a givin area will cause the fps dips...constant fps tanking is form too manny models period combined all over the map...another issue ive found is also what i call terrain stuttering...this is were vehicle is in motion and ur fps is up there yet terrain is stuttering at times when moving past you also knowin as rendering hitch....a slight pause which is matter of milliseconds 😉

Take the above into account when your play testing ur map....if you get any of the above in say certain area or progressively over the entire map best thing to do is optimize ur model usesage then ur distributions and remember models with multiple meshes put even more of a load on the rendering engine side of the game...people dont think about that one 😉

Distributions contain 3d models so you know so eventually you simply overload the rendering engine side of the game and FPS will tank constantly....saddly we cant throw to much at the engine due to ir being dx9 32 bit....if dx11 64 bit support was done on game itself and resource limits blowin out in to left feild then were talking some serious creative stuff can be done...and not having to rely on a engine hack 3rd part program which is what mod exe actually is ...hacks and why i dont mess with it

Like i also said you guys rely on something that isnt even supported by saber,focus or pavel and technically if saber wanted too they can easily put anti hacking software imbeded into game exe so mod exe will simply stop working no matter what Alex Nez tries to do to make it work again...reason why is technically mod exe is on same level as pirating software

its a 3rd party program that is used to hack into existing game coding and get around steam drm that is in the exe

You guys have no idea how skitish Local Host was way way back on st with st plus...why....came out and simply tells me hes a software pirate pretty much and hacks all sorts of stuff which is illegal 😉

last edited by Draconus

Yeah regarding the map sizes on the Editor 32x32 is Optimal, anything over 40 is pushing it regarding the lighting/shadows and how they act.

Im outa here guys recovering from my surgury i had on may 3 and waiting on the biopsie stuff to come back
Miserable is not a word i would use...been a hurting unit
Just poped on here quick to check stuff...

@Raphael answer to ur question above see what i posted....the stuff i mentioned about write up to pavel was permanent improvements to editor itself which saddly Pavel didnt do a damn thing period...even the new terrain brushes would have been nice nope we still have crummy circle brush nothing more...

Terrain sculpting brushes i talk about check out unreal 4 vids on making terrain...then you guys will understand were i was coming from...map making can be takin to whole new level

@Digital-X that is due to down sampling of the light map and shadow map due to block size of the map...why smaller maps seem to look better in these areas in the editor...

Its only in the editor view in game regular light map res and shadow map res is used

If you do map like 64 x64 when you startup the editor and then ur map look at info below youl see message at bottom saying to manny visible blocks down sampling light map (resolution x1)

I am going to one of these nights see if i can stop that from happening for simple creative reasons...having perfect lighting and shadow on a map while ur making it is key

So 64 x 64 map will have normal resolution light and shadow maps 😉

last edited by Draconus

Ahh screw it its 540 am gona look at it know

Well found the mud map height ...

float4 mergeMudPS(in float2 screenPos : VPOS, in float2 tc : TEXCOORD0) : COLOR0
{
float2 screenTC = (screenPos + .5f) * g_vBBSizeInv;

float4 mud = tex2D(g_samTexture0Clamp, screenTC);
float4 mudMerge = tex2D(g_samTexture1Clamp, tc);

float tFade = 1.f;
tFade *= lerp(1.f, saturate(tc.x / .25f), g_vColor0.x);
tFade *= lerp(1.f, saturate(tc.y / .25f), g_vColor0.y);
tFade *= lerp(1.f, saturate((1.f - tc.x) / .25f), g_vColor1.x);
tFade *= lerp(1.f, saturate((1.f - tc.y) / .25f), g_vColor1.y);
float fHeightOffset = MUD_MAP_HEIGHT_OFFSET(mudMerge) * (MAX_EXTRUDE_DEPTH + MUDPOOL_HEIGHT_MAX_PUSH) - MAX_EXTRUDE_DEPTH;
MUD_MAP_HEIGHT_OFFSET(mud) =
	(MAX_EXTRUDE_DEPTH +
	MUD_MAP_HEIGHT_OFFSET(mud) * (MAX_EXTRUDE_DEPTH + MUDPOOL_HEIGHT_MAX_PUSH) - MAX_EXTRUDE_DEPTH +
	fHeightOffset * tFade) / (MAX_EXTRUDE_DEPTH + MUDPOOL_HEIGHT_MAX_PUSH);	
MUD_MAP_TRACKS(mud) += MUD_MAP_TRACKS(mudMerge) * tFade;
MUD_MAP_OFFSET_XZ(mud) = 0;
return mud;

Gotcha Drac. 5.40am jesus. I normally wake up then.

Here is section for flatten brush and how the brush coding looks

float4 brushFlattenHMPS(in float2 screenPos : VPOS, in float4 c : COLOR0) : COLOR0
{
float2 screenTC = (screenPos + .5f) * g_vBBSizeInv;
float hmSmooth = 0;
int x,z;
for (x = -2; x <= 2; x++) {
for (z = -2; z <= 2; z++) {
hmSmooth += tex2D(g_samTexture0Clamp, screenTC + float2(x, z) * g_vBBSizeInv).r / 25.f;
}
}
float2 centerTC = (g_vColor0.xy + .5f) * g_vBBSizeInv;
float hmFlat = lerp(
hmSmooth,
tex2D(g_samTexture0Clamp, centerTC).r, g_vColor0.z * .5f);

float hmSample = tex2D(g_samTexture0Clamp, screenTC).r;
return float4( lerp(hmSample, hmFlat, c.a * g_vColor0.z), 1.f, 0.f, 0.f);

}//

Height brush coding

float4 brushHMPS(in float2 screenPos : VPOS, in float4 c : COLOR0) : COLOR0
{
float2 screenTC = (screenPos + .5f) * g_vBBSizeInv;
float hm = tex2D(g_samTexture0Clamp, screenTC).r;
float hmAdd = c.r > .5f ? 1.f : -1.f;
hmAdd *= pow(c.a, .3f) * g_vColor0.x;
//smoothstep(0,1,c.a)
hmAdd *= .005f;

// empiric offset
hmAdd += .0001f;

// clamp output value
// fill G with solid color
return float4( saturate(hm + hmAdd), 1.f, 0.f, 0.f);

And light map coding for day in editor...when i get up later today going to look at this closer as what im looking for is here
on the light map downsizing due to map size ur making (affects editor view window only)

// MapBase
// LightMapDay1Base
float4 lightMapDay1BasePS(in float2 tc : TEXCOORD0) : COLOR0
{
float4 blockMapTC = AdjustBlockMapTexCoord(tc);
float4 blockMap = tex2Dlod(g_samTexture0Clamp, blockMapTC);
float blockY = UnpackBlockHeight(BLOCK_MAP_HEIGHT(blockMap), tc, g_vBlockHeights);
float tint = BLOCK_MAP_TINT(blockMap);

// take high lowres mip (approximate texture color)
float4 diffuseGrass = tex2Dlod(g_samTexture1, float4(tc, 0, 16.f));	
float4 diffuseDirt = tex2Dlod(g_samTexture2, float4(tc, 0, 16.f));
float3 grassTint;
float3 dirtTint;
if (g_isOutputBaseMap) {
	grassTint = GetGrassTint(tint);
	dirtTint = GetDirtTint(tint);	
} else {
	grassTint = lerp(1.1f, TERRAIN_TINT_GRASS * 3.2f, tint);
	dirtTint = lerp(1.1f, TERRAIN_TINT_DIRT * 3.2f, tint);
	diffuseGrass.rgb = normalize(pow(diffuseGrass.rgb,1.8f));
	diffuseDirt.rgb = normalize(pow(diffuseDirt.rgb,1.8f));
}
float4 groundColor = GetTerrainDiffuse(
	diffuseGrass, grassTint, 
	diffuseDirt, dirtTint, 
	BLOCK_MAP_DIRT( blockMap ));	

float fAlpha;
if (g_isOutputBaseMap) {
	// store real height in alpha
	fAlpha = blockY / MAX_HEIGHTMAP_VALUE;
} else {
	if (g_isHaveOverlay) {
		float2 tcOverlayMap = (tc + .5f / BLOCK_OVERLAYMAP_SIZE) * BLOCK_OVERLAYMAP_SIZE / (BLOCK_OVERLAYMAP_SIZE + 1.f);		
		float alpha = tex2D(g_samTerrainOverlayMap, tcOverlayMap).r;

		float4 diffuseOverlay = tex2Dlod(g_samTerrainOverlay, float4(tc, 0, 16.f));
		diffuseOverlay.rgb = normalize(pow(diffuseOverlay.rgb,1.8f));
		diffuseOverlay.rgb *= lerp(1.1f, dirtTint, .6f);	

		groundColor = lerp(groundColor, diffuseOverlay, alpha);
	}
	float4 lightMap1 = tex2D(g_samTerrainLightMapNight1, g_vLightMapLeftTopTC + tc / TERRAIN_GEOMETRY_NUM_SUPERBLOCKS);
	float4 lightMap2 = tex2D(g_samTerrainLightMapNight2, g_vLightMapLeftTopTC + tc / TERRAIN_GEOMETRY_NUM_SUPERBLOCKS);
	float occlusion = lightMap1.a;

	// get rid of occlusion within direct light
	float attenParam = (UnpackLightHeight(lightMap2.b) - blockY) / UnpackLightRange(lightMap2.a);
	float distAtten = saturate( (1.f - abs(attenParam)) * 2.f );
	float3 diffuse = UnpackLightColor(lightMap1.rgb) * distAtten;
	occlusion = saturate(occlusion + dot(diffuse, .1f));	

	fAlpha = occlusion;
}
return float4(groundColor.rgb, fAlpha);

@joridiculous very nice map by the way ..... that constant shade is the shadow map getting messed up because the shadow map max size is 64 x 64 in the shader stuff for the editor...so pretty much rendering engine hits this area past the 64 x 64 size and cant figure out wtf to do so bam you get all black wierd shadow over whole section of map that is actually the amount over the engine limit

Answer to ur question on the rock distribution its tied to certain tiles through there xmls in classes folder...Grass brush is set to DebriChuncksSparce on what ever tile ur mainly using........why it suddenly does it for you...i hate the fact pavel has done this which is lazy and takes away from full control over everything which is what you want when making a map
You can fix this but you have to pack new terrain xmls with the map when you upload it...what im doing since mine are custom for this perticular map...i need alot of messy grass which im doing post on below to explain new ide ai came up with so you can litterly use thousands and thousands of same grass messy brush on areas to creat super thick dense grass

Will post some pics too of natural hills with water erosion done as well as how thick i got the grass know on the Adirondack Mountains map 😉

Im also going to post how to do ur own house light which can be applied to any of the windows in game including the garage itself which ive done on my map...know all i ask guys is if you use my ideas please add me to credits of the map and what idea ur using...i like having respect from people when i take the time to design and come up with these little things to make stuff nicer for everyone

So answer to ur wierd show question is buggering the rendering engine doing a map that size for simple reason like i explained above and above that too and ur going to have problems form players with lower end machines as well on that thing due to this...

You can save it if you want some pointers how to do so....click on mod folder area if you have the map in prebuild folder itself and simply create new terrain exact same map name and do size of max 64 x 64...when it loads in hit rebuild and you have ur exact nice map with everything recreated in smaller map size

Know you will have to fix some stuff here and there but everything will be laid out the same...also height map will be better since its not over stretched so hills and mountains will have alot more height to them

If anyone ever wants serious help with editor stuff or map optimizing due to fps hits and stutters hit me up on my dev page in a PM...i know the editor stuff like back of my hand

And if anyone sees this and would like to get in touch and help out with some advanced editor stuff im working on particle emitter which you place in a tree with x,y,z direction that can be adjusted like the models do ....blowing leaves can be done very easily like this also fog across a lake water surface which is second emitter idea i have and dust that can be done on hill tops and high points of terrain...

I also have another design idea for river use included animated water wheel and lumber mill....couple actually one of which involves logs and draw bridge setup that will work just like the check points do 😉

So last night worked on this for a bit since i couldnt sleep and damn pain form the swelling ive been dealin with is something so thought some work may keep me occupied...here i increased the amount of messy grass per block form 1200 stock to 4000

I then took the moss grass brush used that with mesh line set for grass messy texture ...then in brush xml i increased blcok size from 1500 to 4000....by doing this im using two different distribution brushes with 4000 max grass messy meshes per terrain block...

Its an idea i came up with to make super thick grass without overloadng the engine by using multiple grass brushes...this was mainly for testing purposes when im finsihed im going to add new section to the common for my own custom grass messy brushes which ill call grass_messy_2 to go with stock one already there...ill then go in find the grass mesh in mesh cache make copy of it then rename it and also same for the grass messy xml....know we have another grass brush with its own mesh simply renaming copied files to what i need

I then used the grass tile which has grass messy for grass brush added to it and line called IsThickGrass="true'

I so far havent had any issues in editor and pushing the messy grass distributions to unheard of levels to create this super thick dense grass i wanted for this map

Here i also show pics of natural hill done with water erosion lines ....already looking awesome and i havent even added the little touches in yet

alt text
alt text
alt text
alt text

The above is rough of the erroded hill ...going to work on it bit more tonight and got some other things im going to do as well

On the above help im looking for some one with really good 3ds max skills...pretty much a modeler is what im looking for if anyone would like to help please feel free to contact me on my dev page or on here in pm

Interested in helping with the emitter. Would like to assist with 3DS Max but my skills are at a nursery level compared to yours haha.

The more I can learn about the editor the better. I feel quite restricted atm until I can can dig into the files and really have a play around.

I did leave a comment on your FB page too.

Also this emitter and grass per block to 4000, is this editing existing XMLs or making new ones? Writing code is my forte but editing and tweaking I can do.

Regarding the water mill, I tried making an object in 3DS MAX then placing that in a river, but it wouldn't spin with the flow, not sure how that's done reaction wise. Like when it moves a truck for example.

last edited by Digital X

@Digital-X to edit the amount of stuff per block go to prebuild folder then common folder...brush xml is there open it up scroll down to bottom section this one

<Grass>
<Strobiles PlantsPerBlock="200">
<PlantType Brand="strobiles" />
</Strobiles>
<GroundLeaves PlantsPerBlock="200">
<PlantType Brand="ground_leaves" />
</GroundLeaves>
<GrassShort PlantsPerBlock="2000">
<PlantType Brand="grass_short" />
<PlantType Brand="grass_dry" />
</GrassShort>
<GrassMoss PlantsPerBlock="4000">
<PlantType Brand="grass_moss" />
</GrassMoss>
<GrassMessy PlantsPerBlock="4000">
<PlantType Brand="grass_messy" />
</GrassMessy>
<GrassLong PlantsPerBlock="700">
<PlantType Brand="grass_long" />
</GrassLong>
<DebrisStonesSparse PlantsPerBlock="100">
<PlantType Brand="debris_chunks" />
</DebrisStonesSparse>
<DebrisStones PlantsPerBlock="1200">
<PlantType Brand="debris_stones" />
</DebrisStones>
<DebrisChunksSparse PlantsPerBlock="600">
<PlantType Brand="debris_chunks" />
<PlantType Brand="grass_dry" />
</DebrisChunksSparse>
<DebrisChunks PlantsPerBlock="1800">
<PlantType Brand="debris_chunks" />
</DebrisChunks>
<Daisy PlantsPerBlock="320">
<PlantType Brand="daisy" />
</Daisy>
</Grass>