Current time: 20.04.2024, 23:39 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 16486
Post: #616

Ежели честно, не планирую особо развивать эту тему, так как в текущей реализации Эры ничего не меняю. Мы расходимся в базе. База:
А + Б <> Б + А, если есть подмножество X, принадлежащее модам А и Б.
Мод С, используя А и Б, должен указать в каком порядке их скомбинировать, если X принципиально для работы мода С.

В программных пакетах ресурсы не перекрываются. А там, где перекрываются (порядок загрузки модулей в Delphi, где модули переписывают один и тот же обработчик событий), вопрос решается указанием порядка импорта со стороны импортирующего модуля.

Мой вариант покрывает все случаи. О противоречиях пользователь уведомляется при запуске игры, при этом приоритет отдаётся настройкам более поздних модов. Положим, игрок хочет забить на настройки авторов и выстроить моды сам. Он делает это, создав группу [ordered] и перенеся все моды туда.

В варианте Сидра я должен создать секцию json для каждого мода, который используется и указать, эм, до него мне быть, после или где угодно? В чём практический смысл и где детерминированность? Если у вас, ребята, есть чёткое понимание, какие задачи вы собираетесь решить, то на здоровье Ab

Я, так или иначе, включу тот ММ, который даст Сидр ) Только настройки меняются ini/json, первоначально вообще было просто (включил мод в сборку и всё ))).

Да, pac-и можно отключать переименованием. Само наличие паков, не выделенных в моды, мне не нравится. Просто мелкие моды замедляют работу виртуальной фс. 10 модов, 400 сохранёнок в games, 10 поисков по папкам + 4000 проверок существования файлов при первом доступе. Операции кэшируются, надо бы кэш увеличить и выделить эти Анимированные деревья в отдельный мод.
08.05.2015 20:34
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16486
Post: #617

SyDr, будь другом, напомни, какой там самый последний формат настроек модов? Что Валерий использует?
08.05.2015 20:45
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #618

(08.05.2015 20:34)Berserker Wrote:  Мод С, используя А и Б, должен указать в каком порядке их скомбинировать, если X принципиально для работы мода С.
Если. Но почему ты думаешь, что это возможно?


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

Posts: 16486
Post: #619

Странный вопрос. Конечно возможно. Всё, что возможно теоретически, возможно и в реале. Быстрая анимация в бою заменяет звуки + cranim. Если импортировать любой другой мод, заменяющий cranim (New Upgrades?), то встанет вопрос, нам нужны только звуки ускоренные или ещё и анимация монстров? Или второй мод заменяет модели на другие, с другим числом кадров, поэтому cranim.txt из Быстрой анимации будет вылетать? Если число кадров то же, стрелки не добавляются и не пропадают, то подойдёт и cranim.txt из Быстрой анимации.

И вот я, автор Lord или чего там ещё, собирая свой мод по кирпичикам, описываю зависимости. Явно не от балды же пишу. Мой мод явно после всех, которые использую. То есть after|does not matter мне не нужны. А вот указать порядок импорта не могу. Так смысл мне тогда делать сборку из модов? Придётся распаковывать все их ресурсы и копировать нужные в свои.

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

Сейчас автору Lordа проще распространять всю игру.

P.S. Но я не спорю ради спора. Пока не ясно назначение настроек Сидра. По мне, так проще просто перечислить неупорядоченный импорт, чем указывать, что все импортируемые моды должны быть before твой.
08.05.2015 21:03
Find all posts by this user Quote this message in a reply
SyDr Offline

Posts: 1052
Post: #620

Quote:А если третий мод укажет наоборот?
При любой реализации можно получить противоречия Sm
Quote:Ежели честно, не планирую особо развивать эту тему, так как в текущей реализации Эры ничего не меняю.
Ну так и у меня ещё ничего не реализовано 118
Quote:Мод С, используя А и Б, должен указать в каком порядке их скомбинировать, если X принципиально для работы мода С.
Идея понятна, но представить такую ситуацию я себе не могу (точнее могу, но на реальность перевести не получается). Вот что тут поделаешь...
Quote:В варианте Сидра я должен создать секцию json для каждого мода, который используется и указать, эм, до него мне быть, после или где угодно? В чём практический смысл и где детерминированность? Если у вас, ребята, есть чёткое понимание, какие задачи вы собираетесь решить, то на здоровье
Эмм... Ну не нравится секция на мод - можно как здесь: https://github.com/MinecraftForge/FML/wi...ation-file (в самом низу).
Quote:Я, так или иначе, включу тот ММ, который даст Сидр ) Только настройки меняются ini/json, первоначально вообще было просто (включил мод в сборку и всё ))).
Теперь проще - при распаковке с заменой настройки не перезаписываются.

