На мой взгляд об этом вообще не стоит волноваться.
4Гб - это огромное количество информации и такие мелочи, как ваши два скромных массива 30х30 и 7x30 его не заполнят никак, если вы не повесите расчеты на параллельный процесс вычисляя производство в реальном времени.
А вам нужен всего один расчет погрузки/выгрузки товаров в игровые сутки, а компьютеры считают очень быстро. Пауза в 1-2 секунды? 3? Какая разница? Перемещение персонажа из локации в локацию порой происходит в мейкере дольше, чем будет считаться вся ваша экономика.
Я сам не дружу, но фактически, нужны всего два двумерных массива.
Массив первый $sklad = Array.new(30) { Array.new(30) }, где первый индекс это номер склада, второй номер товара. Так, в ячейке, например $sklad[3][5] у нас лежит число количество товара №5 на складе №3. Мы можем его уменьшить когда товар забираем со склада и увеличить, когда добавляем.
Подружите это со скриптом Galv's Shop Upgrade и получите не склады, а полноценные мейкерские магазины с нужным вам количеством товара.
Второй массив $caravan = Array.new(7) { Array.new(30) }, где первый индекс это номер каравана, второй номер товара (нумерация товаров в караване для удобства аналогична нумерации товаров на складах).
Дальше остается вопрос написания алгоритмов логистики (перемещение караванов из города в город, тут, конечно, сложно сообразить по какому расписанию 7 караванов будут циклично курсировать между 30 городами, это даже нацело не делится) и алгоритм выгрузки/погрузки товаров (это уже чистая арифметика, хотя вам придется попотеть с балансированием производства и расхода товаров, чтобы не допускать ни затоваривания, ни дефицита).
Социальные закладки