Пока ничего особенного, вы просто получили карту размером 100 x 100 блоков. Всего получается 10 000 блоков. Теперь представим, что в качестве карты вы решили использовать не блоки, а одно большое растровое изображение. Чтобы вычислить объем требуемой для карты памяти, вы должны умножить общее количество блоков на размер одного блока. Эту концепцию демонстрируют следующие вычисления:
100 блоков в ширину * 100 блоков в высоту = 10 000 блоков
64 точки в ширину * 64 точки в высоту = 4 096 точек в блоке
10 000 блоков * 4 096 точек * 1 байт (8 бит) = 40 960 000 байтов (256 цветов)
10 000 блоков * 4 096 точек * 4 байта (32 бита) = 163 840 000 байтов
Ничего себе! Посмотрите на результат. Простая карта, размером 100 x 100 блоков требует для своего хранения колоссального объема памяти — 163 Мбайт. Даже если вы решите ограничиться 8-разрядным цветом (256-ю цветами), все равно придется выделить 41 Мбайт только для хранения карты. Если вы не читаете эту книгу в 2008 году, 163 Мбайт только для хранения игровой карты — это слишком много.
Хорошо, теперь, когда вы видели темную сторону, настало время для небольшого просвещения. Возьмем предыдущий пример, и вычислим объем памяти, необходимый для хранения той же карты размером 100 x 100, но в этот раз с использованием блоков.
100 блоков в ширину * 100 блоков в высоту = 10 000 блоков
64 точки в ширину * 64 точки в высоту = 4 096 точек в блоке
100 блоков * 4 096 точек в блоке * 4 байта на точку = 1 638 400 байт
10 000 блоков * 1 байт на блок = 10 000 байт
10 000 байт + 1 638 400 байт = 1 648 400 байт всего
Взгляните на результат. Используя набор из 100 блоков вы можете создать карту размером 100 x 100, заняв всего два мегабайта памяти. Черт, вы можете использовать набор из 1000 блоков, и вам понадобится менее 20 Мбайт памяти.
Итак, вот что мы имеем. Первая причина для использования блоков в ваших стратегических играх заключается в экономии памяти.