Перейти к содержанию

OpenMW или мечты иногда сбываются


MEZON

Рекомендуемые сообщения

Официальный сайт OpenMW
Страница загрузки
Ссылка на загрузку актуального билда для Win64 (обновляется ежедневно)
 
Баг-трекер

Wiki

Список задач до релиза 1.0

Репозиторий с исходным кодом на GitLab

Discord: OpenMW (в наличии русскоязычный канал)
IRC: #openmw на irc.freenode.net

Полезные ссылки:
Реестр популярных модов для OpenMW с гайдами по установке
Руководство по портированию ретекстуров в OpenMW
OpenMW на Youtube
OpenMW на GitLab
Диздоки планов развития после 1.0
 
Сторонние проекты, основанные на OpenMW:
TES3MP - реализация мультиплеера для OpenMW.

Тема OpenMW на 4PDA - здесь можно найти сборки OpenMW для Android 5+ и гайды по решению проблем.

OpenMW для VR - основан на OpenXR, готовые сборки (устаревшие) есть только для Windows.

Порт на Switch - к сожалению, в настоящее время им никто не занимается.

Что такое OpenMW?

 

OpenMW - это попытка воссоздать игровой движок для популярной RPG TES3 Morrowind, полноценную реализацию всех особенностей игры с открытым исходным кодом. Для того, чтобы вы имели более полное представление о проекте, вот ключевые особенности OpenMW:

  • Кроссплатформенность - запуск на Windows (7 или новее), Linux, MacOS X, Android (платформы x86 не поддерживаются).
  • Виртуальная файловая система, позволяющая устанавливать моды в отдельные директории, а не засорять Data Files.
  • Поддержка сжатых BSA-архивов для экономии места на диске.
  • Исправление ошибок системного проектирования: "грязные" GMST записи в плагинах, проблема "удвоения" в сейвах, лимит на 255 плагинов и т.д.
  • Улучшенный поиск пути - с помощью статического или динамического (на выбор) построения навигационной сетки на основе геометрии локаций (вместо использования вручную расставленных дизайнерами локаций маркеров).
  • Улучшение интерфейса (поддержка TrueType-шрифтов, масштабирования интерфейса и миникарты, поддержка текстур высокого разрешения для элементов интерфейса, редактирования разметки интерфейса с помощью XML-файлов, клавиатурной навигации, поворота камеры с помощью гироскопов и т.д.).
  • Улучшение графики (поддержка шейдеров постобработки, динамические тени от объектов, Distant Land (хоть и без генератора LOD-ов), анимированная трава, шейдер воды с поддержкой отражений в реальном времени, улучшенная система освещения без лимита в 8 источников света на объект, улучшенная система тумана и многое другое).
  • Улучшенная поддержка анимаций (возможность использовать отдельные файлы для отдельных групп анимаций, возможность добавлять кастомные кости в скелеты, возможность задать новые анимации для топоров, булав и кинжалов, поддержка анимаций открытия-закрытия контейнеров).
  • Начальная поддержка Lua-скриптов для расширения возможностей плагиностроения.
  • Поддержка ICU для локализации Lua-скриптов, шейдеров постобработки и элементов интерфейса.
  • Использование дополнительных ядер процессора для фоновых задач (например, для предварительной загрузки локаций для бесшовного перемещения по игровому миру или для обработки коллизий объектов).
  • Отсутствие лимита 4Гб на адресуемую процессом игры память из-за поддержки 64-битных архитектур.
  • Намного меньшее количество вылетов в сравнении с оригинальным движком.
  • Возможность модификации движка под свои нужды (например, довольно популярен TES3MP - форк OpenMW с поддержкой мультиплеера).

OpenMW выпущен под лицензией GPLv3, весь исходный код написан с нуля.

Нужен ли оригинальный Morrowind для OpenMW?

И да, и нет.

