Tiled — замечательный редактор уровней. В нем я создаю локации для своего онлайн рогалика.
Встала задача все эти локации собрать в виде «мира». Это довольно новая и не совсем отшлифованая функция программы, но она очень помогает.
Сначала я протестировал сборку мира через координаты, которые надо прописывать «ручками»:
{ "maps": [ { "fileName": "town_0_0.tmx", "x": 0, "y": 0 }, { "fileName": "town_1_0.tmx", "x": 6272, "y": 0 }, { "fileName": "town_1_1.tmx", "x": 6272, "y": -2048 }, { "fileName": "town_0_1.tmx", "x": 0, "y": -2048 }, { "fileName": "town_-_1_1.tmx", "x": -6272, "y": -2048 }, { "fileName": "town_-_1_0.tmx", "x": -6272, "y": 0 }, { "fileName": "town_-_1_-_1.tmx", "x": -6272, "y": 2048 }, { "fileName": "town_0_-_1.tmx", "x": 0, "y": 2048 }, { "fileName": "town_1_-_1.tmx", "x": 6272, "y": 2048 } ], "type": "world" }
Это весьма геморное и тупое занятие 🙂 Благо в мануале я нашел инфу о паттернах, которые собирают карты на основе регулярных выражений, анализируя названия файлов карт. Ilius (спасибо!) составил регулярное выражение и теперь сборка мира идет автоматически 😉
{ "patterns": [ { "regexp": "town_(-?\\d+)_(-?\\d+)\\.tmx", "multiplierX": 6272, "multiplierY": 2048, "offsetX": -6272, "offsetY": -2048 } ], "type": "world" }
Единственная проблема — у меня 7500 карт.. Т.е. 7500 файлов размером 50кб, которые Tiled просто не может загрузить, нужен суперкомпьютер 😀
В результате тестирования выяснилось:
- 500 файлов — мир прогрузился, но чтобы отредактировать конкретную карту, нужно подождать, пока ее прогрузят секунд 15
- 250 файлов — уже можно работать. Карта прогружается 5 секунд
- 100 файлов — норм. Сейчас так и работаю.
В итоге, придется создавать мир по кусочкам, переходы между локациями (а хочется, чтобы они были плавные) придется делать прогружая в Tiled конкретные куски мира… ну и я в первый раз лет за 10 ощутил, что пора делать апгрейд на моем ржавом ведре 😀
Update: поставил SSD диск — все летает 🙂