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

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

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

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

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

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

UnPinned posts

Привет всем, у меня вопрос. Мне любопытно, почему игра тормозит при настройках exterior cell load distance = 2, viewing distance = 66666?

Потому что "exterior cell load distance" всегда должно быть равно 1.

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

Потому что "exterior cell load distance" всегда должно быть равно 1.

Если поставлю 1, то не вся карта будет видна с дальнего расстояния.

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

Если поставлю 1, то не вся карта будет видна с дальнего расстояния.

Ну да. На то и расчёт - если начать полностью обрабатывать большое количество ячеек "в лоб", то FPS резонно проседает, поэтому так делать нельзя.

Есть способы это обойти (например, такой), но они ещё в разработке, так что пока либо тормоза, либо только удалённый ландшафт.

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

Ну да. На то и расчёт - если начать полностью обрабатывать большое количество ячеек "в лоб", то FPS резонно проседает, поэтому так делать нельзя.

Есть способы это обойти (например, такой), но они ещё в разработке, так что пока либо тормоза, либо только удалённый ландшафт.

Спасибо за ответ. Будем ждать обход.

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

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

С 20 июня:

 

я:

  • Любой четвертый аргумент инструкции AiTravel пока игнорируется (обычно это аргумент, ответственный за отсутствие сброса GetAiPackageDone с единицы после прекращения пакета, вызванного инструкцией; сейчас это и так происходит без особой на то причины).
  • Атаки существ без оружия вновь наносят урон состоянию щита при блоке.
  • Диапазон значений предела очков зачарования на одежде и на оружии изменен с [-32677; 32677] на [0; 65535], как в оригинале (в игре без модов реальные диапазоны изменены примерно с [-3267; 3267] на [0; 6553])
  • NiTriShape с названиями, начинающимися на Shadow или Tri Shadow, скрываются всегда, а не только когда на них есть соответствующий флаг. Поведение соответствует поведению TESCS, а не игры, потому что отключать шейпы исключительно для частей актеров нетривиально.
  • Анимация закрывания рукой лица во время бурь теперь применяется и к торсу, чтобы анимация бега выглядела корректно (соответствуя оригиналу).
  • Актеры больше не могут попытаться начать или продолжить бой с самими с собой, что выглядело довольно... интересно, но ломало различных спутников, полагающихся на проигрывание соответствующими вызовами скриптовых инструкций боевых фраз без побочных эффектов.
  • Существа кричат боевые фразы (топик Attack) в начале боя, если такая у них есть, не только во время боя, но и в непосредственном начале него.
  • Когда объект в окне зачаровании не выбран, стиль зачарования нельзя изменить. Когда окно зачарования закрывается и вновь открывается, стиль зачарования корректно сбрасывается.
  • Парализованные актеры больше не могут поприветствовать игрока (так они себя ведут в оригинале). Тем не менее, говорить в целом они могут.
  • Поправлен поворот при телепортации с помощью CenterOnCell (COC) для соответствия оригинальному.
  • Поправлены значения прозрачности при использовании эффектов Хамелеона и Невидимости для соответствия оригинальным по данным Хрнчамда

Assumeru:

  • Исправлена несовместимость шкал прокрутки с более новыми ревизиями MyGUI.

AnyOldName3:

  • Исправлено поведение тумана войны на новейших ревизиях OSG.

Utopium:

  • Файлы omwaddon можно открывать напрямую, и откроется OpenMW-CS с файлом, который можно редактировать.
  • Комбинация Shift-ПКМ откроет окно с данными об экземпляре объекта, на который кликает игрок.

jrivany:

  • На контроллерах можно прокручивать всякое, не двигая курсором
  • Чувствительность геймпадного курсора можно менять

 

Пока глухо.

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

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

С 5 июля:

 

jlaumon:

  • Исправлена нестабильность игры при отключенном звуке

Артем Николенко:

  • Переделано масштабирование окна с статами персонажа — левая панель реагирует на него более адекватно, примерно отражая оригинальное свое поведение.

я:

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

Вопрос по графику релизов, в среднем каждые пол года выпускают одну версию:

