LINUX.ORG.RU

OpenMW: порт на OpenSceneGraph готов

 ,


1

5

OpenMW — это свободный движок с открытыми исходными кодами, позволяющий запускать на Linux, Windows и OS X известную компьютерную игру The Elder Scrolls 3: Morrowind, включая как официальные плагины Tribunal и Bloodmoon, так и модификации от сообщества. Работа ещё далека от завершения, а нынешние результаты пока не позволяют полноценно играть.

Перевод новости с официального сайта.

На протяжении последних трех месяцев команда OpenMW усердно работала над портированием кодовой базы с движка Ogre3D на OpenSceneGraph. Мы рады сообщить, что наши усилия по портированию наконец-то принесли плоды — все важнейшие возможности игры были реализованы, таким образом пользователи могут насладиться настоящей игрой в Morrowind используя ветку исходников OpenMW-osg. Некоторые дополнительные возможности, такие как, шейдеры, дальняя местность, тени и отражения воды пока не портированы. Однако даже сейчас можно спокойно сказать, что переход прошел в основном успешно и даже лучше, чем планировалось. Новый OpenMW загружается быстрее, дает больше кадров в секунду, выглядит ближе к оригинальной игре и исправляет старые баги, которые сложны в исправлении на старом движке. Погодите, больше кадров в секунду? Пора тестировать…

Первый бенчмарк
Наша тестовая конфигурация: GeForce GTX 560 Ti/PCIe/SSE2, AMD Phenom(tm) II X4 955 Processor × 4, Linux 3.13.0-24-generic x86_64, 1680×1050, полноэкранный режим, no AA, 16x AF, без отражений воды, без теней, без шейдеров, максимальная дистанция обзора, которую позволяет ползунок настроек.

fps/Время загрузки/Использование памяти
49 / 7c / 344.6 MB (OpenMW)
75 / 3.4с / 277.1 MB (OpenMW-osg)

Видно, что порт OpenSceneGraph выигрывает по всем трем пунктам. Приличное увеличение fps, которое все-таки далеко от 3-4-х кратного улучшения, которые мы видели в ранних тестах с одной моделью. Нет причин беспокоиться, посмотрите на следующее:

  1. Сравнение некорректное. Новые возможности рендеринга, включенные в ветку OSG, которые делают нас ближе к оригинальному Morrowind, влияют на производительность. Например, теперь мы можем динамически расширять границы объектов во время анимации, что исправляет печально известный баг 455 (исчезновение существ при определенном положении камеры), но цена этому — fps. Более того мы выкинули статическую группировку геометрических форм, которая предназначалась для оптимизации производительности, но приводила к множеству проблем — в основном некорректное освещение и неработоспособность заскриптованных передвижений объектов. Даже без этой оптимизации порт OSG работает быстрее!
  2. Ожидайте возросшую производительность при включенных графических эффектах. Сравнение было проведено при минимальных графических настройках по простой причине — некоторые возможности графики (тени, отражения и т. д.) еще не реализованы в порте OSG. Мы думаем, когда они будут портированы это ударит по производительности меньше чем ранее, просто потому что новый рендерер лучше масштабируется. Отрисовка на данный момент выполняется в отдельном потоке, таким образом графически сложная сцена не блокирует основной поток при выполнении таких значительных задач, как выбраковка, физика, скрипты и анимация.
  3. Реальный этап оптимизации еще не начат! Сейчас основная цель — вернуть игру в в играбельное состояние и это случилось только несколько дней назад. Теперь видно множество возможностей для оптимизации. Наш новый фреймворк рендеринга дает нам больше контроля над тем как формируется граф сцены и над тем как отправляются обновления, кое от чего мы только начинаем получать преимущество. Следующие оптимизации запланированы в ближайшем будущем:
    • Перенести обновление(изменение) скининга в отдельный поток.
    • Перенести обновления частиц в отдельный поток.
    • Общее состояние в разных NIF-файлах.
    • Включить выбраковку для источника/программ частиц.
    • Внедрить оптимизатор моделей. Модели в Morrowind неожиданно содержат множество повторяющихся узлов, повторяющихся трансформаций и повторяющихся состояний, которые влияют на производительность рендеринга. Мы должны реализовать подобный этап оптимизации. OpenSceneGraph предоставляет osgUtil::Optimizer, который может быть полезен для выполнения этой задачи.
    • Создать более сбалансированный граф сцены, т. е. дерево квадрантов (дерево, в котором у каждого внутреннего узла ровно 4 потомка), чтобы уменьшить падение производительности от выбраковки очередей сцен(?).
  4. Узкое место не только рендеринг. Говоря, что рендеринг быстрее в N раз, нельзя говорить, что OpenMW быстрее в N раз. У нас имеются другие вещи влияющие на время генерации кадра и сейчас, когда наш рендеринг стал быстрее другие узкие места становятся более заметными. В особенности реализация физики и анимации — две наихудшие проблемы. Некоторые подготовительные оптимизации в данном направлении были осуществлены в порте OSG, но мы не сомневаемся, что еще есть где развернуться.

