Jump to content
Sign in to follow this  
hokage

Ямми увеличивает вес карты

Recommended Posts

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

Share this post


Link to post
Share on other sites

Привет, @hokage!

 

Это связано со следующим: файл карты состоит из клеток (т.н. "тайлов"), которые объединяются в секции 8 x 8 клеток. В каждой клетке записывается некоторая информация: тип клетки (суша, вода, мост), ID текстуры, ID региона, высота, проходимость и др. Если все клетки в секции являются "водными", т.е. секция представляет собой только участок воды, то эту секцию можно не записывать в .map файл, что позволяет уменьшить вес карты на диске. Проблема в том, что YAMMI не использует данную оптимизацию и все равно записывает "пустые" секции с водой в файл.

 

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

 

Клетка занимает 15 байт, в секции 64 клетки, таким образом, секция весит 960 байт на диске. Удалив N пустых секций, соответственно можно сэкономить 960 * N байт.

  • Like 2

Share this post


Link to post
Share on other sites
9 минут назад, V3ct0r сказал:

Привет, @hokage!

 

Это связано со следующим: файл карты состоит из клеток (т.н. "тайлов"), которые объединяются в секции 8 x 8 клеток. В каждой клетке записывается некоторая информация: тип клетки (суша, вода, мост), ID текстуры, ID региона, высота, проходимость и др. Если все клетки в секции являются "водными", т.е. секция представляет собой только участок воды, то эту секцию можно не записывать в .map файл, что позволяет уменьшить вес карты на диске. Проблема в том, что YAMMI не использует данную оптимизацию и все равно записывает "пустые" секции с водой в файл.

 

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

 

Клетка занимает 15 байт, в секции 64 клетки, таким образом, секция весит 960 байт на диске. Удалив N пустых секций, соответственно можно сэкономить 960 * N байт.


На самом деле это великая проблема, которая ставит "больные" преграды в создании лора.
Будем очень благодарны за такую программу. Либо небольшую инструкцию по работе с map. Мы бы попробовали написать свою для общего доступа. 

Share this post


Link to post
Share on other sites
16 минут назад, V3ct0r сказал:

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

Спасибо за ответ! Изменения мап файла в редакторе не помогло, видимо только софт поможет.

Share this post


Link to post
Share on other sites

@Fomin, @hokage

 

Отправьте образцы карт, которые необходимо ужать. Попробую сделать программу. 

  • Like 1

Share this post


Link to post
Share on other sites

Привет @hokage, @Fomin!

 

Сделал программу:

1) Программа (.exe);

2) Исходный код (C++).

 

Программа консольная, поэтому пути до исходного и выходного .map файлов передаются через параметры запуска:

> pkodev.tool.mapcompressor darkblue.map darkblue_c.map

darkblue.map - это "несжатый" .map файл, который требуется уменьшить;

darkblue_c.map - это "сжатый" .map файл после обработки программой.

 

Вывод программы будет примерно следующий:

PKOdev.NET .map file compressor program
Version: v1.0.0 (03/01/2022)
Author: V3ct0r

Input .map file: darkblue.map
Output .map file: darkblue_c.map

Input .map file information:
* Width: 4096
* Height: 4096
* Section width: 8
* Section height: 8
* Sections number: 262144

Please wait . . .

Done!
* Sections compressed: 222007
* Percentage: 84.6889%
* Bytes freed: 213126720

Как видно из вывода, размер .map файла был уменьшен примерно на 203 Мб.

 

Быстрые тесты показали, что оно вроде бы работает, но все равно прошу вас все хорошо проверить и сообщить о результатах.

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

Привет, @hokage и @Fomin!

 

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

 


Share this post


Link to post
Share on other sites
9 часов назад, V3ct0r сказал:

Привет, @hokage и @Fomin!

 

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

 

Привет! В процессе теста пока что

  • Thanks 1

Share this post


Link to post
Share on other sites
On 3/4/2022 at 8:05 PM, hokage said:

Привет! В процессе теста пока что

Хорошо, ожидаю ответа.


Share this post


Link to post
Share on other sites
В 12.03.2022 в 17:35, V3ct0r сказал:

Хорошо, ожидаю ответа.

Обнаружил проблему. В порту часть пристани стала неактивной для перемещения, а нпс и вовсе провалился под нее.

image.png.7ed79313a2a6dec7af15c2d11b89fb3f.png

  • Thanks 1

Share this post


Link to post
Share on other sites

Привет, @hokage!

 

Благодарю за тестирование. Проблему увидел, буду думать как её исправить. 

 

Также буду признателен, если сообщишь название карты и координаты проблемного участка.


Share this post


Link to post
Share on other sites

Привет, @hokage и @Fomin!

 

Исправил проблему:

map_c_fixed.png

 

Обновил исходный код и сборку на GitHub.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
On 7/29/2022 at 3:21 PM, hokage said:

@V3ct0r Привет! Довольно долгое тестирование не выявило никаких ошибок.

Отлично!


Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...