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

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

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

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

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

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

UnPinned posts

Не началось, а продолжается (NullCascade ни за чем другим на форумы опенмв не приходит), не один из, а единственный и неповторимый нынешний мейнтейнер.

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

Не началось, а продолжается (NullCascade ни за чем другим на форумы опенмв не приходит), не один из, а единственный и неповторимый нынешний мейнтейнер.

Тогда я просто начало спора не застал. За последние года полтора (что я отираюсь на форуме OpenMW) такого накала страстей, как за последнюю неделю, что-то не припоминаю.

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

На форуме OpenMW началось знатное бурление по поводу MWSE: надо ли его поддерживать (речь о классической версии для MWScript) или забить в пользу Lua, а если надо, то кому и в каком виде.

Как я понял, в сраче даже участвует один из разработчиков MWSE.

Хех. А если поддерживать МВСЕ, то в опенмвшном редакторе можно будет нормально работать с мвсешными скриптами, спокойно их компилировать и т.д.? Без этого зачем вообще нужна поддержка МВСЕ? Только ради лёгкой имплементации интересных мвсешных плагинов и решений с мвсе-костылями?

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

Только ради лёгкой имплементации интересных мвсешных плагинов и решений с мвсе-костылями?

 

Дайте, блеат, нормальные инструменты хоть на Луа, хоть на чём, и 90% этих плагинов получат дублёров в первые полгода.

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

На форуме OpenMW началось знатное бурление по поводу MWSE: надо ли его поддерживать (речь о классической версии для MWScript) или забить в пользу Lua, а если надо, то кому и в каком виде.

Как я понял, в сраче даже участвует один из разработчиков MWSE.

В идеале нужно и Lua и MWSE поддерживать.

Совместимость со старыми модификациями ещё никому не вредила.

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

 

На форуме OpenMW началось знатное бурление по поводу MWSE: надо ли его поддерживать (речь о классической версии для MWScript) или забить в пользу Lua, а если надо, то кому и в каком виде.

Как я понял, в сраче даже участвует один из разработчиков MWSE.

В идеале нужно и Lua и MWSE поддерживать.

Совместимость со старыми модификациями ещё никому не вредила.

 

Вредила. В софте обратная совместимость, вызывает серьезное увеличение размеров файлов и самих приложений. Необходимо тащить с собой чемоданы костылей из прошлых версий, что нередко приводит к заметным потерям в производительности. Иными словами при обратной совместимости:

1)раздувается кодовая база,

2)усложняется архитектура приложения,

3)затрудняется апгрейд приложений.

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

Собственно текущий тред о будущем скриптинга.

 

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

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

Zini капитулировал. Языком скриптов после 1.0 будет Lua, а не морровиндский с улучшениями, хотя будут сохранять обратную совместимость.

 

Дездок ещё не готов к публикации, но ограниченный круг товарищей (включая меня) уже его прочитали. Ну, довольно занятная вещь, правда, меня не покидает ощущение, что это тупо официальный вишлист. В нём описывается великий дехардкодинг (тм) и объясняются некоторые другие моменты в первой стадии развития OpenMW после 1.0 (дай бог дожить). В ближайшее время он будет доделан, опубликован и можно будет почитать. Довольно подробно (24 тысячи слов).

 

Лукаш Громановский (нынешний вебмастер) объявил, что у него не будет хватать времени на поддержку дел вебсайтовых, и хотя он будет изредка заходить и на вопросы отвечать, все дела нужно на кого-то скинуть. Предлагают пополнить модераторский состав (уже назначили Thunderforge) и назначить psi29a за главного. psi29a запротестовал, хотя статус администратора уже получил.

 

C 14 июня:

 

drummyfish:

  • Теперь можно делать скриншоты нескольких различных типов -- 360-хградусные, в цилиндрической, сферической развёртке и в режиме кубической карты -- и менять их разрешение.
  • Реализована команда ToggleBorders.

Андрей:

  • Когда NPC выбирает факел, источники света, которые невозможно переносить, не станут пытаться быть выбраны, конфликтуя из-за этого с щитом.
  • Актёры не будут пытаться активировать двери, которые перемещают в другую ячейку. Из-за перемещения NPC в другую ячейку происходил вылет, который не так просто решить. Точно такой же вылет происходит в оригинальной игре.
  • Исправлена обработка аргументов шансов idle-анимаций пакета AiWander. Отбрасывается не шанс воспроизведения последней случайной анимации, а шанс воспроизведения анимации по умолчанию (нонсенс).
  • Когда спутник игрока кого-то убивает, это считается преступлением игрока.
  • Скриптовые анимации не будут прекращаться без серьёзной на то причины (а именно playgroup idle).
  • Не будут ошибочно убираться из игрового мира трупы, у которых не завершилась анимации смерти (например, манекены в некоторых модах).
  • Замки с уровнем замка 0 при наличии для них ключа обрабатываются как невзламываемые, как в оригинале.
  • При загрузке NPC совершается проверка на валидность их класса и фракции. Если они не существуют, класс заменяется первым существующим, а фракция убирается. Позволяет нормально продолжать работу при встрече с NPC с неверным классом или фракцией.

