Я подумываю о том, чтобы сделать игру, действие которой происходит в практически бесконечной сетке.
- Сетка очень редкая. Определенные небольшие области относительно высокой плотности. Относительно мало изолированных непустых ячеек.
- Объем используемой сетки слишком велик для наивной реализации, но, вероятно, мал по стандартам «больших данных» (я не пытаюсь отобразить Интернет или что-то в этом роде).
- Это должно быть легко сохраняться.
Вот операции, которые я, возможно, захочу выполнить (достаточно эффективно) в этой сетке:
- Запросите небольшую прямоугольную область ячеек и все их содержимое (текущее соседство игрока).
- Установите отдельные ячейки или засветите небольшие области (игрок делает ход)
- Попросите приблизительную форму или контур/силуэт некоторых больших прямоугольных областей (предварительный просмотр карты мира или региона)
- Найдите несколько регионов с примерно заданной плотностью (место появления игрока)
- Приблизительный кратчайший путь через промежутки не более чем в несколько небольших постоянных пустых пространств на переход (это нормально, часто быть плохим приближением, но не нормально продолжать поиск в неправильном направлении)
- Приближенная выпуклая оболочка региона
Вот в чем загвоздка: я хочу сделать это в веб-приложении. То есть я бы предпочел использовать существующее хранилище данных (возможно, в виде реляционной базы данных) и относительно небольшую внешнюю зависимость (предпочтительно избегая необходимости в постоянном процессе).
Ребята, что вы можете мне посоветовать по фактической реализации этого? Как бы вы это сделали, если бы ограничений веб-приложений не было? Как бы вы изменили это, если бы они были?
Большое спасибо всем!