Как реализовать генерацию карты?
==================================

 Начал изучать phaser и геймдев в целом, решил начать с шутера с видом сверху. Тут, вроде, всё просто и никаких особых проблем. Теперь хочу немного усложнить задачу и сделать генерацию карты - просто рандомно расставлять заготовленные заранее стены и препятствия прямо на ходу при открытии новой территории. Хотелось бы сделать бесконечную карту, но тогда через несколько минут хождений по карте, скорее всего, игра начнет тормозить, а еще через несколько минут - жутко тормозить. Как лучше всего реализовывать генерацию и хранение карты за пределами видимости? 

 Гуглим "frustum culling".  

Если хотите "бесконечное", то генерацию нужно бы делать с привязкой к константам. Ядро\сид, к этому координаты например. Таким образом хранить только некий условно выверенный кусок, остальное удалять(в пул базовые компонентны) и генерировать снова(доставать из пула уже сгенерированных по сути) при приближении. Но это типичный pitfall новичков в геймдизайне. Игровое поле обычно условно бесконечное. Подумайте ещё раз, действительно ли вам нужно бесконечные карты. Это именно то, что будет продавать игру(интересовать игрока)? Очень сомневаюсь. 

 Стандартный подход - объекты за пределами камеры (т.е. за пределами определенного радиуса вокруг каждого игрока) делать "неактивными" и исключать их из обработки и расчётов.  
  

Кстати, "бесконечная карта на лету" - не так уж и просто реализовать. Проще сгенерировать всю карту, пусть даже это займёт минуту, пометить все объекты как неактивные, и потом уже подключать их по мере перемещения игроков по карте. 

 Возможно есть более изящное решение но я однажды делал так:  
  

- Разбивал координаты на небольшие куски. Например 5x5 метров.  

- Определял сколько таких кусков по мещается на экране.  

- При старте уровня генироваровал сразу карту размеров 3х3 экрана.  

- При перемещение игрока генерировал следующие плитки.  

- Для производительности просто отключал клетки которые игрок не видит.  

- Клетки которые уже на достаточном удаление от игрока - удалял.  

- Если игрок обратно к ним возвращался, заново создавал из сохраненной информации.  
  

- Информацию о местности хранил в двумерном массиве  

- Если массив сильно разрастался, то выгружал из него данные о местности с которой игрок уже ушел в файл. 

 Рано или поздно у тебя случится переполнение или упрешься в нехватку памяти. Тебе надо обыграть это так, чтоб только казалось, чтоб мир бесконечен. Двигай не персонажа а мир вокруг него, двигай и подставляй текстуру поверхности, переставляй объекты.