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

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

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

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

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

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

UnPinned posts
Интересно, насколько глубоко вшита игровая пауза при входе в инвентарь тут? Дорогой ли ценой будет отменить паузу?
Ссылка на комментарий
Поделиться на другие сайты

Да вообще элементарно. В функции, которая обновляет состояние всего каждый кадр, есть переменная paused, которая назначается на true, если игра переходит в менюмод. Если её там же где-то назначить на false, не будет нигде никакой паузы. Так сделано в TES3MP.

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

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

Да вообще элементарно. В функции, которая обновляет состояние всего каждый кадр, есть переменная paused, которая назначается на true, если игра переходит в менюмод. Если её там же где-то назначить на false, не будет нигде никакой паузы. Так сделано в TES3MP.

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

спасибо за помощь и респект за знание матчасти)

а ты в проекте что-то девелопишь? сюда чейнджлоги сливаешь по какой мотивации? интересно ли участие в каком-то проекте?

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

1. Не особо. Пару мелких фиксов делал, но ничего серьёзного.

2. Для себя в основном.

3. Смотря в каком, в какой роли и зачем.

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

2. Для себя в основном.

3. Смотря в каком, в какой роли и зачем.

2. Прикольно) учитывая, что тут пока к опенМВ интерес спит

3. А не знаю) тес3мп-сервер, например) любопытства ради спросил

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

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

 

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

 

astilich исправил форматирование escape-символов и заменил там функцию из буста функцией из C++11.

 

rexelion добавил режим KO, в который входят NPC при падении значения усталости ниже нуля, продолжается примерно 1-3 секунды (раньше они вставали мгновенно, даже если усталость была ниже нуля). Кроме того, он исправил активацию заскриптованных предметов, если они подбираются через инвентарь: например, при блоке onActivate они не смогут быть так подобраны, и, например, игрок будет вынужден быть атакованным дреморой.

 

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

 

И Zini, и scrawl решили не добавлять обратные карманные кражи до поры, но согласились но объединение с кодом общего рефакторинга, сделанного Андреем.

 

Релиз 0.43.0 в процессе. Упомянутые фиксы регрессий рефакторинга в него попадут, но не другие новшества.

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

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

Реализовал поддержку русского языка в списке тем в дневнике. Было бы неплохо, если бы кто эти изменения на Винде потестил.

 

Скриншот:

 

YZ4EjS3.png

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

Вот вам и повод запилить альтернативный, "правильный" перевод Морки.

Тут и 100% совместимость с ТРом (и др. бургерскими модами) и уход с поделия 1С на стим

 

А учитывая UTF8, сдѣлать его можно на дореволюцiонной грамматикѣ

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

Не совсем понял про уход с поделия 1С на стим. При чем тут руссификация?
Ссылка на комментарий
Поделиться на другие сайты

Не совсем понял про уход с поделия 1С на стим. При чем тут руссификация?

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

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

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

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

Каким образом?

 

Мне вот тоже интересно.

top-файлы и ручная генерация гиперссылок не от хорошей жизни введены были.

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

или как там они, рашен-эксклюзив костыли, называются

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

пачки жуков перевода

Это каких?

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

Думается, уйти с top'ов не выйдет - чтобы была совместимость с оригинальным esm. А вот проклятая генерация гиперссылок останется только на лурке.

 

Это каких?

Выбирайте, http://www.fullrest.ru/forum/topic/32217-gfm-632/

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

 

Если я правильно понимаю, то здесь имеются в виду опечатки и неточности перевода, которые правит GFM? Ну так от них еще лет 15 назад можно было избавиться с помощью редактора.

Тот же GFM спокойно подключается к OpenMW, никаких отличий OpenMW от Морровинда здесь нет.

 

А вот проклятая генерация гиперссылок останется только на лурке.

 

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

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

Как я понял, костыль в виде @# было решено ввести именно для решения этой проблемы.

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