Предварительный список изменений:
Улучшения рендеринга

  • Непропорциональное масштабирование NPC (Bug 814): некоторое NPC сейчас смасштабированы по осям X и Y, делающих их более объемными — так же как в оригинальном Morrowind. Предыдущие версии OpenMW неподдерживали такой тип масштабирования в связи с ограничением Ogre3D.
  • Улучшенная точность рендеринга: решение проблем с точностью больших координат, выглядящих как моргание/тряска когда игрок путешествует слишком далеко от стартовой точки мира.
  • Удалена статическая группировка геометрических форм — исправлено некорректное освещение (Bug 385), исправлены скриптовые движения объектов (Bug 602) и улучшено время загрузки зоны.
  • Оригинальные параметры прозрачности — предыдущие версии OpenMW использовали настройки прозрачности плохо соответствующих оригинальному Morrowind благодаря статической группировки геометрических форм. Это было исправлено — листва и другие прозрачные объекты имеют более мягкие края.
  • Добавлена опция выборки: в дополнение к выбраковке внеэкранных объектов мы можем теперь также пропускать объекты, которые меньше одного пиксела во время рендеринга. Изменение визуально не заметно, поэтому мы включили эту опцию по умолчанию.

Переработанный NIF-загрузчик

  • Поддержка непропорционального масштабирования в NIF-файлах (Bug 2052)
  • Исправлено ограничение по количеству узлов в NIF-файлах (Bug 2187)
  • Исправлены анимации «заморозка» когда объект отбракован (Bug 2151)
  • Переработан алгоритм скининга(?) для более эффективного графа сцены
  • Динамическое расширение границ объектов на основе скелетной анимации — исправляет исчезновение некоторых существ при просмотре под определенным углом (Bug 455)
  • NIF-графы сцены теперь общий ресурс — значительно уменьшает время загрузки.
  • Анимированный текст теперь общий ресурс.

Переписанная физика

  • При компиляции с Bullet 2.83 или позднее получаем возможность использовать btScaledBvhTriangleMeshShape для эффективного использования фигур.
  • Удалены «детализированные» отрендеренные рейкастингом (метод трассировки лучей) фигуры и заменены на прямой рейкастингом на графической сцене — это уменьшает потребление памяти.
  • Использование btCollisionWorld вместо btDynamicsWorld, чтобы исключить лишние обновления, необходимые для функциональности, которая нам не нужна.

Новый рейкастинг (метод трассировки лучей)

  • Использование osgUtil::IntersectionVisitor для прямого рейкастинга на графической сцене
  • Поддержка рейкастинга для анимированных объектов — исправляет некорректное положение актеров (Bug 827)