Вообще, немного о других играх:
FTL - много модов не поставишь, нужно ручками аккуратно менять приоритеты в соответствии с указаниями автора
Minecraft - о приоритетах пользователь вообще не парится
Skyrim - пока моды не трогают определённые штуки, можно не волноваться, иначе начинается ад с оптимизацией порядка загрузки и созданием Bashed Patch

Berserker (если есть ММ - смотри каталог doc)
(This post was last modified: 08.05.2015 21:13 by SyDr.)
08.05.2015 21:11
Find all posts by this user Quote this message in a reply
SyDr Offline

Posts: 1052
Post: #621

Вообще, я твою идею понял. При такой реализации будет больше инфы для правильной сортировки модов. Но с тем, что Phoenix указывает порядок для WoG и WoG RUS я всё равно не согласен Sm
Но вообще, как ни крути, проблемы будут:
Вот есть B, который указывает, что нужно AB. И есть C, который указывает, что нужно BAC. Кому верить? Учти, что у нас пока вообще нет идей, кто самый приоритетный мод.
08.05.2015 21:27
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16486
Post: #622

Quote:Вообще, я твою идею понял. При такой реализации будет больше инфы для правильной сортировки модов. Но с тем, что Phoenix указывает порядок для WoG и WoG RUS я всё равно не согласен
Я тоже заметил, просто пример хороший. WoG Rus будет импортировать WoG сам. Но если строить Феникс на базе WoG Revised, то нужно указать:

[ordered]
WoG Revised
WoG Rus

Потому что круто, что оба они сами импортируют WoG, но Феникс русскоязычный, а Phoenix Eng можно было бы ставить поверх Феникса.

Quote:Вот есть B, который указывает, что нужно AB. И есть C, который указывает, что нужно BAC. Кому верить? Учти, что у нас пока вообще нет идей, кто самый приоритетный мод.

Есть базовый список, формируемый при установке модов или вручную.
[unordered]
A
B
C

Первым делом разрешаем зависимости C. Если будет установлено, что A+B, а не B+A, любое противоречие приведёт к диалоговому окну: «Мод С требует порядка модов: A, B. Мод E требует порядка модов B, A. Противоречие не возможно разрешить в автоматическом режиме. Продолжить?».

Quote:Идея понятна, но представить такую ситуацию я себе не могу (точнее могу, но на реальность перевести не получается). Вот что тут поделаешь...
Угу, выше привёл.

Quote:Эмм... Ну не нравится секция на мод - можно как здесь: https://github.com/MinecraftForge/FML/wi...ation-file (в самом низу).
Не критично. Просто пока видится смысл в обычном массиве ["A", "B", "C"], учитывая, что все импортируемые должны быть загружены ДО текущего мода.
Quote:Вообще, немного о других играх:
FTL - много модов не поставишь, нужно ручками аккуратно менять приоритеты в соответствии с указаниями автора
Minecraft - о приоритетах пользователь вообще не парится
Skyrim - пока моды не трогают определённые штуки, можно не волноваться, иначе начинается ад с оптимизацией порядка загрузки и созданием Bashed Patch
Ага, проблемы ясны. И мне года два назад только идея с импортом групп (упорядоченных и неупорядоченных) казалась самым передовым решением. И сейчас кажется Sm

Спасибо за конфиг, понял.
08.05.2015 21:38
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16486
Post: #623

Предполагалось, что у ММ два режима (галочка). В автоматическом пользователь меняет порядок модов в основном неупорядоченном списке:

[unordered]
A
C
B

Можно через радио-переключатель посмотреть конечный список read-only, где разрешены зависимости. Разрешение зависимостей идёт в порядке от самого свежего к самому древнему: B, C, A.

Если же стоит галочка «вручную», то пользователь редактирует упорядоченный список:

[ordered]
C
B
A

При этом зависимости игнорируются, ведь упорядоченный список, он как пресет. Фиксирует всё жёстко.
08.05.2015 21:49
Find all posts by this user Quote this message in a reply
SyDr Offline

Posts: 1052
Post: #624

В чём разница в твоей системе между:
[ordered]
WoG
WoG Rus
и
[ordered]
WoG
[ordered]
WoG Rus
?
08.05.2015 22:48
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16486
Post: #625

Ни в чём.
09.05.2015 00:17
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #626

