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 диск — все летает 🙂
