The amount of collisionchecks should of couse be reduced to items that are near the checking entity.

Usually I "tile" my maps virtually in areas and in the update of the objects I only check entitys that are in the area of the checking entity, or in the bordering areas (to be sure you get the collisions when moving from one area to another).

In large levels this minimizes the collision checks.

There my be better ways but thats how I usually do it... and for a project like a space shooter this should be enough to keep performance up.

I mean, if there are 50 objects to check, this should not kill performance, especially if Eric does not use MeshInMesh collisions but some more abstract method like I suggested...