Current time: 21.11.2024, 15:06 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Era II Mod Manager
» Менеджер модов для платформы Эра
Author Message
SyDr Offline

Posts: 1054
Post: #601

Sorry, %APPDATA% is correct and %APPDATA is not (and you probably found a default user Roaming folder)
07.05.2015 00:32
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #602

Maybe better search by preset file name?
07.05.2015 00:39
Find all posts by this user Quote this message in a reply
Valery Offline

Posts: 2196
Post: #603

Ok, managed to install and delete all previous. When I downloaded the last version, it says "it will delete the other" but it didn't, had to do manually. Then added presets folder in same location, all is ok now, thanks.
07.05.2015 01:04
Find all posts by this user Quote this message in a reply
SyDr Offline

Posts: 1054
Post: #604

Quote:When I downloaded the last version, it says "it will delete the other"
???
Didn't understood this, sorry.
07.05.2015 12:45
Find all posts by this user Quote this message in a reply
SyDr Offline

Posts: 1054
Post: #605

Berserker, как Era считает приоритеты для файлов в .pac? Что если в одном каталоге несколько .pac содержат один и тот же файл? Если файл переименовать (например, .off), Era перестанет грузить такой файл?
И...

Как насчёт забить на порядок загрузки модов со стороны ММ и пытаться построить его автоматически на основе инфы от модов:
Code:
"compatibility" : {
    "class" : "default|none|all",
    "entries" : {
            "Mod ID" : {
                "compatible" : false|true,
                "optional" : false|true,
                "load order" : "any|before|after"
                }
        }
    }
07.05.2015 21:10
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #606

Архивы, загруженные первыми, попадают в начало списка поиска. Игра ищет файлы линейно по архивам. Порядок загрузки архивов:
1) Наиболее приоритетный мод
2) По двоичной сортировке (кодам символов без усложнений): a, aa, b, b2...

Quote:Как насчёт забить на порядок загрузки модов со стороны ММ и пытаться построить его автоматически на основе инфы от модов:
Начинал делать, разработал алгоритмы, но это были плюшевые планы на 3.хх. Принцип следующий:
1) Есть главный список активных модов

[unordered]
мод1
мод2
...

Секция [unordered] значит, что порядок загрузки не фиксированный. Однако, новые моды прописываются в конец и если нет других указаний, то порядок определяется списком.

2) У каждого мода есть настройки импорта других модов в виде произвольного набора упорядоченных и неупорядоченных секций.

Phoenix.
--------
[ordered]
WoG
WoG Rus

[unordered]
Yona
Fast Battle Animation
New Music Pack

[unordered]
Phoenix Orange Skin

Секции упорядочены относительно друг друга строго. Если секция упорядоченная, значит мод просит, чтобы в конечном результате сохранялась указанная иерархия загрузки (модов внутри секции). Если неупорядоченная, то в рамках секции позиции модов не фиксированы.

Конечный список загрузки строится с попыткой удовлетворить по-максимуму запросы всех модов. Там чуточку нетривиальные алгоритмы были расписаны в тетради. Предполагалось, что ММ или любой другой клиент вызовет API из DLL и получит в формате json уже готовый список. Таким образом, вся нагрузка с ММ снималась бы. Более того, настройки модов (включая имя, версию, автора) тоже были доступны бы в json.

Часть этого ты уже сделал сам (json-настройки). С моей стороны нет поддержки более прогрессивного метода загрузки, поэтому менять текущий простой как пять пальцев вариант, на мой взгляд, преждевременно. Ты как думаешь?
07.05.2015 22:10
Find all posts by this user Quote this message in a reply
SyDr Offline

Posts: 1054
Post: #607

Berserker, что то немного сложно... Вот смотри, два произвольных мода:
1) Могут быть несовместимы, совместимы или могут требовать наличия друг друга (или только один другого)
2) Могут требовать определённого порядка или не требовать его

Вот смотри, Фениксу не нужно писать, что WoG Rus должен иметь приоритет выше, чем WoG, это сам WoG Rus должен писать.
07.05.2015 22:58
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #608

Если бы. Реально есть два мода А и Б с перекрывабщимися ресурсами. Мод С может затребовать их фиксированный порядок:
А…(что угодно)…Б
Б…(что угодно)…А не подходит, не те ресурсы перекроются.
Поэтому, решая задачу в общем случае, приходишь так или иначе к секциям (группам) с фиксированным и произвольным порядком. Более того, в WoG Rus может не быть указаны зависимости от WoG или быть указаны не совсем верно. Ведь одно дело, что указал автор мода. И другое дело — что указал автор сборки, где элементы наслаиваются друг на друга.

Я решал задачу, чтобы вопрос разрешения зависимостей между 100 модами не лежал в области квадратичной сложности по времени. Успешно решил, исписав ряд листов и отложил Ab Так со многими идеями.