>>> Новость на официальном сайте



Проверено: JB ()
Последнее исправление: JB (всего исправлений: 3)
Ответ на: комментарий от dead_PXL

Играбельный теперь ?

Все основные фичи сделаны, многие серьёзные баги и неточности исправлены, совместимость со сторонними плагинами почти 100%. Остались сложные проблемы, в том числе требующие ухода от Ogre3D к OpenSceneGraph, так что после слияния с веткой с OSG можно будет сделать openmw ещё более играбельным.

quiet_readonly ★★★★
()

Сейчас в этом движке найдут фатальный недостаток и начнут переезжать на какой-нибудь Urho3D. Если не можете допилить движок под свои нужды, то не стоило и начинать. Идеальных движков не существует.

anonymous
()

Не собирается.

CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find OpenSceneGraph (missing: OPENSCENEGRAPH_INCLUDE_DIR
  OSGQT_FOUND) (found suitable version "3.2.1", minimum required is "3.2.0")
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindOpenSceneGraph.cmake:234 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  CMakeLists.txt:182 (find_package)

Это из-за того, что в федорке кривой FindOpenSceneGraph.cmake? Как это можно пофиксить? Желательно без пересборки федоркиного cmake.

OpenSceneGraph-devel в зависимости сборки добавлен.

Ivan_qrt ★★★★★
()
Ответ на: комментарий от anonymous

Поддерживаю. OpenHorizon вообще на каком-то nya-engine пилят, а выглядит так, как опенморровинду не снилось.

anonymous
()

Это не тот же проект, который с дэ на цэ++ переписывали? Что они никак не определятся, а?

cdshines ★★★★★
()

игра 2002 года
GeForce GTX 560 Ti
AMD Phenom(tm) II X4 955 Processor × 4
no AA, 16x AF, без отражений воды, без теней, без шейдеров
75 fps

Вот так победа.

anonymous
()

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

Ford_Focus ★★★★★
()
Ответ на: комментарий от slon

slon> зачем вкладывается столько труда и времени в это? Чтобы какой-то школьник поиграл полчаса и выбросил? Не лучше ли вложить эти ресусры в научно-исследовательскую область?

Ты идиот? «Зачем тратить время на доставку грузов, когда можно с нуля спроектировать и собрать межпланетную станцию?».

Quasar ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Morrowind - это не та игра, в которую поиграл и выкинул.

Quasar ★★★★★
()
Ответ на: комментарий от StReLoK

StReLoK> Хотя учитывая что сейчас активно пилят Skywind нужность openmw под вопросом.

Запили мне этот быдлоSkywind на ARM, MIPS и PowerPC, да с оригинальной моровиндовской механикой.

Quasar ★★★★★
()
Ответ на: комментарий от Deleted

Вообще-то тестировали в равных условиях.

Quasar ★★★★★
()

GeForce GTX 560 Ti/PCIe/SSE2, AMD Phenom(tm) II X4 955 Processor × 4 ... без отражений воды, без теней, без шейдеров

fps ... 75

У меня GeForce 2 выдаёт больше. Под Wine

anonymous
()

OpenMW — это свободный движок с открытыми исходными кодами, позволяющий запускать на Linux, Windows и OS X известную компьютерную игру The Elder Scrolls 3: Morrowind, включая как официальные плагины Tribunal и Bloodmoon, так и модификации от сообщества.

А под wine запускать запрещает религия?

weare ★★
()
Ответ на: комментарий от anonymous

anonymous> Не проще ли было портировать на готовый открытый движок?

