[геймдев] 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 ощутил, что пора делать апгрейд на моем ржавом ведре 😀

This entry was posted in Геймдев - разработка игр. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *