Unity's profiler is pretty broad: it'll tell you how many vertices you're drawing, but not really what's it's drawing. This is an issue when we know we're drawing a shitload of triangles, but we're never really too sure what proportion of triangles is being drawn by what.
So I made a tool. You can run it in game, by typing renderinfo in the console. It'll pop up an external application and list a bunch of stats. It records every renderer in the scene, then you can group them by mesh or entity, then order them by total vertices. Which has proven really useful to us. Here's an example:
Here we can see that there are 67 Pookie Bears in the scene, and all of them are being drawn. Turns out Pookie isn't being distance culled, and it hasn't got an LOD.
You can also see other problems further down, like five visible torches are 12k vertices. Even though one of them is 330 meters away. Which leads us to find that a bunch of these held and world models don't have LOD models, or have abnormally high vertex counts.
This has given us a significant list of performance issues to fix. For example, Alex discovered that the Eoka Pistols LODs are configured backwards, so the further away you are from it the more detailed it becomes.
We've opened a
Trello for it here, so you can see how we're fighting the fight.