Я знаю, что эффективность является ключевым моментом в программировании игр, и у меня был некоторый опыт рендеринга «карты» ранее, но, вероятно, не лучшим образом.
Для 2D-игры TopDown: (просто визуализируйте текстуры / плитки мира, ничего больше)
Скажем, у вас есть карта 1000x1000 (плитки или что-то еще). Если плитка не в поле зрения камеры, она не должна отображаться - это так просто. Не нужно рендерить плитку, которая не будет видна. Но поскольку у вас на карте есть 1000x1000 объектов или, возможно, меньше, вы, вероятно, не захотите перебирать все 1000 * 1000 плиток, просто чтобы посмотреть, будут ли они отображаться или нет.
Вопрос: Как лучше всего реализовать эту эффективность? Чтобы он «быстрее / быстрее» мог определить, какие плитки предполагается отображать?
Кроме того, я не строю свою игру вокруг плиток, визуализированных с помощью SpriteBatch, поэтому здесь нет прямоугольников, фигуры могут быть разных размеров и иметь несколько точек, например изогнутый объект из 10 точек и текстуру внутри этой формы;
Вопрос: Как вы определяете, находится ли этот вид объектов «внутри» вида камеры?
Это легко с прямоугольником 48x48, просто посмотрите, виден ли он X + Width или Y + Height в поле зрения камеры. Отличается несколькими точками.
Проще говоря, как эффективно управлять кодом и данными, чтобы не обходить / перебирать миллионы объектов одновременно.