Oolite
Имя
Пароль
 Запомнить
  OXP vs OXZ - в чем разница?
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Геймер, пересевший с 1.77 на 1.80, с новым форматом OXZ уже на практике ознакомился. Но думаю, вопросы остаются. Можно ли сказать, что OXZ - всего лишь более продвинутый в сравнении с OXP и более удобный для геймера и разработчика формат? Или таки есть плюсы и минусы? Как взаимодействуют OXP и OXZ, могут ли они конфликтовать и на что обращать внимание при индивидуальной настройке игры?
Начнем с отличий.
OXP - папка со вложенными папками ресурсов (Config, Images, Models, Scripts, Textures etc).
OXZ - единый архив, то есть один файл. Но если его разархивировать, в первом приближении ресурсы имеют ту же структуру. Отличие только в том, что в папке OXP на корневом уровне находится файл requires.plist (не обязателен), а в архиве OXZ - также на корневом уровне файл метаданных manifest.plist (строго обязателен). То есть можно разархивировать OXZ, прописать расширение .oxp, поместить полученный пакет в папку AddOns и он будет работать как обычно!
OXP и OXZ размещаются в разных директориях. OXP находятся на привычном месте в директории Oolite/AddOns, OXZ в Mac OS - в директории юзверь/Library/Application Support/Oolite/Managed AddOns.
Для машины в принципе форматы без разницы - Оолит 1.80 прекрасно понимает оба. При старте программы несколько лишних секунд тратится на распаковку архивов, но поскольку в обоих случаях все необходимые ресурсы подгружаются в оперативную память, на дальнейшей работе программы это никак не сказывается. Геймер на маломощной машине скорее столкнется с тормозами на тяжелых гриффовских текстурах кораблей, которые теперь включены в дистрибутив, и на текстурах пакета Random Hits (независимо от формата пакета).
Для обычного геймера очевидное преимущество формата OXZ - удобное обновление пакетов через встроенный в игровое меню менеджер. Собственно, в этом и есть основной смысл перехода на новый формат. Геймеру не надо периодически заглядывать на EliteWiki в поисках обновлений, скачивать и распаковывать их вручную и вручную же помещать в папку AddOns: пакет ставится/обновляется/удаляется одним кликом мыши. Очень удобно стало следить за обновлениями пакетов и синхронизировать свою конфигурацию до свежих версий (фактически это можно делать при каждом запуске игры). Более того, менеджер отслеживает зависимости между пакетами (как раз эта информация среди прочего прописана в файле manifest.plist) и ясно обозначает: пакет без таких-то пакетов не работает. Что для геймера, которому разбираться, что там указал автор в readme вообще лениво, радикально упрощает настройку конфигурации.
Есть, конечно, и неудобства.
Прежде всего, менеджер OXZ установленные пакеты в старом формате OXP вообще не видит. Так что наведение порядка среди старых OXP и отслеживание их конфликтов по прежнему исключительно на совести геймера и только вручную. Более того, поскольку любимые пакеты в старом формате OXP сейчас имеют OXZ альтернативу, при установке OXZ версии пакета старую версию OXP надо опять же сносить вручную.
Менеджер OXZ предоставляет информацию о смысле пакета, но весьма краткую. Очень мило, конечно, что пакеты отсортированы по категориям, но по краткой строке описания трудновато понять, действительно ли именно без этого пакета жизнь в Оониверсуме смысла не имеет. В EliteWiki, если уж геймер туда заглядывал, было много буковок на латинице и скриншоты. Смысл пакета было понять как-то проще. Казалось бы - ну что за проблема: поставил, попробовал, снес? Но сплошь и рядом проблема возникает не сразу, и новичку, изначально привыкшему к автоматическому обновлению пакетов через менеджер, будет абсолютно невдомек: а чё это в натуре лазер начал ломаться? Я давеча поставил Liners.oxz и лишь через десяток рейсов увидел графический глюк в пакете. Проблемный пакет я определил сразу исключительно благодаря опыту общения с аналогичным глючным OXP.
Наконец, упаковка пакета в архив гарантирует, что файл readme геймер никогда не прочитает (упаковка в старом формате OXP оставляла вероятность примерно три процента, что хоть кто-то от нечего делать таки этот файл бегло проглядит). Теперь у ленивого геймера стопроцентная отмазка: распаковывать архив, чтобы прочесть readme? Ага, щаз!
В целом можно сказать, что для обновления проверенных пакетов формат OXZ - то что надо, а вот с установкой новых пакетов та еще лотерея. Но для геймера, которому лениво что-то колупать, допиливать и настраивать под свой вкус, плюсы нового формата перевешивают. Особенно, если наличный набор OXZ полностью покрывает потребности. А список доступных OXZ быстро растет и уже включил большинство канонических пакетов, что в принципе позволяет построить полноценный стабильный игровой мир полностью на базе нового формата.
Для разработчика, конечно, хлопот добавилось. Если мне надо было внести исправление в OXP, я открывал пакет правым кликом мыши, открывал нужный файл редактором Dashcode, вносил изменение и сохранял файл - после чего можно было запускать Оолит и смотреть, что произошло. Теперь мне надо в пакете OXZ заменить расширение .oxz на .zip, разархивировать его и только потом я могу что-то редактировать. После чего надо снова упаковать отредактированные файлы в архив, проследить при этом, чтобы файл manifest.plist оказался на его корневом уровне и снова восстановить расширение .oxz. Так что рекомендация для разработчика такова: всю черновую работу над пакетом, особенно на этапе его интенсивной отладки, есть смысл вести в формате OXP и переводить в формат OXZ уже отлаженный продукт, доведенный до игрового вида.
Но и с дистрибуцией пакета есть засада. С бокса и прочих обычных файлохранилищ менеджер автоматически забирать файлы не умеет, поэтому файлы в формате OXZ выгружаются на сервер, куда начинающий разработчик-любитель не вхож. Пакеты в формате OXP можно выгружать на бокс и пересылать по почте, что позволяет создать эдакий уютный клуб по интересам. Чтобы полноценно поддерживать пакеты в формате OXZ, нужно стать если не гуру, то хотя бы признанным мастером и занять место в большом сообществе. Если ваши амбиции ограничены любительскими проектами для себя и пары-тройки друзей, переход на формат OXZ - лишние хлопоты, вполне можно ограничиться форматом OXP.
Ну и наконец вопрос, интересующий продвинутого геймера: можно ли управлять взаимодействием OXZ, объединяя их в суперпакеты по аналогии с суперпакетами OXP?
Не берусь ответить уверенно, но боюсь, что нет. Создавать какие-то директории вручную в папке Application Support не то чтобы маздай, но в общем без ясного понимания не рекомендуется - считается, что юзверю без крайней нужды там делать нечего. Да и нет уверенности, что менеджер корректно распознает пакеты, вложенные не на корневой уровень в папке Managed AddOns, а в поддиректории. Но это как раз тот случай, когда не поваляешь - не поешь. Если хотите поэкспериментировать - по крайней мере предусмотрите откат на исходную конфигурацию.
Пакеты в формате OXZ можно поместить вручную в папку AddOns. Игра будет их нормально узнавать и запускать (и вот тут как раз можно безбоязненно поэкспериментировать с суперпакетами). Менеджер эти пакеты тоже видит, но помечает красным цветом и предупреждает: пакет был установлен вручную и его автоматическое обновление невозможно.
На самом деле это досадно, но не трагично. Лог однозначно показывает, что OXP в папке AddOns запускаются после OXZ в папке Managed AddOns. Так что все ваши настройки, заглушки и самодельные пакеты, собранные в папке AddOns, будут по прежнему класть свои установки поверх дефолтных именно в том порядке, как было задумано. Что и подтвердил мой опыт миграции в 1.80 - все мои самодельные пакеты запустились в новой среде без проблем. Так что по мере пополнения банка OXZ пакеты других разработчиков, которые я использую в неизмененном виде, постепенно покидают мою папку AddOns и перебираются в Managed AddOns. А в папке AddOns остаются лишь те пакеты, которые по каким-то причинам я предпочитаю конфигурировать вручную.
К примеру, The Feudal States Рамиреса в формате OXZ однозначно требует для своей работы установить пакет PlanetFall Таргоида. Но поскольку у меня PlanetFall замещен на альтернативный PlanetLand, я попросту продолжаю использовать этот пакет в старом формате OXP - по функциональности они идентичны и пока Рамирес не выпустит апдейт своего пакета, беспокоиться не о чем.
Вот такие дела.


  Re: OXP vs OXZ - в чем разница?
