Вверх Вниз



Страница 1 из 11
Форум » Сайт » MMM (Modgames Mod Manager) » FOMOD Creator (Not just another FOMOD Creator)
FOMOD Creator
nestquik  Offline Сообщение №1 написано: 30 Апреля 2016 в 11:36 | Отредактировано: nestquik - Суббота, 09 Июля 2016, 11:50



75

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

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

Ребята с nexusmods постарались на славу, и разработали свое приложение для организации библиотеки модификаций. Программа позволяет отслеживать обновления модификаций, упрощает процесс установки. Nexus Mod Manager предоставляет Вам возможность написать 2 вида скриптов: простые XML скрипты - используется базовая структура и C#-подобные, которые позволяют полностью кастомизировать процесс установки.

Можно долго изучать структуру XML документа и писать их в ручную, как я успешно делал в начале своего локализаторского пути, а можно использовать специальные программы, которых на данный момент существует большое количество, но они все они либо устарели, либо не открывают полный функционал редактирования процесса установки.
Лучшим редактором я считаю FOMOD Creation Tool автор Wenderer (русский). Программа написана на C++ в среде C++ Builder. Из плюсов можно отметить то, что программа позволяет создавать установщик полностью с нуля либо редактировать существующий. Практически полностью раскрыт функционал скрипта. Также достаточно весомый плюс в том, что автор реализовал локализацию приложения. Но у программы также есть и минусы - программа поддерживает только текстовые документы в кодировке UTF-16 (UCS-2) Little Endian и очень перегруженный интерфейс.

И так после долгий дней размышления я решил написать собственное приложение для создания скриптов. Для создания я буду использовать Visual Studio 2015 (спасибо DreamSpark) и язык программирования C# 6.0 при написании я буду придерживатся правил MVVM-паттерна. Также для реализации DI будет использован Prism. Приложение будет разрабатываться по модульной системе, а это значит, что любую часть можно будет легко отсоединить от проекта и заменить на другую.

Первым делом мне нужно было полностью изучить XML структуру. Человек который придумал FOMOD сделал XSD схему, и мне не составило большого труда перевести её в понятный мне язык - C#. Изучив схему я понял, что тех знаний которые у меня есть мне будет не достаточно и я начал искать помощи среди друзей и знакомых. К разработке присоединился мой знакомый с cyber-forum'а - Глеб ака amarf.

На данный момент при запуске программы нас встречает окно приветствия (в левой части список последних открытых файлов):

В редакторе было принято решение использовать древовидную структуру:


В данной теме я буду выкладывать дальнейшую информацию о разработке.
До стадии Alpha релиза программа будет разрабатываться в закрытом режиме, но это не значит, что нам не нужна помощь. Нам необходимы люди знакомые с дизайном, которые помогут наиболее грамотно и удобно расставить элементы графического интерфейса.

nestquik  Offline Сообщение №2 написано: 08 Мая 2016 в 01:24 | Отредактировано: Tranquility - Понедельник, 09 Мая 2016, 18:41



75
Разработка приложения не стоит на месте. 04.05.2016 было решено отказаться от системы классов для модели и использовать XML To Linq, ведь с ней по словам моего товарища легче сделать навигацию в TreeView. Но поскольку схему XML документов писал недалекий человек 08.05.2016 нам пришлось вернутся к системе классов. Придется что-то  мудрить с иерархической структурой данных, но это в любом случае будет проще, чем лепить десятки ViewModel'ей и обрабатывать XML руками...
Для того, чтобы Вы понимали, что из себя представляет полная схема ModuleConfiguration посмотрите вот это изображение: 


А вот тоже самое, но уже в виде классов:


Septor  Offline Сообщение №3 написано: 09 Мая 2016 в 10:49


Странник


8
Не знаю, можно тут комментировать в теме, но отпишусь.