Совместимость на порядок не влияет, это другая задача, которую ты уже реализовал ведь.
07.05.2015 23:59
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #609

(07.05.2015 23:59)Berserker Wrote:  Если бы. Реально есть два мода А и Б с перекрывабщимися ресурсами. Мод С может затребовать их фиксированный порядок:
А…(что угодно)…Б
Б…(что угодно)…А не подходит, не те ресурсы перекроются.
Можешь привести пример таких гипотетических двух модов? С перекрывающимися ресурсами, но не конфликтующих и при этом ещё и независимых. Потому что по-моему такие моды в природе не встречаются.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
08.05.2015 01:20
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #610

Любой мод, изменяющий cranim и Fast Battle Animation.
Два любых графических мода, заменяющих один и тот же def. Почвы, реки, курсор мыши. Хотификация, например.
Я хочу монстров из Хоты, но курсор из стороннего мода Bubble Arrows. Хотификация должна идти ниже мода с курсором. Оба мода заменяют курсор.
Два вообще любых мода, заменяющий файлы с картинками монстров. Весьма популярная проблема. Моды совместимы, но часть монстров одного должна перекрывать монстры другого + портреты используются только у верхнего.

В большой сборке ты указываешь, что точно должно перекрывать другое, а что можно перемешивать.
08.05.2015 02:10
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #611

Погоди, мы сейчас о модах говорим, а не о сборках. Сборки это другое дело, там моды уже вручную расставляются.
(08.05.2015 02:10)Berserker Wrote:  Два вообще любых мода, заменяющий файлы с картинками монстров. Весьма популярная проблема. Моды совместимы, но часть монстров одного должна перекрывать монстры другого + портреты используются только у верхнего.
Если моды просто заменяют графику, то настройка порядка тут уже относится к сборкам. Если же они добавляют новых существ, то такие моды вообще не совместимы, кроме случая когда автор одного мода добавил совместимость. Но в этом случае совместимый мод уже должен указывать с чем он совместим.


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
08.05.2015 02:28
Find all posts by this user Quote this message in a reply
SyDr Offline

Posts: 1054
Post: #612

Berserker, как и сказал gamecreator, это не относится непосредственно к модам, это уже в области сборок/хотелок пользователя.

С модами, заменяющие одни и те же ресурсы, тоже всё просто. Если один мод заменяет меньше ресурсов, чем другой, то он должен иметь приоритет выше (иначе нет смысла применять оба). Таким образом:
1) Hotify ничего не знает о Bubble Arrows (ей и не надо)
2) Bubble Arrows требует приоритета выше, чем Hotify (опционально причём)
3) Любой другой мод, также меняющий только курсор не совместим с Bubble Arrows - невозможно получить изменения из обоих модов одновременно.
4) Общее правило, чем крупнее мод - тем меньше он обо всём доллжен заботиться

Пример (не обращай внимания на реальную совместимость):
1) WoG вообще ничего не указывает
2) Phoenix указывает, что WoG обязателен и должен иметь приоритет ниже
3) WoG Rus указывает, что WoG обязателен и должен иметь приоритет ниже
и указывает что Phoenix опционален и должен иметь приоритет выше
4) Какой-нибудь Music Pack или мой мод со стандартными картами ничего не указывают, им не важен порядок

Вообще, здесь на помощь должен ещё прийти Priority -> в рамках одной неупорядоченной секции куда моду стоит приткнуться, например WoG Rus указывает, что должен быть "близко" к WoG - остальные моды будут приоритетнее при прочих равных и почти никому не надо знать про сущестование этого мода.

Вообще, что в своей системе означают две секции Unordered? Это имеется в виду, например, что Yona, FBA и NMP не важен приоритет внутри группы, но он должен быть меньше, чем у POS?

Ещё раз, непосредственно мод не может требовать загрузки других модов в определённом порядке, потому что:
1) Независимо от их порядка сам этот мод перепишет все их конфликтные ресурсы своим приоритетом
2) Это не проблема этого мода

То что ты описал, больше подходит для сборок/пресетов.
Может я упустил что-то?
08.05.2015 09:32
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #613

Quote:Погоди, мы сейчас о модах говорим, а не о сборках. Сборки это другое дело, там моды уже вручную расставляются.
Крупные моды по концепции используют свору мелких и средних, комбинируя их по своему усмотрению. Это не сборки, это моды и их зависимости.

Quote:Если моды просто заменяют графику, то настройка порядка тут уже относится к сборкам.
Да нет же, к модам. Поверх крупного мода с зависимостями можно накатить кучу нейтральных — и ничего не изменится. А сборка или пресеты — это уже какой-то жёстко фиксированный слепок.