Не в сети
Competent

Зарегистрирован: 30.08.15
Сообщений: 78
stranger:
Теперь мне надо в пакете OXZ заменить расширение .oxz на .zip, разархивировать его и только потом я могу что-то редактировать. После чего надо снова упаковать отредактированные файлы в архив, проследить при этом, чтобы файл manifest.plist оказался на его корневом уровне и снова восстановить расширение .oxz.

Не всё так категорично, в виндовс есть файловый менеджер Total Commander, который работает с архивами как с папками, ни чего не переименовывая захожу в файл.oxz как в папку добавляю, удаляю и редактирую файлы, очень удобно. Линукс понимает что файл.oxz это архив, и также проблем не возникает.


  Re: OXP vs OXZ - в чем разница?
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
To sanata
Можно скриншот в студию, как выглядит страница редактора скрипта при работе в Total Commander?
В Dashcode - так.


Вложения:
list.png

  Re: OXP vs OXZ - в чем разница?
Не в сети
Competent

Зарегистрирован: 30.08.15
Сообщений: 78
А в мой тотелкомандер встроен Notepad++ и всё выглядит почти также [img]aaa.jpg[/img]


Вложения:
aaa.jpg

  Re: OXP vs OXZ - в чем разница?
Не в сети
Competent

Зарегистрирован: 30.08.15
Сообщений: 78
И сам тотелсомандер выглядит так. слева зашёл в файл RUS_Display_Reputation.oxz


Вложения:
TC.jpg

  Re: OXP vs OXZ - в чем разница?
Не в сети
---Elite---
Аватар пользователя

Зарегистрирован: 15.05.11
Сообщений: 1531
Ну что же, вполне рабочий вариант.
Остается проблема с обновлением OXZ. Так как менеджер их с бокса сам не забирает (возможно, конечно, это как-то решаемо) - та же инсталляция вручную, разве что конфликты пакетов и правда проще отслеживать.


Новая тема  Ответить  
Показать сообщения за:  Сортировать по:  









Список форумов / Обсуждение игры и OXP