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

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

Угу, надо. Но это новый формат файла нужен, в оригинальные диалоги вики-ссылки не поместятся.

А я этого не отрицаю.

 

А вот на правах оффтопа, такая мысль пришла - нужны ли, с нарративной точки зрения, для морровиндовского диалогового движка такие функции разметки, как различные начертания текста? Полужирный, курсив, КАПИТЕЛЬ?

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

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

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

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

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

Я точно помню в оригинале указатели невербальных сигналов. Типа "*чешет голову*" или что-то вроде. Ничего не мешает написать: "*вы слышите в голове голос* Привет, PCName!". Кажется, что-то такое даже и было.

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

Я точно помню в оригинале указатели невербальных сигналов. Типа "*чешет голову*" или что-то вроде. Ничего не мешает написать: "*вы слышите в голове голос* Привет, PCName!". Кажется, что-то такое даже и было.

 

Конечно было, да и есть, особенно если включить субтитры:

 

*ворчание*

*чешет голову*

*сопение...*

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

 


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

 

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

 

Спам за время с 1 апреля:

 

я:

  • У озвучки без определенной позиции теперь анализируется громкость сэмплов, чтобы неписи, её произносящие (а именно только игрок) могли губами двигать. То есть даэдра и Тархиэль будут говорить из уст игрока, как в оригинале.
  • Когда игрок летит, нельзя отдыхать на земле.
  • Когда игрок не находится на земле, всё равно можно отдыхать в кровати.
  • Когда персонаж летит, у него нет никаких звуков шагов или плавания.

unelsson:

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

Типа "*чешет голову*" или что-то вроде. Ничего не мешает написать: "*вы слышите в голове голос* Привет, PCName!".

Конечно было, да и есть, особенно если включить субтитры:

 

*ворчание*

*чешет голову*

*сопение...*

Вот это вот и в оригинале определенно отредактировать не помешает. 

 

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

Хгмм. А что такое токен типа "неявное ключевое слово", и почему "есть работа" будет им, а не явной гиперссылкой?
Ссылка на комментарий
Поделиться на другие сайты

*ворчание*

*чешет голову*

*сопение...*

 

 

Меня ещё в ризоме это смущало, потому что кто попало пишет как попало, потому что в русской как попало. Где то звездочками обозначено действие, где то скобками

[Зевает]  Внутри... снаружи... я буду спать где угодно.

[вздыхает] Что еще?

Нда, это должно быть интересно. [саркастически]

То с прописной то нет. Надо выработать единый стиль диалогов.

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

Хгмм. А что такое токен типа "неявное ключевое слово", и почему "есть работа" будет им, а не явной гиперссылкой?

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

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

А вот на правах оффтопа, такая мысль пришла - нужны ли, с нарративной точки зрения, для морровиндовского диалогового движка такие функции разметки, как различные начертания текста? Полужирный, курсив, КАПИТЕЛЬ?

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

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

И кофе чтобы не остывал, пока печатаешь в дневник.

Покупаешь видеокарту помощнее, выкручиваешь графоний и ставишь кофе на пути воздушного потока.

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

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

С 7 апреля:

 

bzzt:

  • Оптимизации и фиксы касательно взаимоотношений камеры с ландшафтом

Андрей:

  • Добавлена опция, позволяющая использовать анимации каста для заклинаний зачарований на предметах. Эквивалент опции задержки повторных использований предметов из MCP для цивилизованных людей.
  • В режиме бога предметы, подобные свиткам, больше не повышают навык зачарования.
  • 4 тип получения опыта навыка зачарования будет правильно использоваться при использовании зачарований, наносящихся при ударе, а не при использовании зачарованных предметов с зарядом или (в режиме бога) при использовании свитков.
  • Если ID объекта экземпляра объекта в сейве не совпадает с ID нового с тем же refnum в измененном плагине, который использовался в сейве, он отбрасывается. Спасибо, TESCS.
  • Большинство виджетов GUI могут подстраиваться под иные разрешения текстур.