Quote:С модами, заменяющие одни и те же ресурсы, тоже всё просто. Если один мод заменяет меньше ресурсов, чем другой, то он должен иметь приоритет выше (иначе нет смысла применять оба). Таким образом:
Да никто никому ничего не должен =). Пусть пересекается один файл из 4-х, пусть 2, пусть 3. Это никак не влияет на порядок. В случае с курсором он не будет иметь смысла (если пузырёк будет до хотификации), но это решает автор мода, использующего другие моды. Чаще всего, ресурсы перекрываются не полностью. А значит вопрос, как наложить два мода друг на друга, будет стоять (увы, портреты модов хранятся в одном файле/как и опции вогификации, но люди спокойно играют в наборы, где эти портреты перекрываются по много раз).

Quote:Любой другой мод, также меняющий только курсор не совместим с Bubble Arrows
Концепция совместимости крайне хрупкая и имеет вообще рекомендательный характер. Не вижу её активного использования в играх. И при наличии 100 модов, никому не интересно производить 5000 сравнений каждого мода с каждым, а как они ведут себя вместе? Или в ресурсах копаться. Поэтому я скептически настроен к тому, что кто-то будет реально обновлять эту информацию. Простота и практичность всегда побеждает, как АК-47.

Более того, я считаю, что несовместим — это реально вызывает порчу игры, критические баги или вылеты. Замена ресурсов в эту область едва ли попадает.

Quote:WoG Rus указывает, что WoG обязателен и должен иметь приоритет ниже
и указывает что Phoenix опционален
Автор мода должен знать лишь о своём моде и том, что он использует. Поэтому WoG Rus не будет знать, что есть Феникс. А вот Феникс знает, что использует ВоГ, затем русификацию Вога, затем свои текстовики. Поэтому порядок:

[ordered]
WoG
WoG Rus

Quote:WoG Rus указывает, что должен быть "близко" к WoG
Почему? ) После ВоГа — да, близко — это неформальный термин. Между ними может быть что угодно нейтральное. Например: WoG Fixes и WoG Additions. А вот русификация поверх, поскольку игрок ничего не понимает в иностранном.

Quote:Вообще, что в своей системе означают две секции Unordered? Это имеется в виду, например, что Yona, FBA и NMP не важен приоритет внутри группы, но он должен быть меньше, чем у POS?
Да:

(WoG ... WoG Rus) (Yona ... <-> ... FBA ... <-> ... NMP) (Phoenix Orange Skin)

Если другой мод укажет в импорте

...
[ordered]
FBA
Yona

Значит Yona должна идти после FBA. Очевидно, были проблемы, когда было наоборот. И порядок всё более конкретизируется.

Quote:Ещё раз, непосредственно мод не может требовать загрузки других модов в определённом порядке, потому что:
1) Независимо от их порядка сам этот мод перепишет все их конфликтные ресурсы своим приоритетом
2) Это не проблема этого мода
Здесь и разнится понимание. Автор мода не порядок абсолютный указывает, а что на что в каком порядке можно наложить, чтобы получилось то, что хотел автор.

WoG, WoG Rus значит лишь, что WoG Rus идёт после сколька угодно модов, которые после WoG. То есть WoG Rus, WoG исключено.

Quote:То что ты описал, больше подходит для сборок/пресетов.
Может я упустил что-то?
Думаю, ты можешь в рамках ММ проводить любые эксперименты =) Попробовать новую систему, которая тебе ближе. Главное, чтобы на выходе был list.txt, из которого уже можно было взять готовый порядок.

Да, *.pac грузятся только с расширением *.pac. .off.pac подходит.
08.05.2015 16:34
Find all posts by this user Quote this message in a reply
SyDr Offline

Posts: 1054
Post: #614

