Talks And Demos: Melee Hit Detection with No Compromises | Unreal Fest Gold Coast 2024

In this session, Digital Confectioners will showcase a system they have developed that builds on the out-of-the-box systems Unreal Engine provides for tracing to provide a lag-redundant and highly performant melee hit-detection system for action games, where both collision accuracy and performance matter.

The talk will cover caching collision shapes/transform data from meshes and caching transform data from animations to build a system that can catch up on performing collision sweeps when lagging or hitching.

We’ll also look at the performance of the system including how to minimize the number of collision sweeps performed without losing accuracy; caching data upfront instead of re-fetching data; optimizing data for better CPU cache usage; and minimizing CPU cycles.

https://dev.epicgames.com/community/learning/talks-and-demos/0y7a/unreal-engine-melee-hit-detection-with-no-compromises-unreal-fest-gold-coast-2024

Implementing and debugging this yourself can be challenging, for those interested, I have a plugin that does everything in this video and then some. It is multithreaded and can handle higher unit counts with higher accuracy with frame sub-stepping.

Miss No Hit | Fab

Theres no such thing as Traces in other threads, theres async in the sense of recieving the info at end of a frame, but all ocurs in the Game Thread.

You can do multithreaded traces perfectly fine on CPP. Tracing is simply an operation that sweeps a collision shape on physics world, there is nothing about this operation that locks it onto game thread. So not sure why you are thinking that it needs to happen on game thread.