MX_Master Posted March 21, 2011 Share Posted March 21, 2011 Про .map'ки возник небольшой вопрос. Допустим, в моем моде их штук 10. Но игроки постоянно возмущаются, что им каждый раз при входе надо качать их заново. Учитывая размеры современных карт, это резонное возмущение со стороны игроков. Допустим карта тачек для всей карты на 1000 штук, карты всяких объектов, островов и прочей лабуды. Получается все эти, допустим, 4 Мб карт нужно качать каждый раз при входе. Они же не сохраняются, не кэшируются и не ведут себя так, как скрипты. Карты нужно скачивать каждый раз, даже если они не изменились на сервере. Нашел весьма частичное решение - на сервере парсить карты и создавать элементы вручную. Это немного помогает, т.к. передается всё уже пакетами в более сжатом виде и иногда не все сразу. Собсна, сабж. Как сделать так, чтобы эти карты тоже кэшировались? Link to comment
lil Toady Posted March 21, 2011 Share Posted March 21, 2011 Нашел весьма частичное решение - на сервере парсить карты и создавать элементы вручную. Это немного помогает, т.к. передается всё уже пакетами в более сжатом виде и иногда не все сразу. В общем-то это то что МТА и делает, она не посылает мапы, она их парсит и создает элементы, и все элементы из мапы посылаются в одном пакете (так что свою идею брось, то что делает мта - быстрее и легче). И собственно поэтому кэширование не возможно, т.к. нельзя кэшировать отдельные элементы. Но как вариант, статичные элементы как например объекты, маркеры и т.д. которые не требуют последующей синхронизации можно засунуть в отдельную мапу которая будет передаваться клиенту файлом, а следовательно кэшироваться, а далее парсить эту мапу на стороне клиента. Link to comment
MX_Master Posted March 21, 2011 Author Share Posted March 21, 2011 я специально смешной тест провел (: берем карту с кучей тачек созданную редактором, весом в 588 кб. Запускаем сервер только с ней. При входе на сервер клиент всегда качает 786 Кб берем эту же карту, но поиском и заменой убираем из нее лишние стандартные значения параметров, типа plate, interior, dimension, сокращаем слегка названия элементов. Файл карты худеет и уже весит 412 Кб. И при входе на сервер, клиент всегда качает 586 Кб. Ну и мой вывод - элементы те же, но зависимость такова, как будто-то качается простой текст файла + данные об элементах. Беру и добавляю в ресурс серверный скрипт, который из карты читает данные и создает элементы. В мете указываю карту как конфиг серва. Вес файла карты 588 Кб. Запускаю серв с этим ресурсом одним и при конекте всегда качает 155 Кб. Ставлю "очищенный вариант этой же карты" в 412 Кб - при коннекте качает также 155 Кб. Вот В ЭТОМ НИЖНЕМ примере передаются только данные элементов, а в ТОМ ВЕРХНЕМ примере что клиент качает? Желающие могут провести этот эксперимент у себя на компе. И это только 1 файл карты с тачками. Есть еще карта со статичными пикапами для всей карты; карт 5-6 со статичными объектами островов вокруг основной карты; еще карта, которая закрывает в общей карте дырки, куда игрок может провалится под землю. Думаю, это не предел. Таким макаром и набирается объем, который игрок вынужден качать каждый раз при входе на сервер, хотя эти файлы карт даже не изменились. Что касается статичных объектов, есть вариант, схожий со вторым примером выше. Только нужно указать, что файл карты это конфиг клиента. Я не проверял, но думаю он не будет качаться каждый раз при входе (это предположение) на сервер, если он уже скачан ранее и не изменился. На стороне клиента скрипт всегда читает этот файл и создает чисто клиентские объекты. Таким образом, у каждого клиента свои (несинхронизированные), но одни и те же объекты как и у других игроков. Link to comment
Evgeni_Degerev Posted March 23, 2011 Share Posted March 23, 2011 ИМХО: gzip сжатие для мап/конфигов/клиент-файлов не помешает. Кроме того, существует модуль LUA для работы с gzip на лету Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now