Как сказал TLT тебе нужна динамическая подгрузка.
Допустим есть большая карта
Вся карта разделена на несколько областей
Допустим есть такая карта
Красные зоны - ограничители размеров частей города.
Тебе по сути нужно проверять находится ли игрок в этой части города(сойдет обычная коллизия), и если да то обрабатывать объекты в этой зоне и подгрузить новые если нужно, если нет то удалить объекты.
Например вот так:
Код
if(Intersects(Player->Rect, Part1->Rect) && Player->CurrentZone != Part1) {
CMap::Load("Part1.map");
CurrentZone = Part1;
}