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

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

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

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

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

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

UnPinned posts

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

 

Исправлен вылет при установленном TR — кэш костей скелета очищается при добавлении нод, исправлен вылет при определённых условиях при открывании консоли при какой-нибудь открытой ёмкости, исправлена утечка памяти при загрузке моделей, NPC не будут идти туда, куда ещё не проложили путь (условия проблемы неясны), из сейвов к оригинальному движку импортируется местоположение Метки (получающиеся сейвы всё ещё на этот момент неиграбельны), не будет спама о событии SDL 304, перед вызовом dirtyBound() проверяется, не изменилась ли ограничительная рамка.

 

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

 

Поддержку flavor text не добавили (т.е. не объединили с кодом в главном репозитории) — остерегаются изменений нативного формата плагинов до версии 1.0.

 

Оффтопик, но связано с Zini

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

Зачем? 0_о

 

Когда читал этот "фикс" ответа кроме как патамушта не нашел для себя :3

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

"Also allowed projectiles to fly through the dead bodies as in vanilla."

Копирование поведения ванилина, вестимо.

В будущем-то будет хоть возможность отключить?

 

Они ж вроде не собирались полностью оригинал копировать в таких спорных случаях?

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

В будущем-то будет хоть возможность отключить?

 

Они ж вроде не собирались полностью оригинал копировать в таких спорных случаях?

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

"Also allowed projectiles to fly through the dead bodies as in vanilla."

Копирование поведения ванилина, вестимо.

Как-то копирование этой абсоютно неважной фигни не шибко соотносится с:

 

Главный разработчик 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.0 сделать нормальную физику стрел, болтов и прочего метательного. Сейчас они все по разному летят, да, но хотелось бы чтобы они не пропадали после стрельбы/броска мимо цели, а оставались валяться на земле, как в какой-нибудь Готике2. Учитывая что и мгновенный респаун стрел у торговцев пофиксят, то это было бы очень к месту. Да, то, что стрелы будут пролетать сквозь тушки врагов (при промахе) – выглядит глуповато, но они и раньше "сквозь" них пролетали, просто исчезали сразу после этого.

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

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

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

Ну не знаю, неисповедимы пути кодеровы. ¯\_(ツ)_/¯

 

"Переслал" вопросы и получил такие отклики (перевёл):

Ась, с чего бы то вообще было спорно? Нынче, видимо, всё спорно. А раз оно неважно, зачем вообще спорить? Не видел ни одного довода против ванильного поведения, а мы обычно придерживаемся его, если нет хорошей причины не придерживаться.

Столкновения с мёртвыми акторами не работали бы очень хорошо, потому что используемый коллизионный шейп предназначен для живых акторов, стоящих прямо. Была бы у нас регдолловая физика — тогда пожалуйста...

 

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

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

но если приглядеться, можно обнаружить очень хорошую причину тому, что оригинальная игра сделала это именно так

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

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

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

Решил вот вернуться в план смертных; соорудил сборочку с туевой хучей, а не парочкой модов, через Morrowind.exe, цивильненько, с MCP, MGE XE, всё как положено.

 

Побегал.

 

Подумал, что всё-таки не просто не очень, а плохо опенмв по сравнению с оригиналом оптимизирован, да и отстаёт в некоторых, да что некоторых, многих нюансах.

 

А потом застрял в верёвке. :trololo:

 

(и завис при альт-табе.)

 

По OpenMW: теперь используется константа пи из батюшки-OpenSceneGraph, а не из неведомой библиотеки, даже не входящей в стандарт C++.

 

Скоро должен появиться фикс дублирования референсов, возникающего не от добавления плагинов, как в оригинале (этого в OpenMW отродясь не было) а от изменения/обновления уже существующих — TR, например.

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

А потом застрял в верёвке. :trololo:

(и завис при альт-табе.)

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

По OpenMW: теперь используется константа пи из батюшки-OpenSceneGraph, а не из неведомой библиотеки, даже не входящей в стандарт C++.

Плохо знаете стандарты, M_PI включен в libc. Просто в osg:PI константа менее точная. На 5 разрядов меньше чем M_PI.

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

Плохо знаете стандарты, M_PI включен в libc. Просто в osg:PI константа менее точная. На 5 разрядов меньше чем M_PI.

Ну, скравла вольно цитировал.

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

Вышел OpenMW 0.41.0. Изменено пользователем morrow
ссылочка, н'вах, ты знаешь ссылочки?
Ссылка на комментарий
Поделиться на другие сайты

Чисто ради интереса, а зачем в игре константа пи?

Для вращения лун и солнца в радианах. Изменено пользователем koncord
Ссылка на комментарий
Поделиться на другие сайты

Чисто ради интереса, а зачем в игре константа пи?

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

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

Насколько я могу сказать по коду, пи используется для просчёта траекторий лун и солнца, положения частиц, угла камеры и для ограничения скорости её поворота, угла частицы кругов на воде, в ИИ (избегание дверей и любое движение), для маркера поворота, для привязки некоторых значениях к диапазону [-пи, пи], для перевода кватернионов в эйлеровские углы, для просчёта угла полёта снарядов и наконец, для просчёта... ммм... угла поверхности вспышки утопления, что бы то ни значило.
Ссылка на комментарий
Поделиться на другие сайты

Насколько я могу сказать по коду, пи используется для просчёта траекторий лун и солнца, положения частиц, угла камеры и для ограничения скорости её поворота, угла частицы кругов на воде, в ИИ (избегание дверей и любое движение), для маркера поворота, для привязки некоторых значениях к диапазону [-пи, пи], для перевода кватернионов в эйлеровские углы, для просчёта угла полёта снарядов и наконец, для просчёта... ммм... угла поверхности вспышки утопления, что бы то ни значило.

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

Свежий прогресс к 0.42.0:

  • Референсы с неверным номером из сейва удаляются (предотвращает дубликаты, если, например, какой-то плагин был испорчен и что-то получило новый номер)
  • Спутники следовали за игроком при быстрых путешествиях, но "зайцами". Теперь второй и далее спутники оплачивают проезд. Ванильное поведение.
  • Теперь, если фракция персонажа игрока не уточняется, условие ранга персонажа игрока использует фракцию говорящего, как оно было в оригинальном Морровинде (вопреки информации из помощи к CS).
  • Импортер сохранений теперь распознаёт и конвертирует последнюю известную экстерьерную ячейку и позицию в ней, также распознаётся состояние отдыха (при котором вообще-то сохранение игры невозможно, но — на всякий случай) и данные об анимации атаки
  • Джеффри Хейнс страдает фигнёй

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

Гуууд. Кроме последнего пункта, который я не понял.

Я так понимаю, это местный аналог вырезанного херобрина или иероглифов в конце апдейтов к ТФ2.

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

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

 

решения у него сомнительные часто.

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

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

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

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

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

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

Войти

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

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

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