Воскресенье, 17 Ноября 2024, 16:18

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Много весят тайл карт, Tiled что делать?
GradmasterProgerДата: Среда, 25 Января 2017, 16:14 | Сообщение # 1
частый гость
Сейчас нет на сайте
Какой редактор решит данную проблему?)

Использовал самый известный в узких кругах Tiled и когда стали вырисовываться карты я офигел.

В конечном апк файле для андроида получился такой расклад:

Пустая сцена в проекте весит 1 кб
Если добавить туда 40 на 40 карту с 2 слоями травой и деревьями, каждый по 16 пикселей то весит 50 кб(при том фаил из которого берется эта графика в проекте уже есть)
Если эту карту увеличить до 160 на 160(тайлов, увеличив эти же два слоя), то вес апк файла для андроида увеличивается на 700 кб !(при том фаил из которого берется эта графика в проекте уже есть)

То есть графики израсходовано меньше чем на 5 кб(при том что она и так уже была в проекте, и не добавлялась), а карту он мне из них построил почти на мегобайт?) зачем тогда нужны тайлы, если проще каждую карту из картинки делать? как можно решить эту проблему?)


Сообщение отредактировал GradmasterProger - Среда, 25 Января 2017, 16:21
last2424Дата: Среда, 25 Января 2017, 16:57 | Сообщение # 2
30 мл. блоков
Сейчас нет на сайте
GradmasterProger, тайлед просто огромные файлы делает.

Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)
GradmasterProgerДата: Среда, 25 Января 2017, 17:00 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата last2424 ()
тайлед просто огромные файлы делает.

а может есть какие то альтернытивы с маленькими файлами и самое крутое на рынке из бесплатного?)
1nt3g3rДата: Среда, 25 Января 2017, 18:18 | Сообщение # 4
почетный гость
Сейчас нет на сайте
GradmasterProger, ты сохраняешь в xml-формате (расширение файла - tmx) скорее всего. Сохраняй в json, или в .bin.

Для сравнения, создал пустую карту 160х160 тайлов, потом сравнил размеры. Результат:

XML (tmx) - 486,7 кб
JSON - 77,2 кб
BIN - 25,6 кб

Почему такая разница - потому что XML-формат сам по себе очень "многословный".

А вообще есть какой-то предел по размеру карты, меньше которого ну никак не получится. Это зависит от того, сколько байт ты выделишь на каждый тайл. Например, у тебя очень простая карта, каждый тайл у тебя хранится одним байтом. Тогда минимальный размер для карты 160х160 будет (160*160=25600 байт) или же 25 КБайт. А если ты захочешь выделить на каждый тайл по два байта (например, описывать проходимость, и еще другие параметры тайла), то минимальный размер подрастет уже до 50 КБайт.

Как вывод - используй tiled, карты сохраняй в json формате. Для чтения json можешь взять gson библиотеку от гугла. Она довольно тяжелая, но рабочая.


Нужно писать такие игры, чтобы в них было интересно играть самому
GradmasterProgerДата: Пятница, 27 Января 2017, 04:21 | Сообщение # 5
частый гость
Сейчас нет на сайте
1nt3g3r очень умный ответ спасибо займусь этим в ближайшее время)

Добавлено (26 января 2017, 22:58)
---------------------------------------------
Сжимал карты, они весили по 14 кб но когда они попадали в игру, все становилось попрежнему...

Думал проблема именно в Tiled и Tiled2Unity, скачал какой-то самый простой недоделанный редактор карт, сделал там карту 200 на 200, и она в отличии от Tiled2Unity стала на порядок больше весить, сейчас как раз занимаюсь с ними экспериментами. В Tiled я все перековырял что нашел.

Проблема по ходу в юнити, как-то она под это не особо заточена видимо)) продвижений ни каких нет, короче я зашел в тупик) надо как то решить эту задачу)

Добавлено (27 января 2017, 04:21)
---------------------------------------------
Протестировал все мэпэдиторы, меньше сделать нельзя, видимо просто юнити так устроенна) она не предназначена для 2d игр)

----
кажется решил проблему с серьезными жертвами)))


Сообщение отредактировал GradmasterProger - Пятница, 27 Января 2017, 04:55
1nt3g3rДата: Пятница, 27 Января 2017, 10:59 | Сообщение # 6
почетный гость
Сейчас нет на сайте
GradmasterProger, проблема не в Unity, размер карт зависит не от этого. Просто сам по себе формат тайловых карт не даст тебе возможность очень маленького размера, как ты хочешь.

Если ты хочешь совсем по хардкору - напиши свой редактор, где храни информацию про тайлы в битах. Например, у тебя есть 16 разных видов тайлов. Тогда информация про один тайл поместится в 4 бита. Значит, в 1 байт влезет 2 тайла. И если карта 200*200 - то размер такой карты будет 40 000 тайлов, или 20 000 байт (или 19 КБайт). Но такой способ - это уже довольно сложно.

Я бы забил, и использовал tiled+json. Пусть одна карта будет порядка 100 КБайт - тогда 100 карт - это 10 МБайт. Это немного, на самом деле.


Нужно писать такие игры, чтобы в них было интересно играть самому
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг