OpenMW — Открытый Морровинд | Elder Scrolls 3: Morrowind

OpenMW — Открытый Морровинд

OpenMW — Открытый Морровинд

Попытка воссоздать игровой движок Morrowind, полноценную реализацию всех особенностей игры с открытым исходным кодом. Для запуска TESIII с помощью OpenMW понадобятся ресурсы от оригинальной игры.

Особенности проекта:

  • Полноиграбельная реализация Morrowind.
  • Кроссплатформенность, запуск на Windows, Linux, MacOS X.
  • Поддержка уже существующего контента, включая Tribunal и Bloodmoon и львиную долю созданных пользователями плагинов.
  • Значительная модифицируемость: изменение игровой механики, создание новых эффектов заклинаний, доработка ИИ и т. д.
  • Исправление ошибок системного проектирования: «грязные» GMST записи в плагинах, проблема «удвоения» в сейвах.
  • Улучшение интерфейса и игрового дневника.
  • Улучшение игровой механики, физики, боевой системы и ИИ.
  • Поддержка мультиплеера.
  • Улучшение графики путем поддержки функциональности современного аппаратного обеспечения.
Сторонние проекты, основанные на OpenMW:

TES3MP — реализация мультиплеера для OpenMW.
Тема OpenMW на 4PDA — здесь можно найти сборки OpenMW для Android 5+ и гайды по решению проблем.
Патчи, разрабатываемые на форуме FR — здесь форумчане пытаются реализовать функционал, для которого требуется изменение исходного кода движка.
OpenMW для VR — основан на OpenXR, готовые сборки (устаревшие) есть только для Windows.
Порт на Switch — к сожалению, в настоящее время им никто не занимается.

Это очень амбициозный список, и ещё многое предстоит сделать, чтобы эти задачи стали реальностью.
OpenMW выпущен под лицензией GPLv3, весь исходный код написан с нуля. Также используется ряд других инструментов с открытым исходным кодом, прежде всего графический движок OpenSceneGraph и физический движок Bullet.

В чём разница между «старым» и «новым» OpenMW?

Старый OpenMW был написан на языке D с небольшими кусками кода на C++. Позже главный разработчик решил полностью перейти на C++, потому весь код проекта был заново переписан.

Что такое 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.

Каково текущее состояние проекта?

OpenMW уже находится в состоянии «бета»: из основных игровых функций нет только теней (работа в процессе).
Кроме этого есть ряд проблем, в основном, с ИИ и физикой. OpenMW играбелен, хотя и уступает MGE в качестве графики, но выигрывает по стабильности.
Также OpenMW реализует некоторые опции, которых не было в оригинальной игре.

Поддерживаемые платформы

Проект переписан на чистом C++, потому должен работать на большинстве платформ, поддерживаемых OpenSceneGraph и остальными инструментами. В том числе на Windows XP (и старше), Linux, MacOS X, FreeBSD.
Если вы хотите помочь портировать OpenMW на другие платформы, разработчики будут рады видеть вас на форуме проекта.

Какие технологии вы используете?

OpenMW построен с использованием различных библиотек и инструментов с открытым исходным кодом:

  • Язык программирования: C++, GLSL
  • Графика: OpenSceneGraph
  • Физика: Bullet
  • Звук: OpenAL
  • Ввод: OIS
  • Скриптовый язык: Самостоятельная реализация скриптов Morrowind
  • Интерфейс: MyGUI
  • Поиск пути для ИИ: Recast & Detour

Код загрузки ESP/ESM и BSA был написан с нуля, но с помощью документации, созданной сообществом. Кроме того, и код загрузки NIF был написан с помощью имеющейся в сети информации.
Особая благодарность NIFLA/NifTools

Я не программист, как я могу помочь проекту?
  1. Можно просто играть и отсылать багрепорты
  2. Можно тестировать разрабатываемый код, до того, как он попадёт в основную ветку. Там же можно вести обсуждение и предлагать изменения.
  3. Можно тестировать моды. Основная цель — выявить проблемы с совместимостью.
  4. Можно исследовать механики оригинального движка, особенно актуально в области тонкостей работы скриптов.
  5. Можно обновлять Wiki.
  6. PR тоже не помешает, особенно если он позволит привлечь тестировщиков и плагиностроителей.
  7. Можно донатить разработчикам на Patreon’е:

psi29a — проджект лид, поможете закрыть траты на хостинг
Capostrophic — тысяча и один фикс + вагон фич
AnyOldName3 — тени в OpenMW
David Cernat — работа над TES3MP

Главный разработчик Marc Zinnschlag (Zini) о OpenMW 1.0:

Целью OpenMW 1.0 является полная замена Morrowind.exe. Не больше, не меньше. Это также означает, что практически все улучшения оригинальной игры на данный момент исключены. Я настаивал на этом подходе, так как это самый безопасный способ завершить версию 1.0 наиболее быстро.
Релиз 1.0 будет очень важным этапом, ведь OpenMW наконец станет полноценной игрой. Мы надеемся, что OpenMW 1.0 привлечет много внимания, новых разработчиков и активных тестеров.

В некоторых случаях мы можем отклониться от оригинала, даже до релиза 1.0.

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

Во-вторых, мы можем изменять всё, что не является частью внутриигрового опыта. Например, опции командной строки и файлы конфигурации OpenMW выглядят совершенно иначе, чем в Морровинде. Сюда входит и лончер.

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

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

  • Комментариев:
  • Участников:
  • Статистика

Обсуждение в комментариях