ДА. Прежде чем использовать OpenMW, вы должны легально приобрести и установить Morrowind на ваш компьютер. OpenMW воcпроизводит только техническую сторону игры, и не содержит в себе каких-то материалов, защищенных авторским правом. Используются только данные уже установленной игры, либо с установочных файлов с диска или цифровой копии игры.

НЕТ. OpenMW - самостоятельный игровой движок. Он может быть базой для тотальных конверсий, не использующих файлы Morrowind. В качестве примеров можно привести Robowind Construct и StarWind.

Каково текущее состояние проекта?

Статус

OpenMW уже находится в состоянии "бета": основные функции реализованы, идет работа по оптимизации и паритету с MGE и MWSE. Кроме этого есть ряд проблем, в основном с физикой и поддержкой модов, использующих баги и недокументированные возможности оригинального движка.
OpenMW играбелен (можно нормально пройти сюжет игры и аддонов, ветки гильдий и т.д.), хотя и местами уступает MGE в качестве графики, но выигрывает по стабильности, а на многих машинах и по производительности и скорости загрузки локаций.

Какие технологии вы используете?

OpenMW построен с использованием различных библиотек и инструментов с открытым исходным кодом:

  • Языки программирования: C++ (стандарт C++17 с частичной поддержкой C++20), GLSL, Lua
  • Графика: OpenSceneGraph
  • Физика: Bullet
  • Звук: OpenAL
  • Ввод-вывод: SDL2
  • Интерфейс: MyGUI
  • Поиск пути для ИИ: Recast & Detour

 
Я не программист, как я могу помочь проекту?

 

1. Можно просто играть и отсылать багрепорты

2. Можно тестировать разрабатываемый код, до того, как он попадёт в основную ветку. Там же можно вести обсуждение и предлагать изменения.

3. Можно тестировать моды. Основная цель - выявить проблемы с совместимостью.

4. Можно исследовать механики оригинального движка, особенно актуально в области тонкостей работы скриптов.

5. Можно обновлять Wiki.

6. PR тоже не помешает, особенно если он позволит привлечь тестировщиков и плагиностроителей.

7. Можно донатить разработчикам на Patreon'е:

  • psi29 — проджект лид, поможете закрыть траты на хостинг
  • Capostrophic — тысяча и один фикс + вагон фич
  • AnyOldName3 — тени в OpenMW
  • David Cernat — работа над TES3MP
Изменено пользователем akortunov
Ссылка на комментарий
Поделиться на другие сайты

  • 6 месяцев спустя...
  • Ответов 3.1 тыс
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

UnPinned posts
У меня в дневнике написано (Я вытащил стрелу рьеклинга из медведя но он все еще истекает кровью. Я должен попытаться вылечить его,или оставаться с ним,пока ему не станет лучше) и все квест не завершается.

Изменено пользователем Kronis
Ссылка на комментарий
Поделиться на другие сайты

У меня в дневнике написано (Я вытащил стрелу рьеклинга из медведя но он все еще истекает кровью. Я должен попытаться вылечить его,или оставаться с ним,пока ему не станет лучше) и все квест не завершается.

Так у вас в дневнике написано: вылечить медведя надо.

Как вариант, можно попробовать отдохнуть рядом: существа в активных ячейках лечатся во время отдыха героя (не ожидания!).

Ссылка на комментарий
Поделиться на другие сайты

Нет тоже самое медведь стоит и не идет за мной.

80% вероятности, что вы не долечили медведя, 20%, что есть ошибки в openmw.log.

Ссылка на комментарий
Поделиться на другие сайты

Это что получается мне уже не пройти Bloodmoon?

Это получается, что надо попробовать ещё полечить медведя, а если не получится, то заглянуть в openmw.log и написать сюда, какие ошибки там перечислены.

Ссылка на комментарий
Поделиться на другие сайты

 