b8c430f5a74191d966f068cfda181ff4.jpg

 

Если следовать этой схеме, то версии 1.0 нужно ждать через несколько лет, или исходя из степени готовности есть вероятность, что могут сразу выдать финальный релиз минуя промежуточные?

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

Прогнозы о релизах проектов, которые разрабатывают энтузиасты в свободное время - вообще бестолковая штука.

Да и чётких критериев, что вообще должно быть в 1.0, до сих пор нет.

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

Есть ли возможность локализации на русский язык представленных на скриншотах пунктов меню?

86bccb474a746e10861f822ce991692c.jpg
7fd568e73cc88603de8b548a01b3636b.jpg
7c16b9f1eedf756d66d7206a9355b0c6.jpg
294ca12fd5ad3658afcdba0f5e529615.jpg
438f793a243d682449f4d0a04ef798e7.jpg
d62efd62550875fcd970eca13e71883e.jpg
f52709f163d4339ee1aa9d68bb547166.jpg
b414884dc206dbe2c2c0e6fd34887e87.jpg
4ed33c470cb989ba24cbe16a1773d1c3.jpg
74e8997fb1cfdadbbcedbc567080e4b5.jpg
75929e7829fb8188daadd7eb2201cc5b.jpg

 

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

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

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

Технически возможность есть (как и в любом Qt-приложении), но реально этим заниматься никто не будет, т.к.:

1. Это не сама игра, т.е. локализация тут особо не нужна

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

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

Пришла в голову такая мысль. Возможно я сейчас скажу полный бред, дабы структуры openmw я не знаю и некоторые вещи из моих уст будут звучать глупо. В общем, учитывая тот факт, что чем больше играешь в морровинд, чем дальше его проходишь (а с крупными дополнениями, аля TR или MR) сохранения записываются всё медленнее и медленнее. Вопрос, система сейва/лоада работает в однопоточном режиме или в многопоточном? И если в однопоточном, то теоретически возможно ли сделать его под многопоток, дабы ускорить сам процесс? 

 

зы: идею скопипастил из другого проекта, в котором скриншоты в размере до 64к в tga сохранялись несклько десятков секунд. Автор сделал это дело в режиме многопотока и сократил время до нескольких десятков милисекунд. 

2зы: ещё вопрос, а до скольки ядер/потоков использует openmw?

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

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

 

 

2зы: ещё вопрос, а до скольки ядер/потоков использует openmw?

Каждый месяц спрашивают. Много, от двух до восьми в зависимости от настроек, но постоянно (каждый кадр) нагружены только два (основной поток и поток отрисовки).

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

Сомневаюсь, что попытка распараллелить сам сейвлоад - удачная затея.

Разве тот же Обливион/Скайрим и Фоллауты3/НВ/4 не используют сейвлоад в несколько потоков? Судя по мгновенному сохраняемому огромному массиву информации, как мне кажется, используют. Чем же плоха идея сейвлоад распараллелить и в опенмв?

 

 

Каждый месяц спрашивают.

Думаю, для интересующихся было бы очень хорошо добавит данный ответ в FAQ, дабы избежать повторных вопросов. 

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

Чем же плоха идея сейвлоад распараллелить и в опенмв?

А что там параллелить? При наличии SSD разницы особой всё равно не будет, при наличии жёсткого диска в него всё равно всё и упрётся.

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

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

А что там параллелить? При наличии SSD разницы особой всё равно не будет

Ради теста замерил время сохранения. Морровинд + MFR. Прошёл игру недалеко, по сюжету дошёл до Вивека. Сохранение занимает чуть больше двух секунд. И да, игра установлена на SSD. 

 

 

И в обливионах там другая система - там вроде только процесс сохранения асинхронный

Тогда может быть такой алгоритм возможно организовать?

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

Тогда может быть такой алгоритм возможно организовать?

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

 

Если уж кому интересно, то проще посмотреть, какие данные в сейв пишутся, может, оптимизировать что-нибудь можно (например, примерно треть места занимает инфа о существах и контейнерах, много места едят "туман войны" и журнал).

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

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

