So, nearly all of the allocation is done up front through object pooling. The first cut scene plays, after which gameplay begins. Memory consumption hovers around the 1.5GB mark with no indication of memory leaks ( we've eradicated most if not all of those ), the gc kicks in and does it's job, albeit slowly. Players often progress to the next cut scene, and as it tries to load the audio from the assetbundle, that's when the crash hits ( with memory still around 1.5GB ). Memory is mostly consumed by textures and a million nodes of pathfinding grid graph. Now we're ripping out the Unity terrain and implementing our own with a map editor, we're moving to non-unity navmeshes ( implementation is too partial in Unity to be usable ) which will be much more memory efficient. Most infrequent audio has been pushed out to be streamed on demand ( that's the 2GB ->1.5GB reduction and is mostly character voice acting ). That was painful because a) www doesn't currently get the ogg duration from the header so we need to manually specify it so we know when to clean it all up ( no events on streamed audio finishing ) and b) no batch editing of audio resources. Animations and audio ( 1 master mix wav file including all audio for the scene ) for the cut scenes is loaded async just before a cut scene is needed, and then cleaned up afterwards. Also, the map in the tutorial is huge. We're taking all our learning from this first phase forward into the next, and will be able to improve the memory footprint further.