It basically appears that anything that isn’t referenced by my map isn’t able to be found. The size of the packaged .exe and installed game appear to be what i would expect.
If i manually add a package under [Engine.StartupPackages] in DefaultEngine.ini, then content in that package can be found in the packaged game. But obviously I can’t add all my packages here.
IIRC that’s how UDK works. anything that isn’t referenced by a map or by code won’t be cooked as it’s deemed unnecessary.
you don’t need to add them as StartupPackages, IIRC adding them as PackagesToAlwaysCook should be enough
Thanks for the response @Chosker. The thing is i’ve never had to do that before (nearly 5 years working on the project). Pretty sure it takes your game type and looks for all references in the code to know what to cook.
I’ve installed a fresh copy of UDK on a secondary computer and have added all my current content/config/maps/code etc, and that also has the same problem. So it’s definitely something I’ve done. I’m currently in the process of adding a previous month’s backup, ensuring that works, then slowly adding the new stuff to see what triggers the issue. Pretty painful process (especially seeing as I was looking forward to releasing my new update).
I wonder if it’s some reference I’ve added somewhere, that is bugging it out. Maybe some cross package dependency or something.
So after a whole day of debugging, I finally discovered the cause (or at least how to get around it). I was extending UDKGameViewportClient to catch network errors. Compiles and runs fine on the dev build. However it turns out if I even mention the class name of my player controller class in this extended class, it bugs-out FrontEnds packaging so that almost all of my packages can’t be found when running the packaged/installed game.
This has to be one of the oddest UDK quirks I’ve seen in many years.
TL;DR: I solved this by running the game with -user instead of -seekfreeloading.
I’ve been struggling with this issue for days, working on nothing but locating the missing content. It’s all there in my editor, but when I cook and distribute the game, the content just isn’t in the game.
The problem stemmed from dynamically loaded assets. I was following the instructions on using +SeekFreePackage=MyPackageName in MyGameEngine.ini to force the dynamically loaded content into seek-free packages, but it just wasn’t working. The content wasn’t there when I started the game with -seekfreeloading. I could run the game on my own computer without -seekfreeloading, and then the content was there. But my players couldn’t run the game without -seekfreeloading; the game would want the player to rebuild scripts, which they couldn’t do. (And besides, I wouldn’t want to distribute a game that required building scripts anyway.)
There are some undocumented arguments, -user and -installed. If you start the game with one of those, it skips the check to rebuild scripts and just plays with what cooked scripts there are.