На 3.6.4 не перейдем, но мб на 3.6.5.

 

С 20 июля:

Фиксы регрессий, много. И фиксы регрессий фиксов регрессий тоже.

 

elsid:

  • Угловая скорость NPC зависит от их линейной скорости.
  • Путь к следующему узлу путевой сетки в пути у актёров с пакетом Wander теперь строится на основе навмеша. Но если узел реально недостижим, они пока будут продолжать тупить (elsid над этим работает).

я:

  • В лаунчере можно менять предел частоты кадров, ранее доступный исключительно в конфиге.
  • ModRegion принимает и игнорирует ещё один численный аргумент, что позволяет работать кольцу погоды Вварденфелла из мода от LegoManIAm.
  • NPC будут начинать бой с вервольфами с более корректного расстояния, а не с фактически бесконечного (была убрана привязка рейтинга боя к [0; бесконечность) перед добавлением бонуса к рейтингу боя с вервольфами).
  • Как в оригинале, плавающие актёры перестанут спауниться на дне водоемов, а останутся там, где плавали.
  • Поправлено неопределенное поведение при загрузке пустой геометрии в модели, приводящее к вылету при запуске сборки после компиляции на некоторых системах.
  • Зачарованные "при попадании" снаряды *всегда* применяют свое зачарование, даже если навыка персонажа недостаточно, чтобы использование заряда зачарованием было меньше, чем полный заряд предмета. Вроде примерно отражает оригинальное поведение.
  • AddSpell немедленные эффекты типа телепортации в добавленных способностях/проклятиях/болезнях применяет сразу.
  • Убрано 35 тысяч строк ненужных частей recastnavigation из 65 тысяч вытянутых из репозитория изначально.

bzzt:

  • Добавлен предел частоты кадров по умолчанию (300 FPS).

Assumeru:

  • В консоли можно использовать комбинации Ctrl-W (удаление последнего слова) и Ctrl-U (удаление строки), как в *nix-консолях.
  • Респаун актёров запускает их скрипты сразу, а не после перезахода в локацию.

Артем Николенко:

  • Исключительно сухопутные существа будут убегать/прекращать бой не только когда их противник плавает, но и когда он ходит по воде.

alexarice:

  • Настройки управления контроллеров можно заменять дополнительно в ещё одном, пользовательском, конфигурационном файле (этот gamecontrollerdb.txt находится там же, что и остальные пользовательские конфигурационные файлы).

akortunov:

  • Зачарованные стрелы теперь светятся, когда натянуты.
  • Стрелы больше не прилипают к персонажу при отмене анимации натягивания.
Изменено пользователем Capostrophic
Ссылка на комментарий
Поделиться на другие сайты

На 3.6.4 не перейдем, но мб на 3.6.5.

Ясно, тогда держу кулаки и скрещиваю пальцы :)

 

Кстати, Капо, Андрей, вопрос к вам. Тут следил за одним игровым проектом и наткнулся на интересную штукнцию, которую другая команда разработчиков внедрила в свой движок - mimalloc. 

Сама новость: Miсrosoft открыл код системы распределения памяти mimalloc.

Исходный код. mimalloc

 

Заявлена поддержка Windows, macOS, Linux, BSD и другие Unix-подобные системы. 

Так вот вопрос. Стоит ли ждать внедрение данной технологии в OpenMW? Почитал про неё, вещь вроде многообещающая.

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

Стоит ли ждать внедрение данной технологии в OpenMW? Почитал про неё, вещь вроде многообещающая.

Встречный вопрос - зачем её вообще внедрять в OpenMW?

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

Встречный вопрос - зачем её вообще внедрять в OpenMW?

 

В некоторых тестах mimalloc опережает другие системы в разы, например, в тесте миграции объектов между разными потоками mimalloc оказался быстрее tcmalloc и jemalloc более чем в 2.5 раза. При этом в большинстве тестов также наблюдается более низкое потребления памяти, в некоторых ситуациях расход памяти удаётся снизить на 25%.

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

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

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

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

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

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

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

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

Войти

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

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

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