Cooking a Multiple Language Game

Hello friends, it’s me again.

After a lot of headaches I was able to fully localize my game to Chinese, Arabic and Portuguese, besides the default English. I am also able to change languages through my custom game launcher

Everything was working perfectly until I tried to cook the game, cook all the maps.

I know that cooking content is more for consoles, since on PC, UDK can run uncooked content also. However, at least for my old Vaio Notebook, loading cooked content is almost 5x faster than loading the uncooked content. But the problem is that it seems the way UDK Engine handles localization of binary files, the upk trick of just adding a sufix on the package name with the language code, like UDKFrontEnd_CHN (UDK | LocalizedTextFiles), for the engine load the correct upk file according the language selected, it seems to only work with uncooked content. I select all languages I want to cook in the UnrealFrontend.exe, however it only copies the localization folders with the *.int files, but it does not copy, in example, these localized packages (UDKFrontEnd_CHN.upk). I even tried to manually copy these localized packages to the CookedPC folder, but it does not work, no matter what I do, the engine simply does not load these localized assets.

But if I keep the maps uncooked, it works perfectly. But as I said, there are 2 problems. The game’s file size will be much bigger than the cooked game, and the loading time will be higher.

By the way, each time the game loads an uncooked map, it runs the UnrealShaderCompilerWorker.exe to compile shaders and this process, at least on my computer, takes too long.

So my question is, if I release my game with uncooked assets, how can I make the loading of each map faster, mainly avoid the compiling of shaders each time the game runs?

Sorry, man. I gave up on using cooked packages a long time ago. I just ran into too many problems.

In your version of GameEngine.ini, under [Engine.PackagesToAlwaysCook], did you include all of your localized packages?

1 Like

Hello man, yeah, I remember you commented this years before. I also think that I need to give up cooked content, I suppose this way I am using for localized content only works with uncooked content, because I did add my localized packages under [Engine.PackagesToAlwaysCook], however it did not work.

But another problem with uncooked content is that I have many upk packages that I did not use on my game, so how can I select only the packages used on my game without doing this manually, if there is a way.

Secondly, how can I avoid the shaders compiling each time an uncooked map is loaded?

I’m not sure about the unused assets. If you want to be completely sure they’re not taking up space, you could just delete them.

As for shaders compiling, I had that happen when a shader was too complex. Are any of your materials over 200 instructions? Once I simplified all of my materials as much as possible, the engine stopped recompiling them every time I loaded a level.

1 Like

Ok my friend, I think that manually organizing the game files is the best to go. About materials, no, the majority of my game’s materials are simple, but I will take a look and see if I can simplify them more.

Thank you very much.