Черт с ней с автоматической генерацией. Главное, чтобы в редакторе @# не пропадали и не приходилось возиться с подставлением скобок и заменой их обратно на @# в других программах и прочими увлекательными вещами.

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

В тему *.top - файлов: есть ли разумные способы выстроить топики в конструкторе насквозь по алфавиту? Насколько я догадываюсь, их порядок в списке определяется загрузкой отдельных мастер-файлов? Или чем-то другим?

В англоверсии всё хорошо, по алфавиту. Видимо, на нашей это не лечится.

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

Мне вот тоже интересно.

top-файлы и ручная генерация гиперссылок не от хорошей жизни введены были.

Жалко =( Я наивно предположил, что OpenMW будет просто переваривать кириллицу как латиницу )

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

Жалко =( Я наивно предположил, что OpenMW будет просто переваривать кириллицу как латиницу )

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

Жалко =( Я наивно предположил, что OpenMW будет просто переваривать кириллицу как латиницу )

 

Внутри-то в OpenMW UTF-8, только в русской версии названия тем как минимум склоняются по роду, числу и падежу. Один черт словарь синонимов где-то нужен, даже если его внутрь ESP-файла запихнуть.

 

По поводу сортировки тем: алфавитная сортировка тем в OpenMW-CS работает, вот только полноценного редактора диалогов я пока не нашел. Возможно, его там и нет.

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

Внутри-то в OpenMW UTF-8, только в русской версии названия тем как минимум склоняются по роду, числу и падежу. Один черт словарь синонимов где-то нужен, даже если его внутрь ESP-файла запихнуть.

 

По поводу сортировки тем: алфавитная сортировка тем в OpenMW-CS работает, вот только полноценного редактора диалогов я пока не нашел. Возможно, его там и нет.

До меня дошло в чем проблема. Чисто в виде стороннего размышлизма - а если внедрить альтернативный вариант (хотя бы в синтаксисе @<текст ссылки>|<имя темы>#(@ананасового|ананасовый#)) вместо топ-файлов (или параллельно им)?

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

(хотя бы в синтаксисе @<текст ссылки>|<имя темы>#(@ананасового|ананасовый#)) вместо топ-файлов (или параллельно им)?

 

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

Как по мне, лучше уж централизованный словарь (хоть и в виде top-файла).

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

C 11 ноября преимущественно для 0.44.0:

Кортунов:

  • В бою NPC будут смотреть на цель, а не на ближайшего кого угодно, замахиваясь тем временем на игрока
  • Рефакторинг модели вещей (просто перенесены куски логики поднятия, бросания и всего такого, относящегося к вещам, куда надо, в основном)
  • Правильно размещается кнопка "Темы", если она шириной в 128 пикселей, как, например, в немецкой локализации, и если Трибунал не установлен
  • Кириллица в выборе тем по буквам. Ура.
  • Символы возврата каретки не отображаются. В шрифтах, которых глифа для него нет, такие символы отображались бы как тофу (в оригинальном движке вместо таких просто пробел).
  • Фиксы окна торговли.

scrawl:

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

drummyfish:

  • Метательное оружие теперь вращается в полёте
  • Исправлена утечка памяти, возникавшая из-за того, что всплывающие подсказки из неё не удалялись после пропадания

rexelion:

  • Исправлено расстояние, с которого лучники начинают стрелять. Теперь оно не захардкожено, а использует правильную GMST.
  • Скорректировано расстояние, на которое противник будет пятиться.

Андрей делает вот такой поиск заклинаний по названию.

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

Андрей делает вот такой поиск заклинаний по названию.

Оу, выглядит полезно.

Жаль, что заклинания в поиске вылазят всё равно по алфавиту, а не по эмм… релевантности.

Ну типа, при запросе как в примере какой-нибудь "Дятел огня" должен быть выше "Вызова медведя". Но и так норм.

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

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

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

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

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

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

Войти

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

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

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