LINUX.ORG.RU

Новая версия открытого движка OpenXRay (S.T.A.L.K.E.R.: Call of Pripyat) версии 730

 , ,

Новая версия открытого движка OpenXRay (S.T.A.L.K.E.R.: Call of Pripyat) версии 730

2

2

Минорный релиз версии открытого (не свободного!) игрового движка OpenXRay под номером 730 для Linux.

Список наиболее заметных изменений, по сравнению с предыдущим релизом 558:

Основные исправления:

  • Исправлена отрисовка капель дождя на Linux.
  • Исправлена ошибка сегментирования движка при выходе из игры.
  • Улучшена производительность при отрисовке аномалий.
  • Улучшена сборка мусора Lua (меньше микрофризов в игре).
  • Добавлен режим отрисовки wireframe для OpenGL.
  • Исправлено отображение статистики в команде rs_stats.
  • Бинокль теперь запоминает увеличение.
  • Добавлены ScreenSpace отражения на воде (команда r3_water_refl)!

Перед скачиванием ВНИМАТЕЛЬНО прочитайте инструкцию по установке. https://github.com/OpenXRay/xray-16/wiki/

Напоминаем, что для версии игры из GoG нужно переименовать все файлы и каталоги игровых ресурсов в нижний регистр!

Доступны пакеты для Ubuntu из ppa (https://launchpad.net/~eagleivg/+archive/ubuntu/openxray). (Осторожно, версия из PPA ищет игровые ресурсы в ~/.local/share/GSC/SCOP)

По возникшим проблемам пишите в https://discord.gg/sjRMQwv или в Issues на GitHub.

>>> Сайт проекта

★★★★★

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

утечка чего, если тормозит? основные причины тормозов 3d - отсутствие или фиговый батчинг, излишне частое изменение стейта пайплайна, лишняя синхронизация с процессором

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

Релизация на вулкане влоб, как они сейчас сделали с OpenGL окажется ещё медленнее.

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

У них сейчас драйвер скучает в локах из-за неправильного стриминга

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

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

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

Отключи автоматическую сборку мусора и руками дёргай, когда удобно

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

Что, и рендер в том же потоке? Его, как раз, вынести совершенно не проблема, раз у вас уже апи абстрагированы

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

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

Там же старая lua. Переход на luajit не рассматривался? QuakeC?

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

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

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

Там как раз LuaJit. Заменить на что-то другое - поломаются те полтора мода, которые на этом движке всё-таки запускаются

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

У них дискорд и группа втентакле, лучше спросить там. А движок един был в 2014-м, с тех пор форков наплодили дофига и больше, у каждого проекта считай свой.

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

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

anonymous
()

релиз версии открытого

unless declared otherwise, is commercial GSC Game World proprietary code

Neither binary nor source code redistributions may be used for any commercial purposes

Открытости прям аж вагонами завезли.

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

На всякий случай проясню: https://tldrlegal.com/license/bsd-3-clause-license-(revised)

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

О, а вот это звучит очень интересно, и даже не требует сотни человекочасов. Спасибо, реально дельный совет.

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

Код не смотрел, но звучит как причина «тормозов», которые кто-то отмечал.

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

Сильно помогает dod. Но такой стиль понимать сложнее…

anonymous
()

Заценил, работает нормально. Суть проекта создание порта для линукса? xrOxygen многопоточность пилят, ещё какой-то движок есть, но там вообще непонятно для чего...

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

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

Ну это в теории. На самом деле это просто хороший полигон для тренировки на кошках.

Оксигены пилят свой движок на основе сталкера с сишарпом и лаунчером, RoH пилят кооп сталкера, ЛостАльфа вообще неведомо что:)

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

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

А не легче взять UE4 и научить его грузить уровни, энити, скрипты?

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

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

anonymous
()

Если вкратце-нет, не проще. Уровни и графику - легко. Систему AI (пресловутый A-Life)-проще застрелиться. На крайэнжин раза три пытались, дальше переноса одного уровня с тупыми болванчиками никто не продвинулся.

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

xray_re tools от Бардака

Спасибо. Ты считаешь билды Обливион Лоста смогёт конвертировать? Ладно попробую.

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

Игра изначально собиралась борландовским компилятором, какой интел? После слива исходники адаптировали под msvc…

Дружище, меня сейчас порвёт. ТЫ ШТО НЕСЁШЬ?! Движок и игра с самого их создания ВСЕГДА собирались на MSVC! Даже SDK игры изначально собирался в Visual Studio! Правда, его где-то в 2000-м портировали на C++ Builder, потому что формочки VCL были удобнее на то время, чем другие решения.

Xottab_DUTY
()
Последнее исправление: Xottab_DUTY (всего исправлений: 2)

Минорный релиз версии открытого (не свободного!) игрового движка OpenXRay под номером 730 для Linux.

Это не минорный релиз. Вот нисколечки. Это пре-релиз большого обновления. Сам этот пре-релиз тоже большой.

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

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

eagleivg ★★★★★
() автор топика

Предположительно после знакомства с Ноем начал жёстко падать фпс когда смотришь на Скадовск, причем даже когда он закрыт другим объектом.

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

Папка с сейвами из каталога

~/.local/share/GSC Game World/S.T.A.L.K.E.R. - Call of Pripyat/_appdata_/
Собирал по официальному мануалу на дэбиан, могу apt файл выложить. Ресурсы брал из запрещенного сайта. До появившегося глюка играл на максимальных настройках. Из косяков замечал только:

1) Не регулируется яркость, контраст и гамма в настройках игры.

2) Во время дождя вода бежит по внутренней стенке Скадовска, в оригинале вроде не было такого.

EDIT: Без модов.

lucky_guy ★★★
()
Последнее исправление: lucky_guy (всего исправлений: 1)

Ох и кодстайл у них там, https://github.com/OpenXRay/xray-16/wiki/Cpp-Coding-Conventions.

BAD

    Foo(a + b);
GOOD

    Foo(a+b);

Я аж листать устал, что, сейчас кресты нечем форматировать? Кодстайл, которому следуют вручную, это уже такая редкость.

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

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

TooPar
()
Ответ на: комментарий от lucky_guy

Действительно, тормозит просто адово. Спасибо, будем разбираться.

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

компилируемая Lua — Terra

Там как раз LuaJit. Заменить на что-то другое - поломаются те полтора мода, которые на этом движке всё-таки запускаются

Terra ?

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