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

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
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

UnPinned posts

С 17 сентября.

 

Андрей:

  • Масштабирование TTF шрифтов правильное (неиронически джва года ждал)
  • Поведение GetPCJumping намного более корректно (см. прошлое сообщение)
  • Трансформации шейпов и данных скиннинга учитываются при скиннинге. Лодки абота не побеждены.
  • %Name можно использовать для существ (используется в гуарах абота).
  • Вместо магических чисел во многих местах используются константы (пи, количество игровых единиц в футе и метре, ускорение свободного падения и т.д.)
  • С включенной опцией показа дополнительных параметров оружия показывается скорость у оружия дальнего боя (и используется в ИИ); продолжительность горения источников света -1 (бесконечный источник света) теперь не отображается, а другие отрицательные величины показываются, как 0.

я:

  • Монументальное причёсывание проверяльщиков записей редактора
  • Базовый проверяльщик записей зачарований
  • Подводные звуковые эффекты применяются на основе позиции камеры, а не головы персонажа

Диалог количества создаваемых в алхимии зелий переделан и теперь встроен в окно - вот так.

Вроде я поправил обработку "else if" на одной строке без жутких хаков. Zini обещает намного позже доказать, почему на самом деле нет.

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

C 21 сентября.

 

Андрей:

  • В окне алхимии теперь есть поле, в которое можно ввести количество попыток создания зелий из текущих ингредиентов.
  • Во время повышения уровня текущее здоровье не восстанавливается до максимума, а возрастает на приобретённое (в связи с выносливостью) количество здоровья.
  • "Состояние" оружия без состояния (например, метательного) в HUD прекратит учитываться.
  • Пара циклов ИИ сильно оптимизированы (особенно разница заметна, когда загружается больше 9 экстерьерных ячеек).

я:

  • RemoveSpell и AddSoulGem теперь принимают дополнительный численный аргумент (по контексту - "количества"), который всё ещё ничего делать не будет, как в Морровинде, но прекратит ломать компиляцию скриптов.

Сергей Фуканчик:

  • Проверка на близость врагов перенесена из менеджера ввода в класс мира.

Лимб:

Андрей:

  • Предметы с разными владельцами, но со всем остальным одинаковым, могут оказаться в одном стаке (позволяет избежать проблемы с несколькими стаками предметов при торговле, но в то же время предметы скорее всего приобретут одного владельца).
  • Редактор и лаунчер научились использовать выбранную кодировку для показа названия и описания контентных файлов (предполагается, что одна установка морровинда не использует различные по кодировке файлы).
  • У актёров в неактивных ячейках восстанавливаются атрибуты при отдыхе персонажа игрока.
  • Актёры вне расстояния обработки ИИ не рендерятся и у них физика не обновляется. Актёры, приближающиеся к максимальному расстоянию, понемногу исчезают.

я:

  • Попытка починить проблемы с блеском воды под солнцем (которого может не быть) и видимостью невидимого источника света под водой
  • Горстка чудом работающих хаков для починки анимационных регрессий
Ссылка на комментарий
Поделиться на другие сайты

Там кто нибудь делал ИИ заклинателей, чтоб выбирали заклинания для каста прям как в Моррке? Или забили и свой ИИ запилили? Дайте ссылку на этот код.

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

Там кто нибудь делал ИИ заклинателей, чтоб выбирали заклинания для каста прям как в Моррке? Или забили и свой ИИ запилили? Дайте ссылку на этот код.

/apps/openmw/mwmechanics/spellpriority.cpp.

Для зелий, заклинаний и магических предметов используется общая функция rateEffects.

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

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

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

С 27 сентября:

 

Андрей:

  • Дочерние узлы узла ячейки теперь парсятся в редакторе (фиксит рендеринг анимированных объектов)
  • В контент-селекторе (списке плагинов) теперь используется выбранная пользователем кодировка файлов для того, чтобы определить, с какой именно нужно декодировать содержимое названий и описаний плагинов
  • Поведение centeroncell и fixme намного ближе к оригинальному
  • У актёров будут восстанавливаться статы, когда игрок отдыхает
  • Доведен до ума рендеринг NPC и существ от Aesylwinn в редакторе, теперь он там есть
  • Фиксы регрессий очищения магических эффектов
  • Откат изменений трансформаций при скиннинге

