They are now loaded using the DynamicLoadObject function declared in Core.u.
Firstly, most of the assets in the old version appeared to have been stored in Startup.upk(which was ~175 MB in size, IIRC.) These assets were accessed using standard/fixed(I can't verify it right now, my apologies) arrays within the code in GG2Game.u.Īfter the update- Most of the resources within Startup.upk were extracted and put within the CookedPC directory under the Object/Sounds/UI directories(leaving Startup.upk ~1 MB in size).
I've been performing my work on this project on two different computers, and don't have all my files with me at this time to show full details, but I wanted to at least write down what I recall from memory.īasically, the way some of the assets are loaded by GG2 changed in, from what I can tell, is a major change in implementation. Everything is from the perspective of someone who has dived into the documentation and knowledgebases on the subject, and is basically learning on the fly, with limited access to the actual underpinnings of the code. Note: I knew nothing about Unreal Engine before this. Even with MaxSmoothFrameRate at 300+FPS, the crash does not occur. Setting MaxSmoothFrameRate to 30FPS, on the other hand, prevents the crash from occuring at all.Īround the 60 - 90 FPS area, I see intermittent crashes.Īt this time, the most effective workaround/fix for this is setting -onethread in the launch options, as described above. Setting MaxSmoothedFrameRate excessively high(300+ FPS) causes the crash to occur consistently every time, and quite quickly. This appears to be confirmed by changing the values of SmoothFrameRate variables in the config files. Higher framerates increase the likelihood of threads falling out of sync. Resource loading being affected by framerate. If one lags/gets ahead of another, the whole thing falls apart. Two or more threads are sharing duties during resource load in which the order of events must be done in the proper sequence. Race conditions caused by multithreading during resource load. For example, there are two GG2Engine.ini files, one in the Documents path, the other in the Steam GG2Game config folder.Īfter more testing, it appears that the Ekoro crash is caused by two main factors. \Program Files (x86)\Steam\steamapps\common\GalGun Double Peace\Engine\Config\Ĭertain files will be specified in each step, however it may be useful to make the changes to all of the files of the same name, as the priority the game uses for each seems to change depending on which. \Program Files (x86)\Steam\steamapps\common\GalGun Double Peace\GG2Game\Config\ \Documents\My Games\UnrealEngine3\GG2Game\Config\ There are three locations for these files, and some of them will have config files with the exact same name. Preface: Many of these will involve editing the configuration files for the game. This bug has been difficult to nail down, so the possible fixes are numerous. Appears to be some kind of error that occurs during rendering that causes the game to crash. This crash occurs when attempting to load Ekoro's boss battle, be it in the standard game, or Score Attack. Thanks to RPDevJesco for the video and their initial investigation proving that 30 FPS limit mitigates the issues. There are separate instructions that you can follow below this link as well.
Below is a video provided by RPDevJesco on both limiting FPS max to 30(which also mitigates the issue) as well as how to set the -onethread launch option in Steam. Therefore, my top recommendation at this time is to start by adding the -onethread launch option to the game, which will enforce singlethreading and is most likely to resolve issues. One of the most relevant sections of code that causes the crash does not run when singlethreading is enabled. Due to recent findings, we've discovered there are two solutions that are the most likely to solve game crashes.Īfter much troubleshooting and investigation, it appears that most of the crashes occur due to the combination of multithreading and high FPS, which causes instabiltiy in Scaleform, which the game uses to draw HUDs/render models.