When you are talking about backface culling do you mean precalculcated lists depending on view direction or just gpu flag?
I was talking about that
which is very rudimentary. Facet culling is disabled by default. Personally, I prefer using separate meshes and the OpenGL flag, for example when entering a building.
@princec Something outside of the view frustum might influence the scene, for example a source of light, a lamp.
There are several kinds of tests that can be done to avoid doing useless heavy computations when looking for collisions, you can benefit of spatial subdivisions and bounding volumes to eliminate obvious cases. Imagine that the player is the entrance of an hotel at the ground floor, you don't need to check whether he collides with an enemy in the 6th floor.
You can detect collisions a priori or a posteriori, you can use a physics engine (JBullet, Jinngine, ...) if you don't want to reinvent the wheel. Keep in mind that if two things make a move greater than their respective bounding volumes between 2 instants, you might miss some collisions when using a posteriori collision detection and multisampling can become very expensive if they move very quickly. Sometimes, we can cheat, you can use a simple ray to represent the trajectory of a bullet but it becomes really weird when shooting a guy very far from the player.