(08.05.2015 21:38)Berserker Wrote:  Первым делом разрешаем зависимости C. Если будет установлено, что A+B, а не B+A, любое противоречие приведёт к диалоговому окну: «Мод С требует порядка модов: A, B. Мод E требует порядка модов B, A. Противоречие не возможно разрешить в автоматическом режиме. Продолжить?».
Вот это уже что-то приличное.


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

Posts: 1052
Post: #627

Berserker, если правильно понял, можно описывать так:
(Мне надоело говорить про приоритеты, поэтому я буду говорить о порядке загрузки - WoG первый, остальные потом, т.е. просто инверсия порядка приоритетов. Да, я знаю, что в реальности это не так)
priority - после всех расстановок у нас получается упорядоченная группа неупорядоченных групп. Можно использовать для дополнительной сортировки внутри этих групп (просто уже существующая запись сюда переедет).
incompatible - для меня это больше логическая несовместимость, чем физическая. Т.е. даже если игра и будет работать, но без ожидаемых изменений, я считаю, что моды несовместимы.
optional - мод совместим с этими модами. Не указывает порядок вообще, т.е. они могут загружены после.
required - эти моды обязаны быть для корректной работы. В идеале игра не должна запускаться с корректным сообщением об ошибке.
after - твоя система с измененим, что секции ordered постоянно повторяются (их можно сразу описывать строкой, а не массивом, но для порядка лучше было бы, чтобы всё одинаково было).
before - тоже самое.

Вообще, проблемы всё ещё есть, например, нельзя указать, что Mod 3 должен быть загружен до этого мода, но в любом месте. Можно было бы решить: два списка, необзательные и обязательные + список пар, какой мод после какого идёт:
Так, возникла идея - надо бы оформить.
09.05.2015 09:26
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16486
Post: #628

SyDr, почему бы не:
Code:
{
  hints: [
    {
      "type": "ordered",
      "mods": ["WoG", "WoG Rus"]
    },
    {
      "type": "unordered",
      "mods": ["Yona", "Fast Battle Animation"]
    }
    ...
  ]
}

optional => compatible
required не нужен же становится.
смысл before/after для меня не очень ясен. Зависимость, которая должна перекрывать тебя самого — очень неоднозначная зависимость.
09.05.2015 15:48
Find all posts by this user Quote this message in a reply
gamecreator Offline

Posts: 7107
Post: #629

(09.05.2015 15:48)Berserker Wrote:  required не нужен же становится.
Почему это не нужен? WoG Rus без WoG работать не может. А after - это как раз твоя рекомендательная система.

(09.05.2015 15:48)Berserker Wrote:  смысл before/after для меня не очень ясен. Зависимость, которая должна перекрывать тебя самого — очень неоднозначная зависимость.
BeforeWoG грубо говоря. В одном порядке моды работают как надо, в обратном - часть изменений теряется.


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

Posts: 1052
Post: #630

Berserker, ты рассматриваешь систему, как что-то вроде импорта в языках программирования. Я же имею в виду возможность создать порядок загрузки для произвольного набора модов. Отсюда и идут корни priority и optional. Соответственно, before позволяет прописывать порядок загрузки для новых модов без необходимости обновления ифны в старых.

Code:
{
    "priority" : 0,
    "incompatible" : ["Sagamosa"],
    "required" : ["WoG"],
    "hints" : [
        ["WoG", "WoG Rus", ["Yona", "Fast Battle Animation", "New Music Pack"], "Phoenix Orange Skin", "@mod"],
        ["Mod 3", "@mod", "Mod 4"]
    ]
}
Всё о чём не знаем - совместимо и может быть загружено где-угодно.
incompatible - с этими модами не запустится или это бессмысленно.
required - без этих модов работать не будет.
hints - в чистом виде твоя идея с упорядоченным списком неупорядоченных списков. Здесь же список упорядоченных списков неупорядоченных списков :D

Результат читать так:
Мод несовместим с Sagamosa
Мод требует WoG для работы
Требует чтобы WoG Rus был загружен после WoG (при условии что он есть в активных модах)
"Yona", "Fast Battle Animation", "New Music Pack" должны быть загружены после "WoG Rus" (и, соответственно WoG)
"Phoenix Orange Skin" должен быть загружен после этих модов
Сам мод должен быть загружен после "Phoenix Orange Skin"
Другими словами, это почти то, что ты предлагал.
Дальше, Mod 3 должен быть загружен перед нашим модом, но при этом неважно где, т.е. можно перед WoG
Ну и Mod 4 должен быть загружен после нашего мода.
(This post was last modified: 09.05.2015 17:04 by SyDr.)
09.05.2015 16:45
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