я:

  • Много фиксов регрессий.
  • Фиксы регрессий фиксов регрессий.
  • Настройка классического поведения заклинаний Поглощения (при котором они не отражаются эффектом Отражения) переименована и добавлена в Advanced-меню лаунчера
  • Когда дело близится к ночи, спекулярное освещение от солнца плавно слабеет (позволяет избавиться от проблемы сияния невидимого источника света ночью под поверхностью воды ночью)
  • Невидимый источник солнечного света теперь не должен ломать прозрачность воды
  • В контент-селекторе теперь можно копировать пути к файлам произвольных выбранных плагинов в буфер обмена
  • Исправлено перемещение объектов в редакторе, поломанное в 0.44.0
Ссылка на комментарий
Поделиться на другие сайты

С 7 октября.

 

я:

  • Поле цвета объекта в редакторе теперь использует тип отображения "цвет" и отображается как цветной прямоугольник, на который можно кликнуть и открыть диалог выбора цвета, а не как число
  • TCL при включении обратно коллизий прижимает игрока к земле или ближайшей поверхности
  • При корректировании начальной позиции NPC и существ предел корректирования значительно выше (но не ломает Тархиэля)
  • Для определения, знает ли игрок эффекты ингредиентов и зелий, используется модифицированный навык Алхимии, а не базовый
  • Дневник нельзя открывать, когда открыто окно настроек (позволяет не видеть зияюще пустой дневник в главном меню, например)

Андрей:

  • Исправлен вылет, когда данные о ячейках направления в прочитанной записи NPC как бы есть, но пустые
  • Исправлено странное поведение угола наклона персонажа при использовании арбалета
  • Все NULL в коде заменены на nullptr

jvoisin:

  • Исправлен вылет, если список переменных в записи скрипта есть, но пустой.

 

И фиксы регрессий.

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

Хоть и слежу за проектом полтора года, решил зарегистрироваться только сейчас))

 

Для начала хочу поблагодарить наших ребят, которые вкалывают над движком как проклятые  :jokingly: Ребят, вы лучшие, молодцы :3

 

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

 

Итак. В сети есть же сорцы движка геймбрю 3.2 от 2010 года, почему бы openmw нельзя было перенести на него? Да и тот же havok в сети имеется. Ведь по сути вот, всё в свободном доступе, качай и пользуйся)) Но вместо этого до сих пор используется огра как основной движок и пуля, как физ. движок. Странно))) Буду рад услышать ответ :)

 

зы: а в этот момент на оф. форуме вовсю разворачивается драма из-за mwse и lua....

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

Драма уже закончилась.

Ogre уже три года как не используется.

Так просто "перенести" движок на новую версию Gamebryo нельзя и вообще нелегально. То, что что-то в "свободном доступе" не означает, что это что-то можно не то что использовать, а даже видеть.

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

Ogre уже три года как не используется.

Пардон, OSG)))

 

 

Драма уже закончилась.

Полагаю, Зини так и не дал добро....

 

 

Так просто "перенести" движок на новую версию Gamebryo нельзя и вообще нелегально. То, что что-то в "свободном доступе" не означает, что это что-то можно не то что использовать, а даже видеть.

Но ведь проект то некоммерческий. Разве могут с этим возникнуть проблемы?

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

Но ведь проект то некоммерческий. Разве могут с этим возникнуть проблемы?

Ты пользуешься вещью, на которую у тебя нет разрешения. Это воровство.

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

Но ведь проект то некоммерческий. Разве могут с этим возникнуть проблемы?

OpenMW некоммерческий, а GameBryo и Havok вполне себе коммерческие, и их нельзя использовать в открытом бесплатном движке, иначе разработчиков OpenMW могут засудить.

По аналогичным причинам нельзя использовать Unreal Engine, хотя его код тоже доступен.

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

Ну, UE вроде опенсорц-проекты разрешает, но я чесгря, не уверен, что он годится для внятной реализации движка моррки. Там полдвижка переписывать придется.
Ссылка на комментарий
Поделиться на другие сайты

UE в разрешенном виде, насколько я знаю, крайне кастрирован. Да и их лицензия немного несовместима с GPLv3, как и у прочего перечисленного правоторгового барахлишка. В общем Infest слегка не в теме, что такое свободное ПО и с чем его едят, зато слышал что крутые проекты делают на хавоке и унреал енжине. Без слез читать этот пассаж невозможно.

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

В общем Infest слегка не в теме, что такое свободное ПО и с чем его едят, зато слышал что крутые проекты делают на хавоке и унреал енжине. Без слез читать этот пассаж невозможно.

Это был всего лишь простой вопрос, на который я получил простой ответ. Так что сарказм тут неуместен. :) 

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

Итак. В сети есть же сорцы движка геймбрю 3.2 от 2010 года, …