я:

  • Диалоговое условие NotCell будет учитывать ячейки, которые начинаются с заданной фразы (названия ячейки), а не только ячейки, которые полностью ей соответствуют. Если в диалоге есть условие NotCell Balmora, реплика не будет срабатывать не только в экстерьерной Балморе, но и в её интерьерах. Это нужно для совместимости с оригинальным поведением и для соответствия поведению GetPCCell.

rhtucker:

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

Zini капитулировал. Языком скриптов после 1.0 будет Lua, а не морровиндский с улучшениями, хотя будут сохранять обратную совместимость.   Дездок ещё не готов к публикации, но ограниченный круг товарищей (включая меня) уже его прочитали. Ну, довольно занятная вещь, правда, меня не покидает ощущение, что это тупо официальный вишлист. В нём описывается великий дехардкодинг (тм) и объясняются некоторые другие моменты в первой стадии развития OpenMW после 1.0 (дай бог дожить). В ближайшее время он будет доделан, опубликован и можно будет почитать. Довольно подробно (24 тысячи слов).   Лукаш Громановский (нынешний вебмастер) объявил, что у него не будет хватать времени на поддержку дел вебсайтовых, и хотя он будет изредка заходить и на вопросы отвечать, все дела нужно на кого-то скинуть. Предлагают пополнить модераторский состав (уже назначили Thunderforge) и назначить psi29a за главного. psi29a запротестовал, хотя статус администратора уже получил.  

Прямо шекспировские страсти. Поставить, чтоль, ОпенМВ...

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

С 20 июня.

 

Atahualpa:

  • Добавлена опция, при включении которой базовые записи (не добавленные плагином) верификатором игнорируются. Позволяет пропускать проверку мастеров бетесды

я:

  • Для совместимости с оригинальным поведением игрок будет виновен в открытии замков заклинаниями на открытие, если будет замечен, даже если не он сам скастовал эти заклинания.
  • Исправлены вылеты при попытке открытия или закрытия скриптом объекта в другой локации (вылет происходил из-за того, что на такой объект невозможно применить анимацию свечения)
  • Атаки невооруженных существ не влияют на состояние брони для совместимости с оригиналом (хотя навык брони повышаться будет). Zini решил, что после 1.0 это поведение будет регулироваться добавленной GMST.
  • Если не смогла быть найдена вампирская голова для вампиров, будет попытка использовать обычную (из записи NPC).

Андрей:

  • Доведен до ума фикс попыток проигрывания файлов, которые не являются музыкой, всё равно могли происходить вылеты, особенно на маках
  • Если в файле несколько нод с одним названием, параметры поворота, позиции и т.д. берутся от первой найденной, а не последней -- позволяет силт страйдерам из мода абота правильно себя вести
  • Множество исправлений предупреждений компиляторов и coverity
  • Движения, производимые скриптовыми анимациями, игнорируются -- позволяет силт страйдерам из того же мода не дергаться при ходьбе.

wareya:

  • Базовый слой земли теперь черный, а не дефолтная текстура ландшафта. При смешении текстур земли там, где они встречаются, не будет проглядывать коричневая текстура. Как говорится, как только заметишь, не развидеть.

finbar-crago:

  • Исправлен вылет, происходящий, если предмет, выбранный в меню быстрых клавиш, отсутствует в инвентаре.

corristo:

  • Если включена переменная среды OPENMW_DECOMPRESS_TEXTURES и используется форк OSG openmw/osg или OpenSceneGraph 3.6, не только текстуры, но и курсор будет декодироваться программно. На системах, кроме маков, разницы никакой. Изменение портировано в ветку 0.44.0.
Ссылка на комментарий
Поделиться на другие сайты

я:

  • Для совместимости с оригинальным поведением игрок будет виновен в открытии замков заклинаниями на открытие, если будет замечен, даже если не он сам скастовал эти заклинания.

finbar-crago:

  • Исправлен вылет, происходящий, если предмет, выбранный в меню быстрых клавиш, отсутствует в инвентаре.

Ты: а зачем это надо? Бредово же. Или то как-то обыгрывается в квестах игры?

 

Про вылет с выбором предметов: класс, в обычном Муравинде это так и не пофикшено.

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

 Бредово же. Или то как-то обыгрывается в квестах игры?

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

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

А систему локализации изменят или все так и останется? Или фиг его знает, пока не думали.

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

А систему локализации изменят или все так и останется? Или фиг его знает, пока не думали.

Zini сказал, что изменят, но только после 1.0.

Я в свое время запилил возможность читать кастомные строки из текстовых файлов, но ее не приняли.

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

Zini сказал, что изменят, но только после 1.0.

Я в свое время запилил возможность читать кастомные строки из текстовых файлов, но ее не приняли.

Хотелось бы что-то в стиле Скайрима, но улучшенную. Так чтоб на английские esm можно было накатить локализацию отдельными файлами.

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

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

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

Если стрелять в движении или в прыжке, стрелок просто взводит арбалет рукой.

