Killing Floor 2

Killing Floor 2

KF1 Manor
 This topic has been pinned, so it's probably important
Kill Master  [developer] May 11, 2016 @ 12:30am
Why is the map as big as it is? This is a pretty long read, so get comfy.
Disclaimer: I’m going to try and explain things to the best of my ability; however this is a pretty loaded topic. Things might get a little complicated at times, but please bear with me.

Alright, so first things first; this is not Killing Floor 1 and because of that you can’t expect the map sizes to remain as small as they did in KF1. Now I’m sure someone in the room is going to tell me “but, but… there are loads of maps out for KF2 that are 50MB or lower, so why are yours so big?

Short answer *TEXTURES*

Long answer; UE3 uses multiple texture maps to make up the in game materials that you see plastered on geometry. In KF2’s case the game primarily uses three to four texture maps to make up a material; Diffuse, Normal, Specular, and on occasion Emissive. UE3 can however support many more than the four I just listed off.
In comparison KF1 primarily uses just a Diffuse with the odd Specular located in the “Alpha Channel”, and on occasion a Bump map might be thrown in.
This however is only just the tip of the iceberg, there are many other factors that contribute to the increase in file size from Killing Floor 1 to Killing Floor 2.

Next up on the list is Texture Resolution. On average KF2 uses textures that are twice the resolution of KF1, however doubling a textures resolution does not mean the size doubles as well. More often than not the images file size will increase exponentially this increase can be anywhere from 3x to 5x the original size, this is due to how texture compression algorithms operate on pixel information as well as how complicated that information is.
For the sake of simplicity I won’t go into any specifics on the different types of compression methods out there, however I will provide some links at the bottom for further reading.

There are a few other factors that also contribute to the file size increase such as, but not limited to; the different compression methods used by UE3 Vs. UE2 and total amount of Unique non-referenced textures used in a given level.

To put it simply the overall level quality and complexity has drastically increased from KF1 to KF2, so an increase in file size is not only expected, but necessary as well.

Now that you understand why my maps are as big as they are I’m sure many of you are asking. “Why are other maps so small?” There’s actually a very simple answer to that, and it all has to do with referencing textures & assets already created and loaded into the game by Tripwire. If all you do when you create a map is reuse the assets that Tripwire has created then your total file size will remain quite small, since at that point all you’re left with is geometry, light maps, and level data/scripting. All of that information can easily be fit into 20MB file.
In my maps however I will seldom if ever reuse any of Tripwire’s assets from the base game, thus the much larger file size.
A prime example of this can be found in your games map folder. If you take a look at the size of all the default maps they average out to around 100MB~ each. HOWEVER “Black Forest” is just over 500MB, this is because Black Forest uses primarily unique textures that aren’t found in other maps and it’s also a perfect example of what I just talked about.

So that basically covers why the vast majority of custom maps currently available for KF2 are so small.

A personal note from Me.
I understand that my maps are large when it comes to file size, but that doesn’t mean that I’m not trying to compress things as much as possible. HOWEVER until Tripwire enables full support for custom Master materials and some sort of compression for map packages passed through a redirect there is only so much I can do.


Also for any of you who are knowledgeable about common types of texture compression used in games I have tried to use “DDS” images with BC1, BC3, and BC3n texture compression (formally known as DXT1, DXT5, and DXT5_NM). However the UDK won’t accept them since it already applies this type of compression on texture import. Normally this wouldn’t be a problem, but I have noticed that when applying the same type of compression in engine as I do with the NVIDIA texture tools plugin for Photoshop I experience considerably better results in Photoshop than I do when using the UDK. I can only assume this is because the compression algorithms being used by Epic and the ones being used by NVIDIA are slightly different. I believe that this might very well be the case, especially after reading NVIDIA’s documentation which states that the “Direct Draw Surface” (DDS) format in particular can support numerous types of compression.

Hopefully all of you who read this found it useful, and now you have a better understanding of where things are at in the world of Killing Floor 2 custom maps. :)


Links for additional reading:

DDS Compression settings for export (Great tutorial by “DieByZer0” on the CryEngine forums)[www.cryengine.com]

Garage Games Texture compression Guide (Very good read)[docs.garagegames.com]

Normal Map Compression[code.google.com]

High Quality DXT Compression[code.google.com]

Programming Guide for DDS[msdn.microsoft.com]

Reference for DDS[msdn.microsoft.com]

Compressed Texture Resources (Direct3D 9)[msdn.microsoft.com]

Block Compression (Direct3D 10)[msdn.microsoft.com]
< >
Showing 1-8 of 8 comments
sev May 15, 2016 @ 3:02pm 
why bother explaining this?

the people that have a mind to complain about the filesize will probably not be smart or patient enough to process all this, and the people that either understand why already or don't care won't bother reading it.
Kill Master  [developer] May 15, 2016 @ 3:19pm 
Quote from one of my posts on the TW Forum:
"My little wall-o-text was primarily directed at the individuals who may not understand why the maps are getting as big as they are (or people who are just curious). It was designed to give a very basic understanding of what’s all going on under the hood in an effort to quell some of the misconceptions surrounding the final map sizes."

I have it written in a way that even if the reader doesn't fully understand all the terminology being used they should still be able to grasp the general idea, and if they still have a problem with it then it's no chip off my shoulder.
Last edited by Kill Master; May 15, 2016 @ 4:35pm
sev May 15, 2016 @ 4:06pm 
hey, if you want to preemptively explain something very few to no one will read, no worries :thumbs:

at least you wrote it well
Last edited by sev; May 15, 2016 @ 4:07pm
Jynx May 16, 2016 @ 2:35am 
Intresting read thanks
sev May 16, 2016 @ 3:58am 
Originally posted by Sparks♥:
Intresting read thanks
stop proving me wrong
Dmitriy Jun 18, 2016 @ 12:41am 
How did you port textures from kf1?
Did you take kf1 256x256 textures and upscaled them to 1024x1024, then added antialiasing and sharpening in photoshop?
Kill Master  [developer] Jun 18, 2016 @ 1:06am 
Originally posted by Dmitriy:
How did you port textures from kf1?
Did you take kf1 256x256 textures and upscaled them to 1024x1024, then added antialiasing and sharpening in photoshop?
Pulling the textures from KF1 is a pretty simple task as the SDK allows you to export the textures to a “DDS” (Direct Draw Surface) file which can be then opened with the aid of the NVidia Tools[developer.nvidia.com] plugin for Photoshop.

The textures in KF1 range from 64x64 to 2048x2048, and the newer the map, the higher the average texture size becomes. Only certain textures that can benefit from a resolution increase get up scaled. I do this by using a Photoshop action in a batch process that runs the images through a whole slew of filters, this allows me to process hundreds of images in a few minutes.
Once I’ve finished up scaling the selected textures I then proceed to generate Normal & Specular maps for *ALL* the textures used in the level this is done through Quixel[quixel.se] (another plugin for Photoshop)

On occasion I will create a completely brand new texture from scratch if the situation warrants it. I use Allegorithmic’s Substance Designer[www.allegorithmic.com] to do that.

And that’s basically my process for pulling and re-mastering textures.
Last edited by Kill Master; Jun 18, 2016 @ 12:09pm
Thanks for the explanation, now I understand better, I tought that the + 3D models have a way more important role in the size.... I tried to make maps for KF1 and 2, but I really got frustrated in the map makers... I made maps in Valves Hammer Map Editor with no problem, but I can't get used to the KF map makers for some reason.... :(
< >
Showing 1-8 of 8 comments
Per page: 1530 50