У меня в дневнике написано (Я вытащил стрелу рьеклинга из медведя но он все еще истекает кровью. Я должен попытаться вылечить его,или оставаться с ним,пока ему не станет лучше) и все квест не завершается.

Недавно совсем в теме Фуллрест Репака возникал вопрос по этому квесту.

Вы стрелу не вынуть должны, выкинув её на землю, а взять её себе в инвентарь. Игра проверяет наличие стрелы у вас в инвентаре (и понимает таким образом, что вы её из медведя высунули). Понятно, что если стрела не была взята в инвентарь, то квест не продвигается, даже если у зверя уже 100% здоровья.

Ссылка на комментарий
Поделиться на другие сайты

Недавно совсем в теме Фуллрест Репака возникал вопрос по этому квесту.

Вы стрелу не вынуть должны, выкинув её на землю, а взять её себе в инвентарь. Игра проверяет наличие стрелы у вас в инвентаре (и понимает таким образом, что вы её из медведя высунули). Понятно, что если стрела не была взята в инвентарь, то квест не продвигается, даже если у зверя уже 100% здоровья.

А что решили? Есть ли возможность сделать проверку наличия стрелы не в инвентаре героя, а в тушке медведя?

Ссылка на комментарий
Поделиться на другие сайты

А что решили? Есть ли возможность сделать проверку наличия стрелы не в инвентаре героя, а в тушке медведя?

Решили, что надо просто поднять стрелу с земли и квест пройдётся.

Сделать проверку "наоборот" не получится в диалогах, надо скрипт городить, наверн.

Ссылка на комментарий
Поделиться на другие сайты

Решили, что надо просто поднять стрелу с земли и квест пройдётся.

Сделать проверку "наоборот" не получится в диалогах, надо скрипт городить, наверн.

Легко решается, если сделать медведю вместо активации контейнера диалог, и стрелу извлекать через строчку в диалоге, безо всяких проверок и скриптов.

Ссылка на комментарий
Поделиться на другие сайты

Еще по локализации. В Морре неименные ячейки называются как регионы к которым относятся. У регионов есть ID и есть имя, но похоже в скриптах и.т.д. в расчет берется имя (идиотизм), как я понял. Как тут в OpenMW?

Ссылка на комментарий
Поделиться на другие сайты

В PositionCell название/ID экстерьерной ячейки точно не важно. Если название не соответствует какой-либо интерьерной ячейке, заданная позиция используется просто как координаты относительно начала координат экстерьера. Даже если оно соответствует названию экстерьерной ячейки, перемещен игрок будет по заданным координатам в экстерьере, но не в конкретную ячейку. Оно и в оригинале так.

 

Если имеется в виду COC, то там в качестве экстерьерного аргумента принимается либо простой ID ячейки, либо формат X,Y с координатами ячейки в сетке.

 

Других скриптовых функций, использующих ID экстерьерной ячейки, не помню.

 

C 29 октября:

 

psi29a:

  • Добавлены дефолтные значения для нужных настроек в глобальный openmw.cfg, Morrowind.ini теперь необязательно импортировать, хотя настоятельно рекомендуется (опусы там свои собственные, не бетесдовые, и хоть на них отдаленно смахивают, под Мурокрыл не заточены)

Андрей:

  • Анимации оружия при воскрешении актёра полностью сбрасываются (исправляет незамеченный глюк при попытке воскресить игрока с оружием в руках, повторяет оригинальное поведение)
  • Откат правок поведения RootCollisionNode, поведение вновь оригинальное, только предупреждение логируется для сломанных моделей; двери в каком-то моде из-за измененного поведения становились проходимыми
  • Много фиксов предупреждений сборки
  • Сборки теперь должны быть полностью совместимы с FFmpeg3.2+.

я:

  • Добавлены иконки в контекстное меню записей в редакторе (0.45.0)
  • Действия просмотра ячейки экземпляра объекта и превью объекта теперь используют клавиши Shift-C и Shift-V соответственно (0.45.0)
  • Почистил ненужные вызовы к классу в собственно самих этих классах (0.45.0)
  • Почистил пакеты ИИ от ненужного
  • Кое-как переписал стыд оригинальный контент psi29a