Quote:...увы, портреты модов хранятся в одном файле/как и опции вогификации, но люди спокойно играют в наборы, где эти портреты перекрываются по много раз
Вот от такого, мне кажется, надо на уровне системы избавляться. Иначе получаем на английской версии описание страниц и групп на русском, или что ещё похуже.
Quote:Концепция совместимости крайне хрупкая и имеет вообще рекомендательный характер. Не вижу её активного использования в играх.
Я тоже ничего не такого не видел. Ни одного мода. А значит, раз таких нет - можно менять практически как захочется Sm.
Quote:Поэтому я скептически настроен к тому, что кто-то будет реально обновлять эту информацию.
Смотри мне, а то сделаю сейчас возможность актуализации локальной инфы мода без необходимости скачки полного пакета...
Quote:Автор мода должен знать лишь о своём моде и том, что он использует. Поэтому WoG Rus не будет знать, что есть Феникс. А вот Феникс знает, что использует ВоГ, затем русификацию Вога, затем свои текстовики. Поэтому порядок...
Исключительно для гибкости. Мод A может сообщать, что должен иметь приоритет выше, чем B. А можно и наоборот, мод B сообщит о том, что имеет приоритет ниже, чем A.
Quote:Почему? ) После ВоГа — да, близко — это неформальный термин.
Формальный. Это означает, что если у нас есть группа модов, для которых уже никак нельзя определить порядок (никто ничего не сообщает о приоритетах) - этот мод должен иметь приоритет повыше или пониже, чем остальные.
Quote:Очевидно, были проблемы, когда было наоборот.
Извини, я не могу представить себе ситуацию, что:
AB - работает нормально
BA - работает нормально
ABC - работает нормально
BAC - работает неправильно
Quote:WoG, WoG Rus значит лишь, что WoG Rus идёт после сколька угодно модов, которые после WoG. То есть WoG Rus, WoG исключено.
В догонку к предыдущему пункту, если только такой порядок и допустим, то почему об этом сообщает Phoenix, а не сам WoG Rus?
Quote:Думаю, ты можешь в рамках ММ проводить любые эксперименты =) Попробовать новую систему, которая тебе ближе. Главное, чтобы на выходе был list.txt,
А вот воьзму и сделаю... Или нет Sm. Надо на моды других игр посмотреть для улучшения представления.
Quote:Да, *.pac грузятся только с расширением *.pac. .off.pac подходит.
То есть то, что описано в первом посте "Delete x to remove animated tress" можно спокойно реализовать также, как и для плагинов...
08.05.2015 17:39
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #615

(08.05.2015 16:34)Berserker Wrote:  Крупные моды по концепции используют свору мелких и средних, комбинируя их по своему усмотрению. Это не сборки, это моды и их зависимости.
Это какая-то новая для меня концепция. Я же считаю, что моды реализуют функционал (будь то геймплей, графика или иной контент). Мод может требовать другие моды, без которых он не сможет работать: это и есть зависимость (к примеру, Seer Huts требует Pandora's API). Феникс будет работать без Bubble arrows и Hotify? Вполне. Но ничто не мешает им сосуществовать. Это совместимость.
Но это всё не отменяет сборки. Ты можешь сделать официальную сборку Феникса, в которой поставить Bubble Arrows приоритетнее Hotify. Да, бывают моды, написанные специально для сборок. В этом нет ничего странного.
(08.05.2015 16:34)Berserker Wrote:  Да нет же, к модам. Поверх крупного мода с зависимостями можно накатить кучу нейтральных — и ничего не изменится. А сборка или пресеты — это уже какой-то жёстко фиксированный слепок.
Поверх сборки тоже можно накатить кучу нейтральных модов. Вывод? Лишние сущности не нужны. Сборки есть сборки, а моды есть моды. Не нужно их мешать в одну кучу.
(08.05.2015 16:34)Berserker Wrote:  Концепция совместимости крайне хрупкая и имеет вообще рекомендательный характер. Не вижу её активного использования в играх. И при наличии 100 модов, никому не интересно производить 5000 сравнений каждого мода с каждым, а как они ведут себя вместе? Или в ресурсах копаться. Поэтому я скептически настроен к тому, что кто-то будет реально обновлять эту информацию. Простота и практичность всегда побеждает, как АК-47.

Более того, я считаю, что несовместим — это реально вызывает порчу игры, критические баги или вылеты. Замена ресурсов в эту область едва ли попадает.
Концепция совместимости как раз таки спасает игрока от порчи игры, критических багов или вылетов.
Сравнение каждого мода с каждым производят игроки, которые пихают в кучу всё, что ни попадя. Если что-то не работает, то они всё равно сообщат мододелам (тут и более информативные сообщения об ошибках не помешают) и те уже решат: или объявлять мод несовместимым, или фиксить баги, или добавлять совместимость. Задача приоритетов как раз в том, чтобы собранная пользователем куча работала. Если нет гарантий что несовместимые моды вместе не запустятся, то толку от приоритетов?
Простота уже сейчас есть в Менеджере модов. Проще некуда. Практичность тоже удовлетворительная.
(08.05.2015 16:34)Berserker Wrote:  Автор мода должен знать лишь о своём моде и том, что он использует. Поэтому WoG Rus не будет знать, что есть Феникс. А вот Феникс знает, что использует ВоГ, затем русификацию Вога, затем свои текстовики. Поэтому порядок:

[ordered]
WoG
WoG Rus
Каждый мод не должен талдычить менеджеру, что WoG Rus идёт после WoG. Это должен делать единожды(!) сам WoG Rus.
(08.05.2015 16:34)Berserker Wrote:  Если другой мод укажет в импорте

...
[ordered]
FBA
Yona
А если третий мод укажет наоборот?


When all gods have burnt to ashes in eternity of sorrow,
Demons gonna tear your soul because there is no tomorrow.
08.05.2015 18:11
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group