боксами есть много разных способов. Простейший - завести статичную 2d сетку и записывать в какой ячейке какие баундинг боксы, скорее всего такого решения хватит. Если интереснее поглубже копать, то смотрите главу Spatial Partitioning в книжке Real-Time Collision Detection.
Посмотрел про spatial partitioning. У меня нечто подобное и реализовано. Но сдаётся мне, что quadtree внутри таких зон будет эффективнее.
Обсуждают сегодня