я:

  • Все заклинания при загрузке проверяются на корректность аргумента навыка/атрибута каждого эффекта и некорректные аргументы отбрасываются, дабы не кидалось исключений для модов с поломанными заклинаниями, которые делали бы игру неиграбельной.
  • Поправлено логирование версии NIF. Добавлена "поддержка" загрузки версии NIF 4.0.0.0 (на самом деле точно то же, что и 4.0.0.2), что позволяет некоторым моделям из последней версии Mesh Improvements Optimized загружаться без воплей о несовместимой версии NIF. Stuporstar готовит обнову и об этом казусе теперь в курсе.
  • Звук промаха проигрывается только для атак игрока.
  • Поддержка настроек постоянного затухания света -- UseConstant/ConstantValue в LightAttenuation Morrowind.ini. Постоянное затухание понижает (при отрицательном значени повышает) яркость всех источников света независимо от расстояния до освещенной вершины/пикселя.
  • Источник света эффекта Свет теперь использует глобальные настройки затухания вместо хардкода.
  • Есть шанс у магических эффектов иметь максимальную мощность

terrabyte25:

  • Быстрые клавиши не работают, когда отключены бой и колдовство

psi29a:

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

Небольшое пожелание по теме. Было бы неплохо добавить в шапку темы ссылку на документ "Post 1.0 Plans". 

 

И кстати, а куда Zini пропал?

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

Небольшое пожелание по теме. Было бы неплохо добавить в шапку темы ссылку на документ "Post 1.0 Plans". 

 

И кстати, а куда Zini пропал?

Добавил ссылку.

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

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

Добавил ссылку.

За ссылку большая благодарность :)

Всё время теряю её)) 

 

 

Пересели на C++14

Я, к сожалению, не разбираюсь в программировании, скажите пожалуйста, а что это даст проекту?

 

Ребят, такой вот момент. OpenMW конечно по сей день понемногу набирает популярность среди фанатов моррки, но всё же, меня уже не первый месяц мучает вопрос. Почему OpenMW до сих пор не опубликовали на нексусе? Это ведь фантастически большой пиар для данного проекта! Никаких лицензионных прав он не нарушает, работает как стороннее приложение (что точно не запрещено). Почему бы не опубликовать его там?

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

Переход на C++14 не даёт особо ничего (по сравнению с прошедшим переходом на C++11), но переход на C++17, где уже плюшек побольше, будет возможен более гладкий.

К тому же жалобы на отсутствие в C++11 кое-каких плюшек C++14 уже были.

 

С 14 апреля:

Андрей:

  • Необрабатывающиеся актёры теперь не могут случайно утопиться
  • Убрана ошибочно добавленная в 0.45.0 зависимость расстояния обрабатывания цели пакета AITravel от расстояния обработки актёров
  • "Я на твоей стороне" орут только актёры, дружественные игроку

я:

  • Поле зрения повышено до 60 градусов по вертикали (оригинального при соотношении 4:3)

Utopium:

  • Скорость неписей зависит от веса их расы, как в оригинале, дабы соблюдались более-менее точные тайминги в интро игры (стражник подходит к игроку на несколько секунд быстрее) и вкусы пуристов. Опция для возвращения старого поведения, как в фиче MCP, не зависящего от расы, будет. Всё равно, правда, есть проблема с тем, что актёры не умеют замедляться перед остановкой.
  • Скорость актёров зависит от их размера (то есть масштаба по сравнению с стандартным 1.0, устанавливаемого, например, setscale).
Ссылка на комментарий
Поделиться на другие сайты

А зачем? Это ведь не мод.

Строго говоря, на Нексусе не только моды, но и сторонние программы.

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

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

А зачем? Это ведь не мод.

Nexus является платформой не только для модов, но и для кучи стороннего софта для той же разработки, улучшений игр, оптимизаций и многое другое (раздел "Utilities"). Так что соглашусь с товарищем  Scarab-Phoenix, в теории для проекта это дополнительный пиар и привлечение новой аудитории, если не разработчиков. Ну и прямой конкурент дляMCP и MGE XE, который на нексусе чуть ли не боготворят)))

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

Ну, как бы учитывая, что:

1) стабильный билд на момент выхода уже устарел

2) а каждый раз заливать на нексус свежую сборочку под винду может быть не слишком удобно,

3) к тому же надо отвечать на комменты и поддерживать страничку на нексусе в актуальном состоянии,

То как бы надо ещё подумать надо ли это вообще...

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

1) стабильный билд на момент выхода уже устарел 2) а каждый раз заливать на нексус свежую сборочку под винду может быть не слишком удобно,

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

 

 

3) к тому же надо отвечать на комменты и поддерживать страничку на нексусе в актуальном состоянии,

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

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

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

 

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

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

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

Проблема в том, что ночные билды не нумируются по версиям, а имеют, как я понял, только индекс (ну или как это ещё можно назвать). 

 

 

А что так редко? Пусть каждый час новую версию заливает.

В теории это можно даже автоматизировать :D

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

С 19 апреля:

 

я:

  • Дубликатов звуков с одним ID для магических снарядов больше не добавляется, как это обычно со звуками на одном источнике происходит, что позволяет снарядам заклинания Гнева Дагота дагот ура, у которых семь эффектов с одинаковым звуком полета, не звучать так громко
  • PlaceAtPC принимает дополнительный численный аргумент, который будет игнорироваться, как это делает PlaceAtMe. Чинит скрипт в каком-то моде (уже не помню, каком)
  • Теперь поддерживается 8 типов крови, как в оригинале. Теоретический максимум 64 зашит в формат ESM, только воспользоваться им будет нетривиально.
  • Функции теперь могут использоваться вне выражений. Только они далеко не всегда будут что-то делать. Но вот OnActivate, например, будет блочить обычную активацию. Фиксит какие-то скрипты в MFR (Андрей насчитал 6 штук OnActivate).
  • Все визуальные эффекты, накладываемые на актёров (кроме NPC, у которых своя логика), масштабируются согласно размеру их коллизий, а не только эффекты каста заклинаний, и масштабирование было уточнено, чтобы соответствовать оригиналу. Понимание далеко не совсем полное, но лучше, чем раньше.
  • Первый спутник игрока теперь всегда катается на силт страйдерах и лодках платно.
  • Опция для нормализованной скорости рас, каковой она была раньше.

Андрей:

  • Визуальные эффекты постоянных заклинаний, добавляемых на персонажа AddSpell и болезнями, теперь правильно показываются. Наиболее очевидно на Дагот Уре в конце главного сюжета.
  • Всплывающие подсказки нескольких вещей теперь правильно меняют ширину согласно ширине строк в них, как в оригинале, а не имеют фиксированную ширину.
  • Исправлен порядок аргументов в добавленном в 0.45.0 вызове при обнаружении удара, из-за которого, например, можно было "попасть" оружием по актёрам без коллизий.
  • Для ошибок парсера используется общая система логирования.
  • При использовании OSG 3.6 с помощью добавленной там функции отключается какая-то потоковая вундервафля, вмешивающаяся в определение ядра, на которое попадут потоки навигатора актёров, и иногда приводящая к лютым тормозам. Эта вундервафля насильно отключена в форке OpenSceneGraph, используемом для официальных сборок, так что их это не касается, но так или иначе оно теперь должно работать правильно -- смотря как решит система пользователя -- на любой сборке OSG 3.6.
Ссылка на комментарий
Поделиться на другие сайты

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

 

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

Т.е. если у торговца есть пивные кружки на прилавке, в инвентаре и в сундуке, то он будет продавать те, что выложены в мир, т.е. с прилавка (1), потом из инвентаря (2) и потом уже из сундука (3). Могу ошибиться с 2-3 местом, но с приоритетом продажи вещей с прилавка — однозначно.

Это приводит к тому, что вещи, выложенные на прилавок, пропадают при их покупке. Т.е. при покупке условной пивной кружки торговец нам её продаст с прилавка и она исчезнет с прилавка.

Вопрос: можно ли задать иной приоритет продажи? Чтобы при покупке сначала продавалась вещь из инвентаря (1), потом из сундука (2), а потом уже из ячейки (3). Это в некоторой степени поспособствует проблеме перегруженности торговцев, которые не умеют складывать проданное им игроком в сундуки, а потом не могут с места сдвинуться: хотя бы инвентарь в первую очередь будет разгружаться.

Если это не слишком геморройно, то было бы норм.

 

Кстати, как часто респаунящиеся предметы торговцев теперь респаунятся, коли баг с мгновенным восстановлением таких предметов у торговцев в ОпенМВ пофикшен? Полагаясь на iMonthsToRespawn?

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

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

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



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

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