Жалко, что нету исходников NetImmerse тогда бы это возможно было полезно для разработчиков OpenMW.

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

0.45.0 на носу, но пока одна маковая регрессия не будет решена, подготовка не начнётся.

 

С 14 октября:

 

Андрей:

  • Мелкие утилиты, у которых система логирования не включена (такие как esmtool), теперь всё равно могут логировать сообщения
  • Попытка достать коллизии производится из обоих моделей существа, если в основной их нет.
  • ИИ теперь в основном прекратит пятиться с обрывов и в стены.
  • Насильственная экипировка оружия (при Equip или окончании заклинания призывания оружия) прекратит ломать анимации атаки в процессе.
  • Say теперь ловит исключение при отсутствии проигрываемого файла, а не валит при нём весь скрипт.

я:

  • Активаторы теперь поддерживают вызовы звукогенераторов.
  • Вновь перекроена обработка звукогенератора приземления.

Лимб:

Андрей:

  • Поправлено ещё несколько бед, найденных coverity.

я:

  • Записи звукогенераторов, у которых не указано конкретное существо, теперь используются. scrawl дал это три года назад, репортнули багу, которая на самом деле была не в опенмв, а в Бладмуне, и scrawl взял. Практический эффект в том, что у кучи существ теперь появятся звуки шагов, а скрибы будут использовать хотя бы иногда правильный звук при топании хвостом. А некоторые существа начнут вопить по-вервольфьи при ударе по ним из-за той баги (они такое и с Morrowind.exe делают).
Ссылка на комментарий
Поделиться на другие сайты

Маковая регрессия была решена, но была с того времени найдена ещё горстка регрессий, и ещё последняя ожидает решения.

 

C 24 октября.

Андрей:

  • Для существ без коллизий они теперь примитивно (как в оригинале) автогенерируются, модели из реплейсеров Tyddy прекратят сквозь землю падать
  • Ещё несколько бед, найденных coverity, поправлены.
  • Шанс поглотить заклинание при использовании нескольких источников эффекта поглощения заклинаний теперь не является суммой всех сил этих эффектов, а вычисляется на основе каждого эффекта по отдельности (то есть как если бы делался отдельный бросок кубика на 100 граней для каждого источника). Он так в Морровинде задуман был.
  • Актёры за пределами расстояния симуляции ИИ (то есть теперь расстояния обработки актёров) не обрабатываются вовсе. Они плавно исчезают при приближении к этой границе в обычно 7168 единиц.
  • Добавлен слайдер для расстояния обработки актёров.
  • Индикатор загрузки перемещается в центр экрана, как в Морровинде, если на экране есть какие-либо посторонние сообщения, а не перекрывает их.

я:

  • Используются дефолтные записи звукогенераторов для существ, у которых нет уникальных записей каких-либо типов (то есть большинства из них). Никс-гончие, Вивек, Дагот Ур и другие члены Шестого дома, корпрусные чудовища и многие другие начнут ногами топать, например, как я в предыдущем посте сказал.
  • Предотвращены ситуации с делением на 0 состояния снаряжения либо заряда зачарования и "не-поломанностью" оружия с максимальным состоянием 0, но текущим состоянием -1. У такого оружия урон был бесконечный, пока состояние не становилось 0 и его уже нельзя было экипировать.
  • Подкорректировано затухание магических источников света, теперь оно ровно связано с радиусом 1 фут за 1 пункт эффекта Свет, наблюдаемым в оригинале, и пока захардкоженными параметрами линейного затухания Morrowind.ini, а не чёрт знает по какой логике вычисляется.
  • В всплывающих подсказках для бросательного оружия теперь показывается реальный (удвоенный) урон.
  • ИИ также полагается на реальный урон бросательного оружия.
Изменено пользователем Capostrophic
Ссылка на комментарий
Поделиться на другие сайты

В Моррке есть очередное ограничение, по количеству знаков в тексте диалога. Есть ли такое в OpenMW?

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

В Моррке есть очередное ограничение, по количеству знаков в тексте диалога. Есть ли такое в OpenMW?

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

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

Если ограничение заложено в формат ESM (а скорее всего так и есть), то да.

А в omwaddon?

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

А в omwaddon?

OMWAddon пока такой же формат данных использует. Типа даже можно .omwaddon в .esp переименовать, и  TES CS его должен загрузить.

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

Здравствуйте кто нибудь сталкивался с проблемой обряда зверя в Bloodmoon?

Что за обряд зверя и что за проблема?

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

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

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

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

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

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

Войти

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

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

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