Ну вот и портировали на OpenSceneGraph. Если ты об игровом движке, то есть одна большая проблема: Morrowind сделан на движке NetImmerse (который потом переименовали в GameBryo). На нём же сделаны Oblivion, Fallout 2, Fallout New Vegas, Skyrim и Fallout 4. Движок на редкость позорный и добровольно выбирают его обычно мудаки. «Посчастливилось» такое, что моровинд на нём сделали, так как в беседке при грамотных геймдизайнерах того времени кодеры - головожопые анацефалы. И вся «прелесть» в том, что сей движок мало на что похож в принципе, поэтому если переносить всё на готовый игровой движок, то трудозатрат будет даже больше, так как всё равно надо будет реализовывать игровую логику и механику, но уже неоптимальными для этого инструментами, и тем самым городить колоссальные конструкции из костылей, которые станут новыми чудесами света.

Quasar ★★★★★
()
Ответ на: комментарий от anonymous

anonymous> А если по теме, то может кто-нибудь внятно объяснить, почему беседка не открывает исходники старого проекта, который больше не приносит прибыли?

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

Quasar ★★★★★
()
Ответ на: комментарий от entefeed

Это не просто мнение - это в EULA написано. А ещё там написан запрет на использование этих ресурсов где-либо кроме оригинальных игр.

Quasar ★★★★★
()
Ответ на: комментарий от g1966464

Но ведь Morroblivion и Skywind как-то живут. Впрочем, тот же Morroblivion беседка уже топила через суд.

А с говноблиззардом смешнее вышло: полностью свободный проект без использования ресурсов от варкрафта - FreeCraft - близзард засудила и заставила закрыть. Движок форкнули как Stratagus, а отдельным проектом сделали конвертер ресурсов из второго варкрафта в Stratagus. Все эти проекты живы.

Quasar ★★★★★
()
Ответ на: комментарий от Ford_Focus

Ford_Focus> возможно для ускорения ребятам стоило бы взять игровой движ, для создания игры-то. тот же анрыл, а скоро и Source2. или idTech4

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

Source 2, кстати, не откроют. Это факт.

Quasar ★★★★★
()
Ответ на: комментарий от weare

weare> А под wine запускать запрещает религия?

Запусти под WINE со всякими MGE. Посмеюсь над тобой.

Quasar ★★★★★
()

Всем кто мне тут написал: Бьюсь об заклад, что когда они доведут порт до состояния, в котором сейчас находится порт на Огр, быстродействие сравняется (в пределах 3-5%).

Ставлю мешок мягкой меди!

Deleted
()
Ответ на: комментарий от anonymous

почему беседка не открывает исходники старого проекта, который больше не приносит прибыли?

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

siphonops ★★★
()
Ответ на: комментарий от Quasar

На нём же сделаны Oblivion, Fallout 2, Fallout New Vegas, Skyrim и Fallout 4.
Fallout 2

Это же опечатка?

Skyrim и Fallout 4

На собственном беседковском Creation Engine

siphonops ★★★
()
Ответ на: комментарий от Deleted

Бьюсь об заклад, что когда они доведут порт до состояния, в котором сейчас находится порт на Огр, быстродействие сравняется (в пределах 3-5%).

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

siphonops ★★★
()

Эти идиотики действительно оценивали рендер сравнивая рендер одной модельки? Когда добавят тени и отражения получат меньше fps чем на огре. Потому что что OSG, что Огр - по сути одни и те же ООП-поделия, принципиально не пригодные для производительности.

Улучшенная точность рендеринга: решение проблем с точностью больших координат, выглядящих как моргание/тряска когда игрок путешествует слишком далеко от стартовой точки мира.

АААА! Ад и тотальный непрофессионализм! Такие вещи делаются в координатах текущего чанка мира. Или наоборот двигают мир вокруг игрока.

ranka-lee
()
Ответ на: комментарий от anonymous

Urho3D кстати единственный достойный свободный движок. На нём что то можно даже делать и оно не будет умирать за пределами сцены с одной моделью.

ranka-lee
()
Ответ на: комментарий от ranka-lee

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

Deleted
()
Ответ на: комментарий от Moderators

Что насчет открытых ресурсов? Кто-нибудь пилит?

