Есть целые книги, посвященные обнаружению столкновений, но в простой игре, над которой я работаю, я занимаюсь обнаружением столкновений, создавая радиус для каждого объекта, который определяет его ограничивающую сферу. В каждом кадре все объекты сравниваются со всеми другими объектами, чтобы найти расстояние между ними, и если расстояние меньше, чем объединенные радиусы двух объектов, то записывается столкновение.
Для этого у меня каждый класс (например, ракета, монстр, игрок, дерево и т. Д.) Подкласс класса Entity, который содержит логику для случаев столкновения, что означает, что при запуске ракеты он может убить монстра, но только сжечь дерево (при условии, что у меня есть объекты ракеты и дерева).
Хорошая книга, которой я следую, которая объясняет многое из этого более подробно:
http://www.amazon.co.uk/Beginning-OpenGL-Game-Programming-Second/dp/159863528X/ref=dp_ob_title_bk