Я люблю графическое, нодовое управление, но скрины из второго поста меня пугают своей монстрозностью и "непрозрачностью" из за этого. Возможно из за огромного размера изображений, которые даже на моём 27 дюймов монике не влазят полностью по размеру. Как дизайнер скажу, графический данный схемо-интерфейс это конечно красиво, но как немного-программист, контролировать это в таком виде просто неудобно, даже если всё это хозяйство будет в нормальном размере в редакторе.

Может стоит глянуть в сторону нодовой структуры, как к примеру сделано в 3D программах? Я к примеру с Blender 3D работаю, и пусть там не самая идеальная нодовая система, как могут сказать любители других редакторов, но по мне очень удобная. Плюс ноды можно в группы собирать и отдельно редактировать. А из опыта программирования на пхп и немного дельфи, классы и xml можно прекрасно в группы нодов(функций/сущностей) виализировать, и делать связи как там нужно. Редактировать же можно по настройкам, и что там ещё, как визуально через ноды, так и скажем отдельным более стандартным видом, как на скрине интерфейса из первого поста. Тогда будет удобно доля всех, как для любителей графического интерфейса, так и для любителей блокнотов. ИМХО!

nestquik  Offline Сообщение №4 написано: 09 Мая 2016 в 16:11 | Отредактировано: Tranquility - Понедельник, 09 Мая 2016, 18:34



75
Цитата Septor ()
Не знаю, можно тут комментировать в теме, но отпишусь.
Конечно можно  :) .

Скриншоты сверху, это просто структура стандарта XML документа в XSD представлении и в классовом представлении.
На деле же программа выглядит вот так: 
Еще мы планируем добавить возможность одновременной загрузки нескольких fomod проектов. С текущей архитектурой приложения это не составит большого труда, правда нужно разобраться с Prism и с навигацией.

nestquik  Offline Сообщение №5 написано: 09 Мая 2016 в 19:56 | Отредактировано: nestquik - Понедельник, 09 Мая 2016, 19:59



75
Теперь можно загрузить несколько проектов одновременно:

Septor  Offline Сообщение №6 написано: 10 Мая 2016 в 09:31


Странник


8

Цитата
Скриншоты сверху, это просто структура стандарта XML документа в XSD представлении и в классовом представлении.
А, тоды усё тип-топ. Я просто с XML дело имею только в IDE и текстовом редакторе, и то только из за Joomla CMS, и в граф. виде не видал, из за ненадобности.

nestquik  Offline Сообщение №7 написано: 10 Мая 2016 в 19:11



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

nestquik  Offline Сообщение №8 написано: 14 Мая 2016 в 16:06 | Отредактировано: nestquik - Суббота, 14 Мая 2016, 20:18



75
Мы добавили функцию сохранения проектов. Теперь это полноценный редактор. А еще у нас теперь есть иконка, огромное спасибо eNse7en за это. ok Планируем поменять интерфейс на более подходящий для редактора, но это еще под вопросом, там не все так просто.

nestquik  Offline Сообщение №9 написано: 15 Мая 2016 в 01:44



75
Теперь приложение выглядит вот так:

Kordal  Offline Сообщение №10 написано: 16 Мая 2016 в 10:28



272
На первый взгляд, проработано не плохо! Всяко аккуратнее, чем некусовский вариант ok Осталось проверить на практике, для более объективной оценки.

nestquik  Offline Сообщение №11 написано: 16 Мая 2016 в 11:17



75
Цитата kordal ()
Осталось проверить на практике, для более объективной оценки.
Спасибо. Нам еще работать и работать   ^_^ Около 40% редактора реализовано.
У NMM ужасная архитектура, я пытался её проанализировать, но без рюмки там никак.  :D

nestquik  Offline Сообщение №12 написано: 17 Мая 2016 в 00:18



75
Я сегодня реализовал выбор картинки для модификации.

Глеб сделал визуализацию зависимостей (composite dependency):

Kordal  Offline Сообщение №13 написано: 18 Мая 2016 в 09:25



