Vortex — текущий менеджер модов от Nexus Mods. Он создан для того, чтобы максимально упростить моддинг вашей игры для новых пользователей, в то же время обеспечивая достаточный контроль для более опытных ветеранов моддинга.
Наш подход к Vortex направлен на решение сложных задач, таких как сортировка порядка загрузки или управление файлами модов, и автоматизирует как можно большую часть процесса с целью достижения стабильной модифицированной игры с минимальными усилиями. Мы хотим помочь вам тратить меньше времени на моддинг и больше времени на игры.
Поддержка нескольких игр . Благодаря поддержке модов для более чем 250 различных игр Vortex является самым универсальным менеджером модов из всех доступных. Сюда входят такие игры, как Skyrim, Fallout 3, Fallout 4, Fallout: New Vegas, Cyberpunk 2077, Baldur's Gate 3, Starfield, Stardew Valley, Bannerlord, Witcher 3, Elden Ring, The Sims 4, Monster Hunter: World, Oblivion, Palworld. , Blade & Sorcery, Валхейм, Наследие Хогвартса, 7 дней, чтобы умереть.
Тесная интеграция с Nexus Mods . Vortex предназначен для беспрепятственного взаимодействия с Nexus Mods, позволяя вам легко находить, устанавливать и воспроизводить моды с нашего сайта, узнавать о новых файлах и узнавать последние новости.
Моддинг стал проще . Встроенная система автоматической сортировки управляет порядком загрузки и помогает разрешать конфликты модов с помощью мощных, но простых в использовании функций управления плагинами.
Профили модов . Легко настраивайте, переключайтесь между независимыми профилями модов и управляйте ими, позволяя вам использовать именно ту комбинацию модов, которая вам нужна для конкретного прохождения.
Современный, простой в использовании пользовательский интерфейс . Благодаря полностью настраиваемому интерфейсу Vortex позволяет быстро и легко получать доступ к инструментам и управлять играми, плагинами, загрузками и сохранениями игр.
Расширения и плагины . Vortex выпускается под лицензией GPL-3, что дает нашему сообществу возможность писать расширения и платформы, которые затем могут взаимодействовать с Vortex, постоянно расширяя его функциональность.
Для начала Vortex можно загрузить с Nexus Mods или с GitHub. После загрузки установщика просто запустите его и следуйте инструкциям.
Дополнительную информацию о Vortex и руководствах можно найти в Vortex Wiki.
Чтобы начать разработку на Vortex, используйте этот в основном автоматизированный метод для загрузки и установки всех зависимостей, клонируйте репозиторий Vortex с GitHub, а затем создайте его, чтобы его можно было запускать из исходного кода. Большинство зависимостей устанавливаются с помощью Scoop.
Запустите PowerShell, нажав кнопку «Пуск» и набрав powershell
.
Запустите Invoke-WebRequest "https://raw.githubusercontent.com/Nexus-Mods/Vortex/master/bootstrap.ps1" -OutFile bootstrap.ps1
чтобы получить сценарий начальной загрузки.
По умолчанию этот скрипт создаст Vortex в C:buildvortex
. Если вы хотите, чтобы он располагался где-то еще, отредактируйте сценарий, изменив каталог сборки перед его запуском.
Скорее всего, вам потребуется разрешить запуск сценариев. Это можно установить с помощью Set-ExecutionPolicy Unrestricted
но требуется PowerShell с доступом администратора.
Запустите скрипт ( .bootstrap.ps1
).
Следующий раздел призван прояснить и объяснить некоторые решения по развитию.
Набор инструментов для сборок разработки и сборок выпуска совершенно различен.
В сборках для разработчиков компилятор машинописного текста (tsc) используется непосредственно для транслитерации каждого файла .ts
в .js
по отдельности, Electron запускает эти файлы напрямую, зависимости загружаются из node_modules
.
В выпускных сборках мы используем webpack и ts-loader для объединения всех файлов .ts
и зависимостей в два файла javascript (один для основного процесса/браузера, другой для средства рендеринга). electron-builder
используется для объединения кода и ресурсов, создания установщика Nsis, сборки его в установщик exe и подписания их (а также всех исполняемых файлов и DLL, которые мы поставляем). Существует несколько файлов конфигурации электронного сборщика для нескольких вариантов, для выпускных сборок используются только «oneclick» и «advanced», остальные могут находиться в разном состоянии (хотя ci тоже должен работать).
В результате с разработчикскими сборками легче работать, сборка происходит намного быстрее, но время выполнения медленнее.
Кроме того, мы используем структуру из двух пакетов, то есть файл /package.json
используется для всей разработки и среды сборки для выпусков (например, этот файл всегда контролирует используемую/поставляемую в комплекте электронную версию), тогда как /app/package.json
решает настройки (имя, версия, зависимости) только для релизных сборок. Мы используем собственный скрипт ( checkPackages.js
), чтобы гарантировать, что зависимости для выпуска являются подмножеством зависимостей env
сборки и что они используют одну и ту же версию, чтобы избежать проблем, которые не возникли во время тестирования из-за разных зависимостей.
С другой стороны, связанные расширения собираются одинаково между разработкой и выпуском: они всегда собираются с помощью веб-пакета и каждое имеет свою собственную настройку сборки - за исключением простых игровых расширений, которые уже представляют собой отдельные файлы js, они просто копируются.
Эта кодовая база по-прежнему использует пряжу 1 (классическую). Любая попытка использовать Yarn 2 или 3 заканчивалась бессмысленными ошибками (отсутствие четко перечисленных зависимостей, последовательные установки, приводящие к отсутствию пакетов) без разумного способа выяснить причину. По сравнению с ними npm и pnpm работают довольно медленно. На самом деле мы не используем какие-либо функции, специфичные для пряжи (рабочие пространства?), поэтому переключение не должно быть слишком сложным, но на данный момент «классическая» пряжа работает.
На момент написания Electron не поддерживает модули ES, поэтому все перенесено в commonjs. Это приводит к невозможности использования некоторых обновленных библиотек, поддерживающих только esm (например, новые версии d3). Это также означает, что асинхронный импорт ( const foo = await import('bar')
) на самом деле синхронен во время выполнения. На самом деле это не имеет значения, поскольку в сборках выпуска все равно все записывается в один файл, и разделение кода на самом деле не требуется.
Сообщайте о проблемах на GitHub и укажите как минимум следующую информацию:
Точная версия Vortex, которую вы используете
Ваша ОС
Что вы делали, когда произошла ошибка
В чем именно заключается ошибка (сбой? сообщения об ошибках? неожиданное поведение?)
Если вы получили какое-либо сообщение об ошибке, укажите полное и точное сообщение об ошибке. Не перефразируйте, не упускайте информацию, которая кажется вам загадочной или неважной.
Файл журнала (см. ниже)
В идеале также состояние приложения (см. ниже)
Все данные, генерируемые клиентом (включая настройки и журналы), хранятся по адресу:
Тип сборки | Расположение | Общий путь |
---|---|---|
Выпускать | %AppData%Vortex | C:Users |
Дев | %AppData%vortex_devel | C:Users |
Если вам нужно сообщить об ошибке, в дополнение к сообщению об ошибке, отображаемому на экране, могут быть полезны следующие пути внутри этого каталога:
vortex.log
(логи ротируются до определенного размера, это самый последний)
state
кроме global_account (он содержит ключи и пароли, поэтому конфиденциальная информация)
(если ошибка относится к конкретной игре)
TODO: действия вручную с зависимостями и версиями
Загрузите Vortex с Nexus Mods
GitHub для исходного кода, проблем и запросов на включение.
Vortex Forum или Discord для поддержки и обсуждений с сообществом и командой.
Vortex Wiki для базы знаний, статей и устранения неполадок.
Структура проекта для обзора того, как организована кодовая база.
Большая часть кода Vortex имеет открытый исходный код. Мы стремимся к прозрачному процессу разработки и высоко ценим любой вклад. Помогаете ли вы нам исправлять ошибки, предлагаете новые функции, улучшаете нашу документацию или распространяете информацию — мы будем рады видеть вас частью сообщества Vortex.
Отчет об ошибке: Если вы видите сообщение об ошибке или столкнулись с проблемой при использовании Amplication, создайте отчет об ошибке.
Запрос на добавление: Если у вас есть идея или отсутствует функция, которая могла бы сделать разработку проще и надежнее, отправьте запрос на добавление функции.
Расширение проверки. Если вы создаете расширение для игры и хотите, чтобы мы его рассмотрели, отправьте запрос на продление проверки.
Этот проект распространяется по лицензии GPL-3.0.