elsid:

  • Нахождение путей, основанное на навмешах и путях, генерируемых recastnavigation, теперь в мастере (будет продолжать дорабатываться в течение разработки 0.46.0)
  • recastnavigation интегрирован в репозиторий и его не нужно отдельно доставать

AnyOldName3:

  • Объекты OpenSceneGraph теперь могут логироваться
  • Исправлена сборка Boost на Windows с разными версиями Visual Studio на нём одновременно
  • Воскрешение openmw на винде после слияния recastnavigation

sthalik:

  • Дождю теперь не приходится начинаться заново, когда камера выходит из воды, а сразу льётся с той точки, на которой он остановился литься
Ссылка на комментарий
Поделиться на другие сайты

В OpenMW наконец-то завезли родную поддержку ножен и колчанов (требует соответствующие меши).

В MFR 3.x будет работать из коробки, нужно только опцию в конфиге включить:

[Game]
weapon sheathing = true
Ссылка на комментарий
Поделиться на другие сайты

В PositionCell название/ID экстерьерной ячейки точно не важно. Если название не соответствует какой-либо интерьерной ячейке, заданная позиция используется просто как координаты относительно начала координат экстерьера. Даже если оно соответствует названию экстерьерной ячейки, перемещен игрок будет по заданным координатам в экстерьере, но не в конкретную ячейку. Оно и в оригинале так. Если имеется в виду COC, то там в качестве экстерьерного аргумента принимается либо простой ID ячейки, либо формат X,Y с координатами ячейки в сетке. Других скриптовых функций, использующих ID экстерьерной ячейки, не помню.

Я имею ввиду вот это:

If ( GetPCCell "Red Mountain Region" )

Это из Tamriel Rebuilt. C данным условием ванила не грузится, а OpenMW даже не чихает.

Ссылка на комментарий
Поделиться на другие сайты

Я имею ввиду вот это:

If ( GetPCCell "Red Mountain Region" )

Это из Tamriel Rebuilt. C данным условием ванила не грузится, а OpenMW даже не чихает.

EDIT: вру, в русской версии и в Моррке, и в OpenMW русские названия для ячеек с именами регионов используются.

Насколько я помню, в GetPCCell идет проверка, что Id ячейки, в которой находится игрок, начинается с переданного аргумента (без учета регистра).

Т.е. в русской версии должно быть:

If ( GetPCCell "Район Красной Горы" )

Такая конструкция должна вернуть 1 для любой ячейки с именем по умолчанию из заданного региона. Т.е. вариант

If ( GetPCCell "Odrosal" ) 

надо использовать и в русской, и в английской версии игры (как я понял, из-за того, что скриптовая система не умеет в .cel-файлы).

Разница в том, что скрипт с англоязычным вариантом в Моррке выдаст исключение - мол, ячейка с таким именем не найдена, а в OpenMW команда тупо вернет 0.

Некоторые моды еще пытаются использовать синтаксис вида "Red Mountain Region (-7, 14)", но в русской версии Моррки такой вариант выдает исключение, не знаю насчет инглиша.

Изменено пользователем akortunov
Ссылка на комментарий
Поделиться на другие сайты

В целом понял. Понял, что в писезде идиоты. Использовать имя, когда есть ID.

Ссылка на комментарий
Поделиться на другие сайты

Кстати, а менять такой вопрос заинтересовал. А возможно ли на основе ОпенМВ при наличии должного навыка и ресурсов реализовать управление кораблем?
Ссылка на комментарий
Поделиться на другие сайты

Кстати, а менять такой вопрос заинтересовал. А возможно ли на основе ОпенМВ при наличии должного навыка и ресурсов реализовать управление кораблем?

