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

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


MEZON

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

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

Wiki

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

Репозиторий с исходным кодом на GitHub
IRC: #openmw на irc.freenode.net
Полезные ссылки:
Wiki-статья о совместимости модов для Morrowind'а с OpenMW
Руководство по портированию ретекстуров в OpenMW
OpenMW на Youtube
OpenMW на ModDB
OpenMW на GitLab
Диздоки планов развития после 1.0
 
Сторонние проекты, основанные на OpenMW:
TES3MP - реализация мультиплеера для OpenMW.
Тема OpenMW на 4PDA - здесь можно найти сборки OpenMW для Android 5+ и гайды по решению проблем.

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

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

Что такое OpenMW?

 


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

  • полноиграбельная реализация Morrowind.
  • кроссплатформенность, запуск на Windows, Linux, MacOS X.
  • поддержка уже существующего контента, включая Tribunal и Bloodmoon и львиную долю созданных пользователями плагинов.
  • значительная модифицируемость: изменение игровой механики, создание новых эффектов заклинаний, доработка ИИ и т.д.
  • исправление ошибок системного проектирования: "грязные" GMST записи в плагинах, проблема "удвоения" в сейвах.
  • улучшение интерфейса и игрового дневника.
  • улучшение игровой механики, физики, боевой системы и ИИ.
  • поддержка мультиплеера.
  • улучшение графики путем поддержки функциональности современного аппаратного обеспечения.

Это очень амбициозный список, и ещё многое предстоит сделать, чтобы эти задачи стали реальностью.
OpenMW выпущен под лицензией GPLv3, весь исходный код написан с нуля.

В чём разница между "старым" и "новым" OpenMW?

Старый OpenMW был написан на языке D с небольшими кусками кода на C++. Позже главный разработчик решил полностью перейти на C++, потому весь код проекта был заново переписан.

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

И да, и нет.

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

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

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

Статус

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

Поддерживаемые платформы

Проект переписан на чистом C++ (с поддержкой стандарта С++17), потому должен работать на большинстве платформ, поддерживаемых OpenSceneGraph и остальными инструментами, в том числе на Windows 7 (или новее), Linux, MacOS X, FreeBSD и Android. Windows XP и более старые версии не поддерживаются, т.к. их не поддерживают используемые библиотеки и компиляторы.
Если вы хотите помочь портировать OpenMW на другие платформы, мы будет рады видеть вас на нашем форуме.

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

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

  • Языки программирования: C++, GLSL
  • Графика: OpenSceneGraph
  • Физика: Bullet
  • Звук: OpenAL
  • Ввод-вывод: SDL2
  • Скриптовый язык: Самостоятельная реализация скриптов Morrowind
  • Интерфейс: MyGUI
  • Поиск пути для ИИ: Recast & Detour

Код загрузки ESP/ESM и BSA был написан с нуля, но с помощью документации, созданной сообществом. Кроме того, и код загрузки NIF был написан с помощью имеющейся в сети информации.
Особая благодарность NIFLA/NifTools!

Главный разработчик Marc Zinnschlag (Zini) о OpenMW 1.0:
Целью OpenMW 1.0 является полная замена Morrowind.exe. Не больше, не меньше. Это также означает, что практически все улучшения оригинальной игры на данный момент исключены. Я настаивал на этом подходе, так как это самый безопасный способ завершить версию 1.0 наиболее быстро.
Релиз 1.0 будет очень важным этапом, ведь OpenMW наконец станет полноценной игрой. Мы надеемся, что OpenMW 1.0 привлечет много внимания, новых разработчиков и активных тестеров.

В некоторых случаях мы можем отклонятся от оригинала, даже до релиза 1.0.

Во-первых, я не считаю нужным копировать любые нефункциональные особенности. Бессмысленно имитировать сбои и различные ошибки. Равно как и ограничения игры (к примеру, глубину вложенности скриптов).
В общем, мы имеем полную свободу действий со всем, что не работает в Морровинде. Обратите внимание, что это не относится к какой-либо плохой игровой механике. Плохая не значит нефункциональная.

Во-вторых, мы можем изменять всё, что не является частью внутриигрового опыта. Например, опции командной строки и файлы конфигурации OpenMW выглядят совершенно иначе, чем в Морровинде. Сюда же входит и лаунчер.

В-третьих, мы не обязаны использовать те же технические детали реализации, что и в Морровинде. Для игрока всё выглядит аналогично оригиналу, но принципы работы "под капотом" могут быть совсем иными.

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

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

 

 

1. Можно просто играть и отсылать багрепорты
2. Можно тестировать разрабатываемый код, до того, как он попадёт в основную ветку. Там же можно вести обсуждение и предлагать изменения.
3. Можно тестировать моды. Основная цель - выявить проблемы с совместимостью.
4. Можно исследовать механики оригинального движка, особенно актуально в области тонкостей работы скриптов.
5. Можно обновлять Wiki.

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

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

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

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

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

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

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

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 пользователей онлайн

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