Блог ☯

вторник, 28 марта 2017 г.

Что такое тайлы? Тайловая графика в играх

Тайловая графика (tile - плитка) - это по сути дела метод создания больших картин (изображений) с помощью более мелких элементов.

Что такое тайлы? Тайловая графика в играх


Вообще, есть красивое и опять не Русское слово - мозаика. Вспомните что это такое. Это когда вы по кусочкам составляете большую картинку, вот примерно тоже-самое и есть тайты. Или вспомните как пилят деньги кладут плитку.

// Плохая идея, миксовать тут тематики блога...

Аналогий много, еще можете вспомнить как кладут черепицу, ну и заодно посмотреть супер крутое видео канала Primitive Technology:


Какая крыша? Тайлд. Замечательное свойство Английского языка, можно превращать существительное в прилагательное, но потом такое нельзя нормально перевести, однако понять легко. 
Вернёмся к нашей теме, тайловая графика в играх, что это такое?

Это графика, которая состоит из тайлов (Кэп). Пример:

Что такое тайлы? Тайловая графика в играх

Иногда очень красиво получается

Вот эти стулья и стол - это тоже тайлы. Тайлы это стены, пол и прочие элементы. Двери тут, скорее всего, как раз не тайлы, а уже объекты, так-как с ними возможно взаимодействие.

Так-же тайловая графика чем-то напоминает пиксель арт по принципу, тоже как мозаика, рисуется картинка по пикселям. Элемент за элементом. Может получаться очень красиво:

Что такое тайлы? Тайловая графика в играх

Больше пиксель арта тут

Но вот на этой картинке (это вообще не игра), графика не тайловая. Тут всё прорисовано индивидуально, гигантский труд. Вот именно тут мы и подходим к первой проблеме тайловой графики - иногда она выглядит слишком монотонно.

Что такое тайлы? Тайловая графика в играх

Стандартный пример тайлов в game maker studio

Вспомните даже редактор карт StarCraft:

Что такое тайлы? Тайловая графика в играх

И почитайте потом мою статью - с чего начать разработку игр, где я о нём писал. Вот в первом старике было всё это довольно любопытно сделано и там удалось отчасти побороть монотонность, за счёт того, что почти каждый элемент случайно генерировался, даже если он одного типа. О чём я говорю?

Берём этот-же скрин и увеличиваем.

Что такое тайлы? Тайловая графика в играх

Плитка не повторяется

И когда был этот мой любимый первый старкрафт? Еще чёрт знает когда, и уже там придумали эту штуку. А сейчас некоторые игроделы продолжают пихать в ряды однотипные тайлы.

Вопрос с графикой в играх очень важный, так-как он сильно определяет итоговый бюджет и время на разработку.

Вы разрабатывайте инструменты типа редактора карт, а затем садите туда левел дизайнеров, они уже всё это красиво и толково расставляют. Чем больше у них будет инструментов - тем красивее выйдет, но это огромная работа. Не только всё это рисовать, но и потом расставлять, а потом еще придумывать какой-то способ рандомизации элементов, если он будет делаться.

Если вы хотите чтобы в итоге игра была красивее, вам нужно для одного дерева нарисовать сразу несколько спрайтов. И нет, ёлка и дуб - это разные тайлы и спарайты, они будут отдельно. Вам нужно сразу много ёлок и сразу много дубов.

Тайлы обычно делают как-бы пачкой (set), называется - матрица тайлов. Это большой фрагмент, который делят на более мелкие. Примерно вот такая штука:

Что такое тайлы? Тайловая графика в играх

Где-то украл... Это нехорошо. Читайте - где брать спрайты для игр

И вот из этого сета вынимаются уже конкретные тайлы. Это может быть просто зелёный квадрат - трава, дерево или что угодно. Тут всё довольно просто и в то-же время красиво. Снежная тема. Имея готовый сет тайлов у вас уже сделано пол дела, вам нужно их только красиво расставить.

Тайлы легче чем объекты, они лучше для скорости игры, с ними будет выше FPS и быстродействие, если использовать их, а не объекты. Объекты со спрайтами вам нужны только если у вас есть взаимодействие с ними. Допустим, если огнемёт будет сжигать лес, тогда да, скорее всего придётся делать деревья через объект.

Но почти все декоративные (чисто визуальные) элементы, можно сделать через тайлы.

Допустим, вот эти-же столбы. Ну зачем вам нужны какие-то взаимодействия героя со столбами? Вам нужна только коллизия (когда нельзя через него пройти). А для коллизии вы можете просто сделать твёрдую невидимую область объектом, и уже её повесть под столб. Тогда через столб (спрайт - тайл) нельзя будет пройти, движение будет блокировать "твёрдая" область.

В Game Maker Studio 2, про который я сейчас делаю видео, появились новые функции для работы с тайлами, появились анимированные тайлы. Так-же можно вызывать их (и убирать) через код. Очень любопытная штука. Так-же там теперь можно расставлять тайлы сразу пачкой и быстро заполнять тайлами карту-комнату. Довольно удобно, особенно для мелких тайлов.

Для новичка, который хочет создавать игры в гейм мейкер, в принципе не обзяательно использовать тайлы, часто новички просто делает всё это (поле, деревья и прочее) обычными объектами со спрайтами и для простых игр это может быть ок. Но когда вы затевайте сделать RPG (или игру в другом жанре) с какой никакой графикой, вам нужны будут тайлы.

Надеюсь я ответил на вопрос - что такое тайлы и дал приемлемые примеры тайловой графики в играх.

А если вас интересуют конкретные примеры и как всё это работает в Game Maker Studio 2, вы можете посмотреть моё видео (9 минут). Подписывайтесь на мой канал Econ Dude - про создание игр с нуля, если еще не подписались.