Will CCP Game's dynamic batching code be integrated in 4.11?

In CCP Game’s Making EVE Gunjack talk (, they mentioned they are using dynamic batching to keep draw calls under budget (50 draw calls per eye). And from my understanding, Epic is working with them to bring some of their optimization technique back to Unreal Engine, I wonder is that include dynamic batching?

I am curious about this as well :slight_smile:

Interesting news. :rolleyes:

Show us behind the curtain!

Well, can’t find dynamic batching code in 4.11 and 4.12 branch so far, so my guess the answer is no.

Now I wonder why they taught me that dynamic batching is a very basic optimization technique used in game engine back in college :wink:

With the upcooming of Vulkan and DirectX12 I really don’t think there is a point to it.
To play VR games you need High End hardware, and high end hardware support DX12 and Vulkan without problem.

I can understand most UE4 games are targeting High End machines, so it might not be totally unreasonable assuming every player has DirectX12 level hardware. But I also guess there’re still developers expecting their games also perform well on Mid End hardware even for VR games.

EVE Gunjack can runs on Galaxy Note 4 which is definitely not High End VR hardaware, and I doubt that wont happen without Dynamic Batching and other smart optimization technique.

It’s quite interesting to me that we don’t have as many discussion regarding optimization here as in unity forum where you can see tons of draw calls related topics. It’s that we all assuming Vulkan will save us in the end? :wink:

I think the current instancing, especially with the hierarchical instanced meshes, solves a lot of problems that people might have otherwise had with draw calls.

Isn’t the current problem with instancing is that it must be manually set up? Batching can be handled in Code, resulting in more efficiency (no accidental missed meshes) for less work.

Pre dx12/vulkan dynamic instancing can be very beneficial. I’m not convinced about doing it in dx12/vulkan though. I’d wager by its nature most of the dynamic batching code would execute on 1 thread, while dx12/vulkan draw calls fully utilize all available cores. Just the parallelization alone would probably make dynamic instancing moot on dx12/vulkan.