Size: a a a

2021 March 27

J

Jabberwock in Doom 2D
у нас был атом и гигантская сложнейшая карта. в десяткираз сложнее средней
источник

W🦊

Wohlstand 🦊🇷🇺... in Doom 2D
источник

W🦊

Wohlstand 🦊🇷🇺... in Doom 2D
Jabberwock
я понял так, что сетка каким-то образом обновляется динамически. т.е. сначала просто определяются участки, где что-то происходит,  а потом обсчитываются только панели, триггеры и монстры на этих участках
Ну, перераспределяются, то есть, из старых позиций исключаются, в новые включаются
источник

W🦊

Wohlstand 🦊🇷🇺... in Doom 2D
Jabberwock
грид оказался эффективнее в разы
Ещё смотря какое дерево, у меня сначала использовалось R-дерево, но оно неудобное из-за отсутствия нормальной возможности обновления состояния,  потом заменил его на квадратное, и стало быстрее значительно
источник

W🦊

Wohlstand 🦊🇷🇺... in Doom 2D
только вот для моего случая сетка не будет эффективной, потому что много элементов у меня, которых не желательно сортировывать в массивах, а также очень большое и бесконечное пространство (все секции-комнаты на уровнях располагаются в одном едином пространстве координат, и что редактор располагал из на дистанциях с большим запасом, мол, чтобы не достать до соседней секции)
источник

J

Jabberwock in Doom 2D
у нас тоже очень большое пространство. карты могут быть до 32768x32768 пикселей.
источник

J

Jabberwock in Doom 2D
но не бесконечное
источник

J

Jabberwock in Doom 2D
и на практике самая большая сложная карта пока около 8000х10000
источник

J

Jabberwock in Doom 2D
кмк, тут надо пробовать оба варианта и тестить
источник

J

Jabberwock in Doom 2D
(но, опять же, я ни разу не программист)
источник

W🦊

Wohlstand 🦊🇷🇺... in Doom 2D
в SMBX координаты по умолчанию выставляются секциям между -20к и +20к, и пользователь может увеличивать-уменьшать секции и дальше, в итоге получается общее пространство шириной в 45к пикселей и если не шире, только получается, всё, что между секциями - неиспользуемое пространство, а сами секции в основном не больше
источник

J

Jabberwock in Doom 2D
(для представления про 32768 - игрок 52px ростом)
источник

J

Jabberwock in Doom 2D
ясно, примерно схожие условия. Вот та самая мегакарта 8400*9000
источник

J

Jabberwock in Doom 2D
тоже получается, что секции относительно некрупные, и между ними пустое пространство
источник

W🦊

Wohlstand 🦊🇷🇺... in Doom 2D
Ну да
источник

W🦊

Wohlstand 🦊🇷🇺... in Doom 2D
Как я уже сказал, сеточник:
- либо требует, чтобы все массивы были сортированы по координатам
- либо в каждую ячейку заносить список элементов в ней находящихся
источник

J

Jabberwock in Doom 2D
думаю, у нас второй случай
источник

W🦊

Wohlstand 🦊🇷🇺... in Doom 2D
В SMBX (и в TheXTech) первый, массив блоков всегда сортируется по координатам
источник

J

Jabberwock in Doom 2D
я тут играюсь с редактором, где взять какой-нибудь уровень на растерзание?
источник

J

Jabberwock in Doom 2D
очень понравилось, как рисуются тайловые прямоугольники
источник