272
Цитата nestquik ()
У NMM ужасная архитектура, я пытался её проанализировать, но без рюмки там никак.
Да боюсь и пузырька не хватит, чтобы так сразу с набега вникнуть, согласен. Зато я знаю кого пытать можно на счет структуры данных, до инсталлера модов я пока не дошел :)

nestquik  Offline Сообщение №14 написано: 18 Мая 2016 в 11:49



75
kordal, я даже не знаю как тебе будет проще поступить. Вот у меня например никакой парсер не нужен - я написал структуру классов, которые полностью соответствуют XML структуре и просто сериализирую и десериализирую объекты. Объекты забиндил к интерфейсу, и вуаля - готово  :)

Kordal  Offline Сообщение №15 написано: 18 Мая 2016 в 23:57



272
nestquik, Да работа с дурацким XML меня не пугает, просто я пока не смотрел структуру FOMOD`а, вернее не вдавался в иерархию объектов кто и за что отвечает. В любом случае установщик и формат будет скорее всего свой, а поддержку этой фигни позднее делать буду :) Каталог модов с сайта MG уже разбирается и расфасовывается по нужным полкам. Пока работаю над download manager`ом, прорабатываю организацию закачки и докачки по http протоколу. Файлы уже загружаются и это не может не радовать. Осталось все это визуализировать и запихнуть в контрол. И только потом буду думать про поддержку и установщик к разным играм. Это я все к чему? Просто ты уже, думаю разобрался в структуре инсталлера, знаешь какой флаг за что отвечает, вот и написал, что буду пытать ^_^ дабы время сэкономить.

nestquik  Offline Сообщение №16 написано: 18 Мая 2016 в 23:59



75
kordal, посмотрим, может я тоже начну летом писать установщик :) Как ты представляешь себе загрузку с modgames? Тут же все на файлообменниках.

Kordal  Offline Сообщение №17 написано: 23 Мая 2016 в 23:13



272
Мсье знает толк в извращениях :)
Цитата nestquik ()
Тут же все на файлообменниках
Это не очень конечно хорошо, но тем не менее дело решаемое. С некоторыми обменниками не так и сложно работать. А для альтернативы, можно будет в качестве зеркала маленькую серверную в гараже построить :)

nestquik  Offline Сообщение №18 написано: 26 Мая 2016 в 23:08 | Отредактировано: nestquik - Четверг, 26 Мая 2016, 23:08



75
Таки что, пока я отвлекся на переводы, Глеб намутил очень много крутых вещей. 90% структуры FOMOD уже имеет представление в программе. Существует несколько основных задач которые нужно решить перед альфа релизом, такие как потребление памяти, выделение памяти ну и прочее, что связано с оптимизацией :D

edgenito12  Offline Сообщение №19 написано: 23 Сентября 2016 в 16:50


Странник


25
Можно вопрос? Это альтернатива NNM?? а зачем собственно fomod, если есть nexus mod manager? много кто пишет, что он лучше, а чем - непонятно.
Вопрос обновления модов - это хорошо, НО обновление более чем одного мода часто ведет к несовместимости и сборку приходится переделывать заного - то есть с нуля. Так ведь это всегда так!, и неважно чем они установленны....

nestquik  Offline Сообщение №20 написано: 23 Сентября 2016 в 16:56



75
edgenito12, не путайте установщик модификаций для Fallout 3 и Fallout New Vegas - FallOut Mod Manager (FOMM) и XML-документ структуры FOMOD, который используется, такими программами как FOMM и Nexus Mod Manager (NMM) для хранения данных о модификации и о её установочном процессе.

Сабж разрабатывается для максимального упрощения создания FOMOD.

TheLastEagle  Offline Сообщение №21 написано: 09 Февраля 2017 в 09:04


Странник


5
Как дело продвигается? Когда релиз?

Kordal  Offline Сообщение №22 написано: 11 Февраля 2017 в 02:34



272
FOMOD Creator - выпущен, релиз версии 1.0.

Форум » Сайт » MMM (Modgames Mod Manager) » FOMOD Creator (Not just another FOMOD Creator)
Страница 1 из 11
Поиск: