Як оптимізувати фізику тайлових карт?
Ми створюємо тайлові карти для мобільних ігор під ключ — від тайлсету до готової сцени з оптимізованим рендерингом. У цій статті розберемо реальні технічні проблеми, з якими стикаються розробники, і покажемо, як їх вирішувати. Наш досвід — 10+ років у мобільній розробці та більше 50 проектів. Гарантуємо якість: кожен проект проходить перевірку на draw calls та фізичну продуктивність. Неправильно зібраний тайлсет перетворює простий рівень на сотні draw calls, а фізику — на гальма на слабких пристроях. Економія від правильної оптимізації — до 1000 доларів на виправленні помилок після релізу.
Tilemap — система, де рівень будується з повторюваних тайлів фіксованого розміру. Це не просто візуальний інструмент — це pipeline від створення тайлсету до завантаження в двигун з батченим рендерингом та коректною колізією. Поняття 'тайлова карта' є базовим для цього гайду.
Як вибрати розмір тайла?
Стандартний тайл: 16×16, 32×32, 64×64 або 128×128 пікселів. Для піксель-арту — 16×16 або 32×32, для casual 2D — 64×64 або 128×128. Критична вимога — безшовні краї. Правий край тайла має точно збігатися з лівим краєм сусіднього, інакше видно шви на стиках. В Aseprite або Photoshop використовуйте режим Tile Mode (View → Tile Mode в Aseprite) для прев'ю стиків у реальному часі.
Тайлсет як один PNG — стандарт. Всі тайли в сітці на одному зображенні. В Unity Tilemap система працює з Sprite Atlas або Tile Palette. В Tiled — тайлсет задається одним PNG з параметрами сітки. Одна текстура = один draw call для всієї сцени з тайлами при правильному налаштуванні батчингу.
Autotile (Terrain Tiles в Unity, Wang Tiles в Tiled) автоматично підставляє потрібний тайл за сусідами. Художник малює 8–16 перехідних тайлів, двигун робить решту. Для глибшої оптимізації застосовуйте occlusion culling та LOD для віддалених шарів.
Структура шарів
Професійний Tilemap — не один шар, а мінімум три:
- Background — небо, дальній фон, статика без колізій.
Z = -2, без колайдера. - Ground — земля, платформи.
Z = 0, зTilemapCollider2D+CompositeCollider2D. - Foreground / Details — трава, декор поверх персонажа.
Z = 2, без колізій.
CompositeCollider2D об'єднує всі індивідуальні тайл-колайдери в один меш колайдера. Без нього 100 тайлів платформи = 100 перевірок Box Collider2D при кожному Physics update. З CompositeCollider — один Polygon Collider. Різниця в продуктивності фізики — до 100 разів менше перевірок. Використання CompositeCollider2D краще ніж окремі колайдери в 100 разів за продуктивність фізики. Докладніше в документації Unity: Tilemap Collider 2D.
Анімовані тайли
AnimatedTile в Unity — тайл з набором спрайтів і швидкістю анімації. Вода, лава, мерехтливі світильники. Кожен AnimatedTile — окремий цикл оновлення. Не зловживайте: 50 анімованих тайлів води на екрані — 50 Coroutine або Update викликів. Для великих водних поверхонь використовуйте шейдер з анімацією UV — це набагато ефективніше.
Редактори рівнів та експорт
Tiled Map Editor — зовнішній редактор рівнів, експортує в JSON / XML / TMX. В Unity інтегрується через SuperTiled2Unity або Tiled2Unity пакет. LDtk — сучасна альтернатива Tiled з кращим UX і нативною інтеграцією з Unity (офіційний пакет). Godot TileMap — вбудована система з підтримкою terrain set і автотайлінгу без зовнішніх інструментів. Tiled редактор дозволяє створювати рівні будь-якої складності.
Порівняння редакторів:
| Редактор | Інтеграція з Unity | Автотайлінг | Експорт |
|---|---|---|---|
| Tiled | SuperTiled2Unity | Wang Tiles | JSON, TMX, XML |
| LDtk | Офіційний пакет | Вбудований | JSON |
| Godot TileMap | Вбудований | Terrain set | Внутрішній формат |
З практики: мобільна гра (платформер) на Unity + SuperTiled2Unity. Рівень з 800 тайлів давав 35 draw calls — несподівано багато. Причина: художник випадково використав два різних тайлсети PNG з однаковим контентом. Unity створював два Material для двох текстур. Після об'єднання в один тайлсет — 2 draw calls для всієї тайлової геометрії. Один тайлсет краще за два тайлсети в 17,5 разів за кількістю draw calls. Цей кейс підтверджує: один тайлсет — одна текстура — один draw call.
Pixel art специфіка для тайлсетів
Використовуйте Filter Mode: Point (no filter) — обов'язково. Bilinear фільтрація розмиває пікселі на стиках тайлів. Увімкніть Pixel Snap в Camera Settings або використовуйте PixelPerfectCamera. Для тайлсетів з тонкими піксельними лініями вимкніть стиснення (Compression: None), щоб уникнути артефактів. Pixels Per Unit має збігатися зі стороною тайла: тайл 32px → PPU = 32.
Типи тайлових карт
| Тип | Особливості |
|---|---|
| Orthographic (прямокутний) | Стандарт для платформерів, top-down |
| Isometric | Діагональний огляд, RPG / стратегії. Tile Shape: Isometric в Unity |
| Hexagonal | Стратегії. Tile Shape: Hexagonal в Unity і Godot |
| Top-down з offset | 45° вид, JRPG стиль |
Ізометричні тайли вимагають сортування об'єктів по Y-координаті. Використовуйте Renderer.sortingOrder за transform.position.y або TilemapRenderer.Mode: Individual з кастомним IComparator.
Як створити тайлсет за 4 кроки
- Визначте розмір тайла і стиль (піксель-арт або згладжений).
- Намалюйте базові тайли (підлога, стіна, стеля) з безшовними краями.
- Створіть перехідні тайли для автотайлінгу (8–16 варіантів).
- Експортуйте як єдиний PNG з сіткою.
Що входить в роботу
- Створення тайлсету (безшовні тайли з перехідними варіантами).
- Налаштування автотайлінгу (Terrain / Wang).
- Збірка рівнів в Unity / Godot / Tiled за вашим дизайном.
- Оптимізація фізики через CompositeCollider.
- Перевірка draw calls і батчингу в профілювальнику.
- Анімовані тайли для спецефектів (вода, лава).
- Використовуйте GPU instancing для повторюваних тайлів у декораціях.
Ми робимо повний цикл — від концепції до готової сцени з урахуванням продуктивності на мобільних пристроях. Оцінимо ваш проект за 1 день. Вартість тайлсету для однієї локації — від 500 до 1500 доларів. Інвестиція в професійний тайлсет окупається економією на баг-фіксах. Зв'яжіться з нами, щоб обговорити ваш проект та отримати попередню оцінку строків.
Строки
Тайлсет для однієї локації (основні тайли + переходи + декор) — 1–2 тижні. Збірка рівнів на основі готового тайлсету — 3–5 днів за 5–10 стандартних рівнів. Повний сет для гри з 3–5 тематичними локаціями — 1–2 місяці.