Поддержки транспорта и маунтов как таковых еще нет, так что это довольно сильно углубиться в С++ надо, хотя это и реально.

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

Если же еще и модель повреждений нужна, то тут сложнее.

 

Основная идея:

1. Корабль с точки зрения физического движка надо рассматривать как динамический объект (как персонажей), а не как статический (как двигаемые скриптами активаторы).

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

Проблема в том, что сейчас движок использует для персонажей коробки (AABB) для коллизий, что не подходит для кораблей.

2. При движении игрока на корабле нужно двигать корабль напрямую, а положение игрока менять уже по факту реального движения корабля

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

 

Короче, по минимуму надо сделать прямое управление левым существом произвольного вида, со своими статами, анимациями движения и особенностями движения ("плавун", "летун" и т.д.).

А там уже и до ездовых скальных наездников недалеко. Должна же быть от них хоть какая-то польза?

Изменено пользователем akortunov
Ссылка на комментарий
Поделиться на другие сайты

Кто-то играет на ОпенМВ с процессорами Ryzen 3 2200g и Ryzen 5 2400g с интегрированными GPU?

Собираюсь сделать систему на APU, шоб без дискретной видюхи играть в нетребовательные игры: не возникнет ли проблем?

Изменено пользователем morrow
Ссылка на комментарий
Поделиться на другие сайты

Кто-то играет на ОпенМВ с процессорами Ryzen 3 2200g и Ryzen 5 2400g с интегрированными GPU?

Собираюсь сделать систему на APU, шоб без дискретной видюхи играть в нетребовательные игры: не возникнет ли проблем?

Один чел жаловался на микротормоза при включенной вертикальной синхронизации, но там до сих пор неизвестно, в чем дело.

А так по идее должно быть норм, если шейдер воды не включать (и в перспективе - тени).

Ссылка на комментарий
Поделиться на другие сайты

Один чел жаловался на микротормоза при включенной вертикальной синхронизации, но там до сих пор неизвестно, в чем дело.

А так по идее должно быть норм, если шейдер воды не включать (и в перспективе - тени).

Так там у него "Ryzen 3 1300X, GTX 1060 6GB" — т.е. обычный проц и дискретка.

Ссылка на комментарий
Поделиться на другие сайты

Подвезли сборки OpenMW-0.45RC2 для Windows (они у меня отображаются внизу страницы по ссылке). Приглашаются желающие для тестирования.

 

Так там у него "Ryzen 3 1300X, GTX 1060 6GB" — т.е. обычный проц и дискретка.

Ну других отзывов я не видел, так что тогда тупо методом проб и ошибок.

Изменено пользователем akortunov
Ссылка на комментарий
Поделиться на другие сайты

Кто-то играет на ОпенМВ с процессорами Ryzen 3 2200g и Ryzen 5 2400g с интегрированными GPU? Собираюсь сделать систему на APU, шоб без дискретной видюхи играть в нетребовательные игры: не возникнет ли проблем?

Как вариант, если есть знакомые, которые сидят на APU, протестировать полёт на их железе. Если таковых не имеется, то искать помощи уже в рунете. 

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

С 8 ноября

 

sthalik: поправил на Windows масштабирование системой окна игры и проблемы с высокими DPI, исправил задержку дождя при поднятии камеры из воды.

Андрей: ножны, колчаны и другие плюшки теперь в мастере. Улучшено поведение ResetActors (не возвращает на некорректную позицию спутников и не причиняет урон от падения падающим NPC), сделано много исправлений предупреждений Coverity и Clang, а также мелких недочетов в GUI и мелких рефакторинги.

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

Версия OpenAL-Soft на Винде обновлена до 1.19.1. Поддержка GCC 4.8 по всей видимости прекращена, так как Ubuntu 14.04 близится к EOL..

Эти вещи касаются 0.46.0.

0.45.0 пока не очень скоро.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...