[геймдев] Tiled — используем паттерны при сборе локаций


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



Запись опубликована в рубрике Геймдев - разработка игр. Добавьте в закладки постоянную ссылку.

Добавить комментарий

🇬🇧 Attention! Comments with URLs/email are not allowed.
🇷🇺 Комментарии со ссылками/email удаляются автоматически.