What is Content 'Cooking' and why is it so slow?

Hello!

I’ve worked with several frameworks used for making games before, such as SpriteKit, Cocos2d and Pyglet. This is my first time using something advanced as Unreal Engine. I’m a little unfamiliar with ‘Content Cooking’. Reading the documentation, I’m left with the impression, cooking is preparing textures, perhaps putting them in an optimized format for a particular package (such as iOS,Windows, or Mac). I’m not sure if I’m right about that, or if there is more to it then that. If someone could explain it in greater detail,I would appreciate it (or point me somewhere that does, because the current documentation I find on the Unreal website isn’t really doing it for me).

My last question is, why is it so slow? Using the “basic” template provided in the editor, it takes forever to finish packaging the application. If I do it on my windows machine, its not so bad, maybe like 15 minutes-ish, and I’ have an i7 haswell processor. On my macbook pro, if I move the project over, and try to cook it there, it takes HOURS. Now my macbook pro is far from a beast, but its hard for me to imagine what’s going on that takes so much work. And this is just using a basic template application, I’m concerned what will happen with a real game.

Is there something I’m not getting here? Also, is it possible to do the content cooking for ‘iOS’ on my windows machine, then package it all together on my mac machine since my windows is a lot more powerful? (if so, how would I go about doing this?)

HI! I am wondering the EXACT same thing,… why is cooking content so slow on the mac?

That is actually something we are addressing, which is PVRTexTool is very slow to cook at the best quality level. We are using a new version of the tool on the Mac that defaults to best quality. The old Windows version was fast, but probably not as good quality.

In 4.3, we are unifying Windows and Mac on the new PVRTexToolCLI, and we now default to fastest. There is a commandline switch when cooking to override the quality (and they use different keys in the DDC, so if you cook with low quality, then switch to high, it won’t reuse the low quality version from the DerivedDataCache).

I am currently looking at the best way to expose the setting (possibly a project setting in the editor for the PVRTC quality), so that you don’t need a commandline cook to choose a better quality.

And yes, you can cook on Windows for IOS, but you would need to set up signing stuff on the PC so that you can sign the .ipa on Windows. You could cook on Windows than copy over your DerivedDataCache directory to the Mac (maybe, never tried this). To cook:

UE4Editor-cmd PathToUProject.uproject -run=cook -targetplatform=ios -map=Map1+Map2+Etc

Josh

Thanks for the info Josh. Also, I found out later I had the ‘Include Stater Content’ this was also making things much slower (I kinda feel this should be unchecked by default). It would be also nice if a setting in the future where we can choose to cook on the windows (opposed to using the command tool).

@joshbadams

Hi Josh, i know this was a while ago and looks like you are still at epic! (y). I work in the arch viz industry and trying to get the best out of the ipad for internal scenes. I see that pvrtc quality does compress the quality of the textures, but these days we run such good quality mobile devices (ipad pro A12 processor) we could bump it up a bit. Could you share some light on the exact parts of the engine (Settings) that compress the quality down from the desktop version.

Is it just the quality settings in project settings or other things? by this i mean