Трэш получается, когда во время перезарядки персонаж начинает или завершает двигаться (особенно этом грешат неписи): в этом случае персонаж переключается между двумя вариантами перезарядки. Чтобы воспроизвести этот баг, можно просто подбежать к арбалетчику во время его перезарядки - он попытается отойти назад. Баг есть и в Морровинде, и в OpenMW.

 

Какие есть варианты починки:

1. Всегда взводить арбалет руками (вроде в старых Готиках похожее поведение).

2. Запретить персонажу двигаться во время перезарядки арбалета (как в Gothic 3).

3. Забить, т.к. "как в ванили".

 

У всех вариантов есть свои достоинства и недостатки.

Первый вариант не меняет игровой баланс, но выглядит нереалистично и нравится не всем (Capostrophic уже жаловался).

Второй вариант сложно реализуем, может добавить новых багов, меняет игровой баланс и нравится не всем (я бы жаловался).

Третий вариант есть уже сейчас, но выглядит нереалистично (и просто глупо) и один черт нравится не всем.

 

Так как оно должно-то быть?

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

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

Так как оно должно-то быть?

Добавить в игру предмет "Кранекин", запретить перезарядку арбалета, если его нет в инвентаре, добавить в игру предмает "Павеза", переделать все анимации перезарядки. Как-то так.

 

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

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

Конечно, второй вариант реалистичнее. Даже при взводе руками тетивы арбалет должен упираться в землю, потому что взвести тетиву арбалета ОДНОЙ рукой (т.е. без упора приклада куда либо) - невозможно, если вы не огр. Смысл арбалета (даже охотничьего) - взвести тетиву заранее, а потом выстрелить в любой момент.

Таким образом, ЕСЛИ уж что-то менять с точки зрения реалистисности, то только по п.2

 

Но я бы не менял - в ванили арбалеты не сильно мощнее луков, и останавливаться для его перезарядки смысла не имеет. Если только не ребалансить сами арбалеты ;)

 

Ну или, если коробит анимация, сделать только перезарядку руками (как в Skyrim).

 

Таким образом, если отталкиваться ТОЛЬКО от тупости ванильной анимации, предпочтительнее вариант 1. 2 подходит только при ребалансе арбалетов.

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

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

Тот же п.2., только в профиль.

Плюс такой подход надо как-то обрабатывать в ИИ - иначе неписи вообще никогда не перезарядятся.

 

 

Таким образом, если отталкиваться ТОЛЬКО от тупости ванильной анимации, предпочтительнее вариант 1. 2 подходит только при ребалансе арбалетов

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

Для других видов оружия это не заметно, т.к. в их анимациях ноги активно не участвуют.

Если идти по п.2., это серьезно ослабит арбалеты, и там действительно надо их рабелансить.

Например, в Gothic 3 я предпочитал использовать луки вместо арбалетов - скорострельность выше, можно потихоньку отступать назад при стрельбе.

Арбалетом с одного раза в игре толком никого не уложишь, второй раз выстрелить не дадут.

Здесь будет аналогичная ситуация - надо будет серьезно повышать урон арбалетам.

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

Про тупость анимации я и имел в виду ситуацию, когда персонаж нагнулся натягивать тетиву, а в следующее мгновение уже подпрыгивает и натягивает тетиву руками :/

 

Таким образом, если и переделывать, то просто оставить только ручную анимацию.

 

 

Но от опционального п.2 я бы не отказался - в моем ребалансе арбалеты как раз огромные тяжелые дуры весом 6 кг и соответствующим уроном (именно столько весили боевые НЕ осадные арбалеты). Было бы очень кстати отказаться от их перезпрядки на ходу.

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

Даже при взводе руками тетивы арбалет должен упираться в землю, потому что взвести тетиву арбалета ОДНОЙ рукой (т.е. без упора приклада куда либо) - невозможно, если вы не огр.

Если арбалет особо хилый, то, в принципе, таки можно.

 

Ну или, если коробит анимация, сделать только перезарядку руками (как в Skyrim).

И потерять еще одно положительное отличие Морра от Скурима, ага.

 

Плюс такой подход надо как-то обрабатывать в ИИ - иначе неписи вообще никогда не перезарядятся.

Хгмм, а сугубо в обработчике анимаций нельзя?
Ссылка на комментарий
Поделиться на другие сайты

Но от опционального п.2 я бы не отказался - в моем ребалансе арбалеты как раз огромные тяжелые дуры весом 6 кг и соответствующим уроном (именно столько весили боевые НЕ осадные арбалеты). Было бы очень кстати отказаться от их перезпрядки на ходу.

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

2. Zini скорее всего зарежет идею - ему не нравятся опции, меняющие игровой баланс.

Но если будут толковые идеи, как это сделать, то можно попробовать.

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

 

Хгмм, а сугубо в обработчике анимаций нельзя

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

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

 

И потерять еще одно положительное отличие Морра от Скурима, ага

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

У меня неписи в основном при движении стреляли и перезаряжали арбалет руками (или дергались).

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

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

Вы сможете оставить комментарий после входа в



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

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