Im getting about 80-90% CPU usage, with 1,120 objects on my gaming PC with GTX970 and my ultrabook with integrated chip. I'm getting anywhere from 400k-800k collision checks. My level layout is pretty huge at 14000, 6000. And I have around 150-200 enemies throughout the layout, which it's obviously checking collisions against bullets and hitboxes for each one. It seems like all the strain is on my CPU and not my graphics card, which makes me feel like it's the collisions (since collisions are handled by the CPU correct?) I'm going through and trying to replace <On collision> with <is overlapping: Trigger once> because I heard there are performance gains, but I cant do if for all event cases.
In order to reduce collisions, I was thinking on making the collision check start with an <Enemy Is On Screen>. Would that effectively reduce it to only check collisions of who's on screen? There are 3 different enemy objects that use the same code (all the enemy code is coded to the family). I'd have tested this first, as I usually do instead of resorting to the forums, but this would require a massive code redo that I'd rather go for an answer first.