Лучше всего работать с тайлами - квадратные (или прямоугольные, или шестиугольные, как угодно) кусочки карты. Хранить можно в массиве, а на экран выводить только то что нужно.
Например завести переменные offset_x и offset_y, которые будут указывать текущее положение камеры, массив Map(n1,n2) содержит число, которое указывает на определенный тайл (трава, горы и т.п.). Предварительно в массив Images(n) загружаем изображения тайлов. На экран выводить двумя циклами:
;Будет выводиться кусок 10х10
for x=1 to 10
for y=1 to 10
Tile=Map(x+offset_x,y+offset_y)
DrawImage Images(Tile),(x+offset_x)*20,(y+offset_y)*20
;20 - размер картинки тайла (например)
next
next
Для определения положения объекта относительно камеры, вычитаем из его глобальных координат offset_x и offset_y.
Вот, в общих чертах... А вообще, используй поиск, эта тема уже поднималась, да и вообще исходники/уроки поищи