Но зачем? Это же не дум какой-нибудь, здесь вся суть не в механике а в контенте.

Gary ★★★★★
()
Ответ на: комментарий от StReLoK

Слишком много контента, я больше верю в то что OpenMW допилят, чем в Skywind.

Gary ★★★★★
()
Ответ на: комментарий от StReLoK

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

ionanahin ★★★
()
Ответ на: комментарий от ranka-lee

Дело же не в возможной производительности огра, или OSG, а в скорости разработки кода, который способен полностью заменить оригинальный движок.
Какой интерес сейчас читать про 30 кадров прироста, если ни та, ни другая версия не осиливает полное прохождение?
Взять, например, любимого многими Prince of Persia. Кому нужен сейчас открытый движок для него, если DOS-версия запускается в том же DOSBox на большинстве платформ?

siphonops ★★★
()
Ответ на: комментарий от StReLoK

ARM

Не очень то и нужен. И скорее всего не потянет.

Ты отстал от тенденций андроидного игропрома. Там уже порты GTA 3, GTA:VС пускают на среднем планшете, а Morrowind в свое время летал на таком железе, которое GTA3 еле запускало.

siphonops ★★★
()

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

hogart
()
Ответ на: комментарий от Csandriel

собственноручно похоронил свое детище, закрыв свои сервера

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

Один из достойнейших продуктов едва не прошел незамеченным, и прошел бы незамеченным, если бы «планируемое развитие» действительно было подчинено только планам маркетологов.

Что? Тут я тебя совсем перестал понимать. По моему, в интересов маркетологов как раз то, чтобы игру заметило (и купило) максимально большое количество людей.

Та же история, я считаю, и с Elders Scrols. Morrowind - пик его развития, я считаю.

Готов спорить, что ты начал знакомство с серией именно с этой части игры.

DarkEld3r ★★★★★
()
Ответ на: комментарий от ranka-lee

Ну а толку если потом снова придётся переделывать?

Готовое можно переделать 1 (один) раз, т.к. все недочеты и слабые места уже известны, все грабли хожены, список, того, что было сделано не так - составлен. А не готовое можно переделывать до бесконечности и находить у каждого нового выбранного инструмента недочеты.
P.S. Но я, конечно, не претендую на указывание разработчикам. Их цель, вероятно, в приобретении бесценного опыта и получении удовольствия от процесса. Если это так, то они на верном пути.

siphonops ★★★
()
Последнее исправление: siphonops (всего исправлений: 1)
Ответ на: комментарий от slon

вопрос даже звучит так: какой смысл тратить существенную часть своей единственной жизни на какую-то игрульку? Какой профит?

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

abtm
()
Ответ на: комментарий от ranka-lee

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

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

Zidane
()
Ответ на: комментарий от anonymous

То есть про Stargus ты не в курсе?

В курсе. Если верить их сайту, там и половины фич нет, и последний релиз в 2012, последний коммит - в 2013.

Divius ★★
()
Ответ на: комментарий от slon

Чтобы какой-то школьник поиграл полчаса и выбросил?

Я залипал в него на несколько десятков часов, еще в 0.33 версии.

kachan ★★
()
Ответ на: комментарий от anonymous

прибыль и открытие не как не связаны

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

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

Ну и да, Адоб может открыть исходники фотошопа 10 летней давности без потери прибыли. Так же как и открытие исходников оффис 98 вряд ли приведет к потере прибыли майкрософт.

Toll ★★
()
Ответ на: комментарий от Toll

Открыть исходники само по себе море труда при отсутствии пользы. Нельзя просто так выкинуть на гитхаб несоберающуюся без оркестра бубнов лапшу из костылей, приправленную ворованным кодом, не говоря уже про зависимости от мидлвари, сдк которой дают только крупным девелоперам. Собственно, в основном это, после вопроса «но зачем?» мешает выложить исходники даже никому не нужного старья.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.