Есть несколько разных стратегий. Честно говоря, 2500 объектов для проверки - это «много», но на самом деле это не так уж много, и это вещи, которые можно оптимизировать в n-й степени. Часто узкие места в самих вызовах отрисовки, а не итерации по объектам.
Итак, перебираем объекты и проверяем усечённость. То есть проверьте, находятся ли объекты полностью вне поля зрения игрока. Не рисуй, если они есть. Если вы рисуете только в 2D, это часто просто. Если это 3D, тогда вам понадобится более продвинутая математика, но, тем не менее, прямолинейная алгебра.
Следующий универсальный метод на шаг впереди - это некий граф сцены или пространственная структура. Это очень быстро усложняется, но хорошо работает с любым 2D / 3D контентом под любым углом в любое время. (Google ваш друг на данный момент, вопрос очень открытый.)
В качестве альтернативы, если у вас есть простой двухмерный вид квадратов сверху вниз, вы можете создать простой двухмерный массив и нарисовать соответствующие части карты на основе координат камеры. (Выполните линейное преобразование координат X и Y камеры, которое уменьшится до индексов массива, а затем нарисуйте прямоугольник координат массива.)
Обычно я бы не рекомендовал дифференцированный подход, если бы для этого не было особых причин. Обычно сложно управлять и бесполезно, когда вы прыгаете с места.
Небо - это предел, не зная некоторых подробностей, но постарайтесь сделать его простым. Делать игры достаточно сложно.