Proton: Инженеры-космонавты - 244850 чел.

Созданный на 20 окт. 2018  ·  531Комментарии  ·  Источник: ValveSoftware/Proton

Последняя версия Space Engineers от Steam с идентификатором приложения 244850, похоже, требует патча, который есть у Wine-staging.

Да, я не упомянул свои системные характеристики, поскольку это не важно для этой проблемы. (Протон 3,16)

Я подтверждаю:

  • [x], что я не нашел существующего отчета о совместимости для этой игры. (Не специально для этой игры и не специально для этой ошибки, хотя ее можно рассматривать как исправление)
  • [x], что я проверил, доступны ли обновления для моей системы.

Симптомы

Space Engineers использует функцию GetCurrentPackageId. SE вылетает с ошибкой en, которая говорит, что функция была вызвана с неправильным параметром. Это вызвано ошибкой в ​​Wine, которая была проигнорирована, Wine-staging действительно включает исправление для решения этой проблемы. У меня недостаточно опыта, чтобы отправить запрос на перенос, и я не смогу скомпилировать протон, так как я некомпетентен.

Размножение

Воспроизведение действительно просто, скачайте Space Engineers из Steam, установите .net 4.7, как описано здесь . После успешной установки .net и работы обратной связи с преобразованием вы должны получить такое сообщение об ошибке

Unhandled Exception: 00bb:fixme:ver:GetCurrentPackageId (0x53a800 (nil)): stub System.ArgumentException: Parameter is not valid. at System.Drawing.Image.get_Flags() at System.Windows.Forms.ControlPaint.IsImageTransparent(Image backgroundImage) at System.Windows.Forms.Control.set_BackgroundImageLayout(ImageLayout value) at Sandbox.MyMessageBoxCrashForm.InitializeComponent() at Sandbox.MyMessageBoxCrashForm..ctor(String gameName, String logPath) at Sandbox.MyErrorReporter.ReportGeneral(String logName, String gameName, String id) at Sandbox.MyCommonProgramStartup.PerformReporting() at SpaceEngineers.MyProgram.Main(String[] args) wine: Unhandled exception 0xe0434352 in thread bb at address 0x7b44b08c (thread 00bb), starting debugger... Unhandled exception: 0xe0434352 in 64-bit code (0x000000007b44b08c).

Это можно легко решить, установив патч вверх по течению для Wine (может быть, есть веская причина, почему он не находится в апстриме), или мы можем применить патч непосредственно к протону.

.NET .NET-winforms Game compatibility - Unofficial Regression XAudio2

Самый полезный комментарий

Как и просили ранее, у нас теперь есть специальный канал, посвященный SE в Linux, на нашем официальном KSH Discord. Не стесняйтесь присоединиться к нам там:
https://discord.gg/keenswh

Все 531 Комментарий

Кстати, я могу подтвердить, что Space Engineers действительно работает с вином, так как я смог запустить SE с Wine-staging 3.18 без dxvk. Он действительно дает сбой, поскольку API wined3d11 не может запускать SE достаточно долго, чтобы играть, казалось, что он дает сбой в случайные моменты времени, но это указывает мне на то, что SE должен работать, как только мы исправим протон.

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

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

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

Я разместил ссылку на эту ветку на официальной странице поддержки Space Engineers. Посмотрим, есть ли у кого-нибудь там идеи.

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

https://support.keenswh.com/spaceengineers/general/topic/improve-compatibility-with-steam-play-and-proton-linux-mac

Нет, вы меня неправильно поняли, позвольте мне объяснить еще немного. SE использует .NET 4.7.1 , которая сломана в вине, но это может быть сделано , чтобы работать с обходным и немного удачи. Вот необходимое обходное решение. Затем SE использует Stream Output / Transform Feedback, который является устаревшей функцией в DX11 и, вероятно, был перенесен из модуля рендеринга DX9, который SE использовал в прошлом. Теперь Vulkan недавно получил это расширение "VK_EXT_transform_feedback", которое позволяет Stream Output работать в Vulkan, поэтому DXVK теперь поддерживает Transform Feedback, поэтому SE должен работать в Wine, но Wine по-прежнему нуждается в патчах, чтобы раскрыть это расширение. У Proton уже есть эти патчи, думаю, я не уверен, не цитируйте меня. Вино Mainline получит в следующем выпуске, поскольку оно уже поставлено, а это значит, что оно также получат винные постановки. Теперь у Wine-staging есть патч, который позволяет запускать SE под opengl, но он все равно вылетает, поскольку opengl не может поддерживать графический движок. Проблема в протоне не связана с обратной связью преобразования. Я не могу определить патч, который за это отвечает, так как на самом деле не знаю, в чем проблема. Я декомпилировал SE и посмотрел на код, вызывающий сбой, на основе трассировки стека, предоставленной средой выполнения .net, и не вижу четкой причины, по которой он дает сбой. Позже выложу соответствующие функции.

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

Может кто поможет? Я не уверен, что искать в этих патчах.

https://stackoverflow.com/questions/11796082/invalid-parameter-when-setting-an-image, и это, похоже, связано, я не приблизился к тому, чтобы понять это.

строка 914, похоже, является проблемой, это единственное, что я вижу, GdiPlus.dll - это собственная DLL-библиотека для вина, как можно увидеть здесь

GetGdiImageFlags возвращает недопустимый параметр, если изображение или флаги пусты, как можно увидеть здесь , строка 5219, поэтому он, вероятно, обнуляется либо где-то в .net, либо при передаче в собственную библиотеку из Wine.

Я думаю, что нашел, если я правильно это понимаю,

GpStatus WINGDIPAPI GdipGetImageFlags(GpImage *image, UINT *flags)
{
    TRACE("%p %p\n", image, flags);

    if(!image || !flags)
        return InvalidParameter;

    *flags = image->flags;

    return Ok;
}

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

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

Я не уверен в юридических последствиях, но Space Engineers предоставляет видимое / открытое лицензионное соглашение для своего исходного кода на github, если вы можете просмотреть его, поэтому вам не нужно декомпилировать.
Возможно, стоит взглянуть, кошерно ли оно, чтобы выяснить, что взорвалось, и заняться вином.

https://github.com/KeenSoftwareHouse/SpaceEngineers/blob/master/EULA.txt

Редактировать:
У них действительно есть пункт о совместимости, который относится к винам как «совместимость».

Подождите несколько месяцев, пока Valve не обновит версию Wine, которую использует Proton. Valve имеет несколько патчей поверх Wine и нуждается в тестировании на стабильность, поэтому есть причины, по которым Valve не обновляет немедленно версию Wine, которую использует Proton.

@SpookySkeletons Этот исходный код не обновлялся с 2016 года.

@aaronfranke
Это влияет на ванильное вино так же, как и на протон, и тот, кто прибывает первым, может перейти к другому.
Космические инженеры годами были главной проблемой в любой обертке, даже когда она работала, она оставалась устойчивой, как стул на двух ножках.

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

6421.401: 0031: 0032: trace: module : load_dll Загруженный модуль L "C: \ windows \ assembly \ NativeImages_v4.0.30319_64 \ mscorlib \ 386b8793866138dad77588a7399d11c3 \ mscorlib.ni.dll" (собственный) по адресу 0x64478000000
Библиотека загружается по адресу 0x64478000000
Здесь крутится какая-то функция, разделяя очень близкое конечное пространство памяти с mscorlib.ni.dll:

6421.486: 0031: 0032: trace: seh : RtlVirtualUnwind тип 0 рип 64478454d69 rsp 53b5d0
6421.486: 0031: 0032: трассировка: seh : dump_unwind_info * * func 454cf0-454da3
6421.486: 0031: 0032: trace: seh : dump_unwind_info развернуть информацию в 0x644785364bc flags 3 пролог 0x10 байт функция 0x64478454cf0-0x64478454da3
6421.486: 0031: 0032: трассировка: seh : dump_unwind_info 0x10: subq $ 0x68,% rsp
6421.486: 0031: 0032: трассировка: seh : dump_unwind_info 0xc: pushq% rbx
6421.486: 0031: 0032: трассировка: seh : dump_unwind_info 0xb: pushq% rsi
6421.486: 0031: 0032: трассировка: seh : dump_unwind_info 0xa: pushq% rdi
6421.486: 0031: 0032: трассировка: seh : dump_unwind_info 0x9: pushq% r12
6421.486: 0031: 0032: трассировка: seh : dump_unwind_info 0x7: pushq% r13
6421.486: 0031: 0032: трассировка: seh : dump_unwind_info 0x5: pushq% r14
6421.486: 0031: 0032: трассировка: seh : dump_unwind_info 0x3: pushq% r15
6421.486: 0031: 0032: трассировка: seh : dump_unwind_info 0x1: pushq% rbp
6421.486: 0031: 0032: trace: seh : обработчик dump_unwind_info 0x644783da000 данные в 0x644785364d8

Похоже, что mscorlib.ni.dll - это компонент .NET framework, который известен своей нестабильностью под вином. Возможно, вам повезет с использованием winetricks для возиться с dotnet, но, надеюсь, Итан Ли разработает лучшее решение в будущем.

С Mesa 18.3.1 с примененными здесь патчами для поддержки Transform Feedback и с помощью winetricks для установки .NET 4.7.2 я очень близко подошел к тому, чтобы игра работала с использованием DXVK. Игра дошла до главного меню, работает со скоростью 120 кадров в секунду, и курсор мыши загружается. Однако игра вылетает до появления фонового видео и кнопок меню.

Сообщения журнала кажутся очень важными в этом случае. Предупреждение DXVK, похоже, тесно связано с тем, что произошло с Wine:

SpaceEngineers_dxgi.log

SpaceEngineers_d3d11.log

steam-244850.log.gz

SpaceEngineers.log

VRageRender-DirectX11.log

Моя системная информация. Обратите внимание, что это показывает другую версию Mesa, потому что сейчас 32-битная и 64-битная сборки Mesa отличаются.

Мне удалось добраться до игрового процесса с помощью винных, dxvk, проприетарных драйверов nvidia. Все воксели были ужасно искажены, и мне не удалось воспроизвести их с тех пор, как обновлялось вино.

@FurretUber
Последняя версия игры блокируется через минуту или более. Отключитесь от пересмотра многопользовательской игры на вкладке бета-версии, и она будет работать.

Я только что обновил свой GC до NVIDIA GeForce GTX 1060, и все мои игры Steam работают через steamplay, кроме SE. Я нажимаю кнопку воспроизведения, и SE пытается запустить, затем останавливается. Нет сообщения об ошибке, нет звука и нет игрового окна. Я перепробовал все протонные версии, которые будет запускать steamplay. После прочтения этой ветки я по крайней мере знаю, что многие люди пытаются в этом разобраться. Похоже, нужна новая версия протона и вина. Я надеялся, что смогу использовать уловки или что-то в этом роде, но это могло быть сложнее. Это облом. Может быть, библиотека или несколько библиотек с winecfg?

Эта игра может запускаться с Wine 4.3 и DXVK 1.0 - но вам понадобится .NET 4.7.2 в качестве дополнительной установки.
Установщик Lutris для игры безупречно работает для новых установок.
Если у вас есть текущая установка космического инженера, она может не работать, мне еще предстоит выяснить, почему это так.
После этого вы можете играть в игру, но небольшие ошибки все равно будут, например:

  • Сбой, когда вы влетаете в другие корабли или камни со скоростью 20+ м / с (появляется инструмент отчета для SE)
  • После заставки вам нужно щелкнуть мышью пару раз, чтобы попасть в главное меню, так как кинематографический ролик не будет воспроизводиться, иначе у вас будет только черный экран.
  • Незначительные звуковые заикания, которые в основном были исправлены в Wine 4.3, но будут исправлены по мере дальнейшего развития faudio.
  • Экраны медленной загрузки в начале из-за новых шейдеров необходимо кэшировать.

Вставьте сюда логи при запуске и столкновении с планетой, из-за чего игра вылетает.
https://pastebin.com/tPC8y3tK

Я так понимаю, последняя бета-версия протонов еще не Wine4.3? поэтому он не будет работать напрямую через Steam?

Мне удалось заставить работать космических инженеров. Он определенно не в хорошей форме, но работает. Мне пришлось:

1) Установите dotnet472 на Space Engineers WINEPREFIX;
2) Создайте FAudio с поддержкой xWMA и библиотеками в каталогах, отличных от стандартных. Эта сборка FAudio должна работать с Megadimension Neptunia VIIR ;
3) Сделать встроенный libFAudio.so для использования космическими инженерами, заменив Proton на lib64 или LD_PRELOAD;
4) Убедитесь, что видеодрайверы поддерживают Transform Feedback, как Mesa 19.1.0-devel для Intel Gen9;
5) Убедитесь, что встроенная библиотека FAudio не будет работать! Он не может найти нужные библиотеки при запуске Space Engineers;
6) Космические инженеры должны работать, но без звука .

Есть несколько ошибок, связанных с графикой, так как открывающееся видео, которое не загружается, по краям этот эффект из-за шлема ошибочен, даже тогда это здорово, учитывая, что графический процессор - это Intel HD Graphics 520 и до недавнего времени имел ошибки в Windows 10.

Происходит много ошибок относительно генерации ландшафта, все планеты и луны - адские пейзажи.

Картинки:

Captura de tela_2019-03-17_23-00-38

Captura de tela_2019-03-17_22-16-08

unknown (4)

У меня вроде получилось, но fps в меню была очень медленной (никогда не удосужился играть), а звук потрескивает. Я использовал https://github.com/Kron4ek/FAudio-Builds, но, возможно, он не установился правильно.

РЕДАКТИРОВАТЬ: на этот раз не установил faudio, и нет звука, поэтому я, должно быть, установил его правильно. Возможно, главное меню делает это потому, что оно работает, но, как вы отметили, генерация ландшафта полностью запуталась.

Если вы устанавливаете через Lutris (да, я знаю), у него tkg-сборка Wine 4.4
с F-Audio, который творит чудеса.

В среду, 20 марта 2019 г., в 3:25 jarrard [email protected] написал:

Я вроде как заработал, но fps в меню был очень медленным (никогда не беспокоил
play) и звук потрескивает. я использовал
https://github.com/Kron4ek/FAudio-Builds, но, возможно, не удалось установить
правильно.

-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment-474658732 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AHuHtRix32b6V_NKrATqj1t79SVRJY1Kks5vYZwdgaJpZM4XyGNi
.

Я постараюсь сообщить о своих выводах, жаль, что вы не можете скачать вино
строит из лютриса, без лютриса

В вс, 24 марта 2019 г., 15:09 Maltahl [email protected] написал:

Если вы устанавливаете через Lutris (да, я знаю), у него tkg-сборка Wine 4.4
с F-Audio, который творит чудеса.

В среду, 20 марта 2019 г., в 3:25 jarrard [email protected] написал:

Я вроде как заработал, но fps в меню был очень медленным (никогда не беспокоил
play) и звук потрескивает. я использовал
https://github.com/Kron4ek/FAudio-Builds, но, возможно, это не удалось
установить
правильно.

-
Вы получили это, потому что оставили комментарий.
Ответьте на это письмо напрямую, просмотрите его на GitHub
<
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment -474658732
,
или отключить поток
<
https://github.com/notifications/unsubscribe-auth/AHuHtRix32b6V_NKrATqj1t79SVRJY1Kks5vYZwdgaJpZM4XyGNi

.

-
Вы получаете это, потому что вы являетесь автором темы.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment-475963063 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AHonVxCEiLofIF2Jsbrz-HZMdIWpKfgyks5vZ4c2gaJpZM4XyGNi
.

Скопировал wine4.4 faudio, протонировал в мою пользовательскую папку Steam compat, переустановил игру и dotnet472, загрузился, звука нет.
Игра выглядит так, как будто она может работать лучше, но в ней происходит заикание, возможно, виноват нефункциональный звук.
В любом случае, похоже, не удалось исправить мою проблему со звуком, вероятно, нужно установить предварительно скомпилированные бункеры откуда-то в пользовательскую папку протонов, я нахожусь в арке, поэтому, вероятно, скомпилированные на других дистрибутивах не будут работать.

РЕДАКТИРОВАТЬ: Я создал собственный faudio с поддержкой ffmpeg, все еще не повезло со звуком, вероятно, что-то не так, пожимаем плечами. В любом случае игра неиграбельна, ИМО, все карты баз планет не работают / ломаются, есть заикание и сбои .. Может быть, однажды.

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

В вс, 24 марта 2019 г., 23:59 jarrard [email protected] написал:

Скопировал Wine4.4 faudio, протонированный в мою пользовательскую папку Steam compat,
переустановил игру и dotnet472, загрузился, звука нет.
Игра выглядит так, будто она могла бы работать лучше, но в ней есть заикание,
может быть виноват нефункциональный звук.
В любом случае, похоже, моя проблема со звуком не решена, возможно, необходимо установить
предварительно скомпилированные бины откуда-то в папку пользовательских протонов, я нахожусь на арке
поэтому, скорее всего, скомпилированные на других дистрибутивах не будут работать.

-
Вы получаете это, потому что вы являетесь автором темы.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment-476010132 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AHonV0PNKjPrMbFLzUDFBzbXqp2ZjOUNks5vaANBgaJpZM4XyGNi
.

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

Когда я скопировал свой файл libFAudio.so в пользовательскую папку proton_wine и загрузил SE, он просто установил все мои настройки громкости на ноль и не сохранял их при повышении, так что что-то было промахом.

НО, как я уже сказал, у игры есть серьезные проблемы под Linux, так что я не мог бы реально играть в атм, если только это не чисто космическое выживание без лун или планет!

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

В пн, 25 марта 2019 г., 06:51 jarrard [email protected] написал:

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

Когда я скопировал свой файл libFAudio.so в пользовательскую папку proton_wine и
загрузил SE, он просто установил все мои настройки громкости на ноль и не сохранял
если рейзит, значит что-то промахивается.

НО, как я уже сказал, в игре есть серьезные проблемы, так что я не мог
реалистично играть в атм, если только это чистое космическое выживание без лун или
планеты!

-
Вы получаете это, потому что вы являетесь автором темы.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment-476063606 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AHonVxB8URy1FGMFsPoU2eRKq1dVFeg6ks5vaGP8gaJpZM4XyGNi
.

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

Если вы посмотрите журнал ошибок в игре, в нем говорится, что местность слишком сложная и т. Д. В этих случаях, проверьте это.

да, вино с отчетами о доступной памяти, ядрах и прочем не очень хорошее.

В понедельник, 25 марта 2019 г., в 6:55 jarrard [email protected] написал:

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

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

-
Вы получаете это, потому что вы являетесь автором темы.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment-476064274 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AHonV9U7V6QwDB69qwGpkGR_avGmUh7Jks5vaGTdgaJpZM4XyGNi
.

У меня i7 4790k, 16 ГБ ОЗУ и GTX 1080. Игра запускается с использованием скрипта lutris с вином 4.4, FAudio и DXVK, производительность хорошая, 1440p @ 60FPS :

  • карты планет не работают ни в одиночной, ни в многопользовательской игре
  • музыка отсутствует
  • во время игры наблюдается периодическое, очень регулярное заикание, которое очень раздражает
  • игра зависает через 30-60 минут после начала игры, казалось бы, случайно, а затем вылетает

Я не думаю, что на этом этапе можно играть

Возможно, я выяснил, почему ландшафт создается неправильно. Похоже, что карты высот, используемые игрой, неправильно считываются игрой или вином / протоном или чем-то в этом роде ... Я получил рельеф для создания на чужой планете, открыв карты высот ландшафта (файлы с именем front.png back.png left .png right.png up.png down.png Находится в ~ / SpaceEngineers / Content / Data / PlanetDataFiles / Alien /) и без изменения фактического изображения сохранил их с новыми параметрами. Я использовал GIMP версии 2.10.6, чтобы перезаписать файлы со следующими параметрами.
SettingsScreenshot

Как ни странно, при использовании камеры наблюдателя для полета на местную луну (к которой я не применил исправление) игра просто зависала, вместо того, чтобы создавать шипы на местности.
Ниже приведены скриншоты из рабочей игры:
Spectator Base
Spectator High
Spectator mountains

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

Примечание: моя игра постоянно вылетала при попытке исправить эти ошибки, но время, когда я смог войти в игру, не вылетало во время игрового сеанса, за исключением случаев, когда я был на Луне, и игра зависла. После этого я не мог заставить игру загрузить сохраненную игру или начать новый мир без блокировки. Как только я удалил и воссоздал префикс, игра снова заработала.

Там очень приятно устранять проблемы. Итак, нам нужен proton / wine, чтобы понять, почему он не может правильно читать эти PNG-файлы. Это может быть связано с неприятной ошибкой в ​​самом вине, неспособной прочитать определенные настройки для этих файлов!

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

@ Linux74656
Как может материал png неправильно интерпретировать png?

Это объяснило бы происходящие сумасшедшие вещи с высокими и низкими частотами ... Возможно, это просто усечение с 16 до 8-битного int ...

Что происходит с 8bpc против 16 bpc и выключением сжатия по сравнению с максимальным сжатием?

Возможно, стоит попросить быстрое исправление у разработчиков KSH, поскольку это, похоже, не повлияет на базовую игру, сделав эту настройку. Однако теперь, когда мы знаем проблему, стоит исправить это в апстриме Wine.

Самое главное для его исправления, какую png lib использует вино ?

Я не уверен, что использует png lib wine, но если вы установите компонент MS Windows Imaging Component (windowscodecs) с winetricks в префиксе игр; большинство изображений игр (значки, эскизы и т. д.) розового цвета, а местность рендерится полностью плоской.

Я попробовал предложение от @SpookySkeletons Прикрепленные изображения из сжатых 8bpc GREY и 16bpc Gray (без сжатия как сжатые не имели никакого значения в любом случае). Похоже, что 16bpc работает аналогично исходным изображениям, предоставленным с игрой.
MaxCompression 8bpc gray

16bpcGray

Как ни странно, при тестировании 16bpc Gray (как сжатого, так и несжатого) игра не запускала сценарий Alien Planet, он продолжал зависать при загрузке. Я обошел это, запустив сценарий «Пустой мир» в творческом режиме и создав планету.
После этого я решил сравнить исходный файл с модифицированными. Я использовал инструмент под названием tweakpng (только для Windows, но без проблем работает в Wine), чтобы просмотреть данные заголовка как png, поставляемого с игрой, так и того, который я модифицировал с 8bpc.
Файл, который поставляется с космическими инженерами, действительно использует оттенки серого 16bcp.
Unmodified Space Engineers
В то время как модифицированный, как и ожидалось, использует оттенки серого 8bcp.
Modified

Я думаю, что они (Keen Software House) используют 16bcp, потому что это позволило бы увеличить глубину цвета серой шкалы и, возможно, обеспечить более плавный ландшафт, хотя, не имея возможности протестировать генерацию ландшафта 16bcp в игре, я не могу сказать наверняка.

Так загружается ли игра только с WINED3D (dxvk отключен) и правильно ли она читает ландшафт 16bcp? Если это невозможно сделать, возможно, DXVK можно протестировать под windows10, чтобы увидеть, виноват ли он в этом или виновата сама Wine.

Важно знать, должна ли команда DXVK или WINE получать отчет об ошибке.

Игра вылетает при использовании DirectX (PROTON_USE_WINED3D = 1) с сообщением об ошибке.
Screenshot from 2019-04-02 21-46-36

Когда я нажимаю пустое поле перед тем, как нажать на сообщение об ошибке, я слышу музыку главного меню Space Engineers и звук кнопки.

Если кто-то сможет заставить DXVK запускать эту игру в Windows, это будет здорово. А пока я буду продолжать пытаться получить PROTON_USE_WINED3D = 1 для получения положительных результатов.

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

Я думаю, что Кин выбрал 16 бит специально, чтобы подобрать градиент высоты как можно ближе к изображению 2048x2048, по сравнению с 256 градациями 8 бит.

Я не вижу какой-либо неточности в отображении высот, хотя, используя этот обходной путь ... Возможно, сам движок в первую очередь ожидает субдискретизации с 16 до 8 или применяется неявно, что и вызывает это в первую очередь.
Кин, кажется, применяет чрезмерную точность к процессу, который отбрасывает дополнительную точность.

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

@jarrard Я попытался установить карту для AMD RX480 VideoPciDeviceID на 10de (шестнадцатеричный) и VideoPciVendorID на 1002 (шестнадцатеричный), но все равно получил ту же ошибку. Однако мне удалось запустить игру, запустив SpaceEngineers.exe с установленным вином 4.5 и d3d11_43. Игра попала в главное меню, но зависает при попытке загрузить сценарий.

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

А пока я буду пытаться заставить космических инженеров работать с d3d11.

У меня WINED3D работает, но не через пар или протон. Я удалил старую приставку и создал новую с помощью steam. Затем я установил весь редист dx11 от Microsoft, а также обычные dotnet472 и xact. Мне также пришлось заставить космических инженеров работать в оконном режиме, поскольку в противном случае он постоянно зависал и падал. Я смог преодолеть заморозку загрузки, начав новый пустой мир вместо того, чтобы идти прямо на планету Чужих. Я использовал меню возрождения, чтобы добавить инопланетную планету для обоих миров (результаты на картинках ниже)
Screenshot from 2019-04-03 01-45-00
Screenshot from 2019-04-03 01-53-58

16bpc не работает в WINED3D, а 8bpc все еще работает.

РЕДАКТИРОВАТЬ: Я искал подобные проблемы в WineHQ, когда наткнулся на этот отчет об ошибке:
https://bugs.winehq.org/show_bug.cgi?id=46558
Комментарий 8 Ссылается на эту ветку и временное исправление, поэтому они определенно знают, что происходит. Будем надеяться, что они в этом разберутся! :улыбка:

Что касается проблемы заикания, я пробовал разные вещи, чтобы посмотреть, смогу ли я сузить ее.
Проблема заикания существует как в WINED3D, так и в DXVK (я заметил, что DXVK использует меньше ресурсов ЦП по сравнению с реализацией винного D3D). И проблема, кажется, возникает с одинаковыми интервалами, независимо от того, какие настройки графики я использую.

Я пробовал различные настройки процессора и получил следующие результаты.
Я установил свой процессор (i7 4770k) так, чтобы он запускался только с одним ядром (использовал BIOS для отключения всех ядер, кроме одного, и без гиперпоточности). Игра загружалась дольше, но когда она появлялась в мире, казалось, что заикание не изменилось.

Затем я понизил тактовую частоту (4,2 ГГц - это то, на чем я обычно запускаю его) свой процессор до 2,5 ГГц (со всеми ядрами и повторно включенной гиперпоточностью). Заикание все еще происходило с тем же интервалом, но продолжительность заикания была заметно хуже, чем заикание, которое длилось доли секунды, оно, казалось, длилось секунду или больше.

Затем я разогнал свой процессор до 4,5 ГГц, и заикание все еще происходило с тем же интервалом, но было немного менее заметно, чем при скорости 4,2 ГГц, на которой он обычно работает.

Так может быть проблема в ветке обновления игры? Выполняет ли игра вычисления через заданные интервалы и перегружает ли процессор? Если да, то почему это будет заметно в Linux / wine / proton по сравнению с незаметным в Windows?

Я связался со службой поддержки Keen и рассказал им о проблемах, с которыми мы сталкиваемся. Я назвал им три основных проблемы, с которыми это работает в Linux (ландшафт, заикание и звук), и объяснил, в чем проблема с ландшафтом. Я также связал их с этой веткой. Они ответили чем-то вроде того, что следят за Linux, но в настоящее время не планируют никаких изменений. Я думаю, что пока мы сами по себе.

Может быть, вы можете записать apitrace и опубликовать его на форуме DXVK? Вы думаете, что все еще может быть исправлено в конце DXVK?

Хорошо, я открыл проблему и сослался на эту ветку.

ОБНОВЛЕНИЕ: проблема не в DXVK. Значит, наша проблема, скорее всего, не связана с графикой.

Краткое примечание для тех, кто хочет избавиться от раздражающего черного экрана и необходимости щелкнуть, чтобы запустить игру, чтобы запустить главное меню: вы можете переименовать (просто добавьте .old в конец файла) файл здесь: ~ SpaceEngineers /Content/Videos/KSH.wmv и игра запускается более нормально. Я даже получаю несколько загрузочных изображений, когда игра запускается в полноэкранном режиме.
20190405125148_1

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

Если вы конвертируете музыку из главного меню (~ / SpaceEngineers / Content / Audio / MUS / se_mainmenu1.xwm) в формат mp3 (но убедитесь, что имя и расширение файла такие же, как у исходного, IE se_mainmenu1.xwm), тогда будет нет лагов в главном меню, хотя музыку не играет. Если вы просто удалите файл, отставание в меню все еще существует, и не воспроизводится. Поэтому, если вы дадите игровому движку тип звукового файла, он не сможет распознать, похоже, проблема с запаздыванием меню решена.

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

Если вы откроете исходный файл se_mainmenu1.xwm в VLC, произойдет такое же заикание, что и в игре.

Разве файлы XWM не являются дерьмовым форматом файлов Microsoft?

Да, fallout4 / skyrim, все игры, в которых раньше были проблемы со звуком, использовали этот формат xaudio2.

У меня были серьезные проблемы с Fallout 4, особенно со звуком. Но со временем он стал лучше, и я не вижу в Fallout 4 такого же заикания, как в SpaceEngineers. Теперь вопрос ... Почему это, казалось бы, вызывает проблему в Space Engineers, а в Fallout 4 такой проблемы нет?

Вы пробовали отказаться от FAudio и просто установить MS xact или xaudio, что бы это ни было, через winetricks? это то, что я использую, чтобы заставить работать звук в Fallout4 (в конечном итоге он отключился)

Может, стоит попробовать.

В настоящее время я использую xact для космических инженеров. Мне никогда не удавалось заставить космических инженеров загружать только с помощью Faudio (таможенные сборки Winetricks или Kron4eks).
Я только что проверил, музыка в главном меню Fallout 4 не заикается в игре, но если вы извлечете MUS_MainTheme.xwm из Fallout4-Sounds.ba2 и проиграете его с помощью vlc, то будет такое же заикание звука, что и в космических инженерах.

Я больше не уверен, является ли заикание в игре проблемой звука. После того, как я был слишком разочарован, чтобы разобраться со звуком, я вместо этого попытался вернуться и посмотреть, в какой версии игры возникла проблема. Заикание в игре существует вплоть до версии 1.172 (которая появилась еще на вкладке бета-версии Steam). Но проблемы со звуком в главном меню в этой версии нет. На самом деле проблема со звуком в главном меню появилась только в версии 1.188 игры. Но заикание в игре присутствует во всех версиях, доступных на вкладке бета-версий.

Вот кое-что, относящееся к космическим инженерам, надеюсь, вас это развлечет. Пока ждем решения.
https://gist.github.com/Linux74656/6093bd3fe9457f29f2f544681a262572

Ошибка вокселя - это ошибка windowscodecs в вине. Я описал ошибку и приложил исправляющий патч на https://bugs.winehq.org/show_bug.cgi?id=46558. Проверено, работает у меня на пару под вином. Я полагаю, Proton будет работать так же с обновленной windowscodecs wine-dll.

Да, но как насчет проблем с заиканием и искажением звука?

@jarrard работает для меня с использованием https://github.com/Kron4ek/FAudio-Builds - я предполагаю, что встроенные в вино и протонные версии слишком старые.

@kainz, у вас остались какие-то неисправности в игре с последними сборками FAudio и вашим патчем windowscodecs? Или хорошо работает?

Тени @ fazo96 плохо работают, поэтому я играю с отключенными, и у меня все еще случаются сбои dotnet.

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

Вот предварительно скомпилированный файл windowscodecs.dll.so с патчем из связанной ошибки. Поместите это в каталог Proton 4.2 / dist / wine / lib64, перезаписав существующий файл.

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

windowscodecs.zip

У меня игра не запускается через Steam. Вам все еще нужен .NET 472 для установки последней версии Proton? также faudio все еще устарел с протоном?

Это то, что мешает ему загружаться? почему у Faudio нет поддержки WMV
включен по умолчанию? есть отрицательные побочные эффекты?

Опять же .net все еще нужен?

Пт, 26 апреля 2019 г., в 16:57, lucifertdark [email protected] написал:

Я собираю Faudio из исходников, чтобы добавить поддержку WMV, это действительно просто и
быстрый.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment-486956240 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AEE7DLTBNX7CLOZAPUK3FYDPSKVFNANCNFSM4F6IMNRA
.

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

Вам еще нужен dotnet472 да. Мне нужно было указать -q при установке через protontricks.

Последняя сборка FAudio у меня тоже не работает, просто все равно вылетает. xact вроде исправляет иш, но звука нет.

И еще я наблюдаю это периодическое заикание.

Это связано лишь частично, но испытывает ли кто-нибудь потрескивание
фаудио? Для меня это исправляет перезапуск pulseaudio. Это происходит с Fallout4,
Я хочу знать, происходит ли что-то подобное с SE. Также, если я открою и
закрыть FO4 несколько раз без перезапуска импульса, становится хуже.

Пт, 26 апреля 2019 г., 10:27 roothorick [email protected] написал:

Вам еще нужен dotnet472 да. Мне нужно было указать -q при его установке
через протонтрики.

Последняя сборка FAudio у меня тоже не работает, просто вылетает все
одна и та же. xact вроде исправляет иш, но звука нет.

И еще я наблюдаю это периодическое заикание.

-
Вы получаете это, потому что вы являетесь автором темы.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment-486973608 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/AB5COVZBOCGLBILENE4RB3DPSK4GRANCNFSM4F6IMNRA
.

периодическое заикание, да, пока оно не разрешено, я не касаюсь этого.

Это то, что мешает ему загружаться? почему в Faudio по умолчанию не включена поддержка WMV? есть отрицательные побочные эффекты? Опять же .net все еще нужен?

В пт, 26 апр 2019 в 16:57, lucifertdark @ . * > писал: Я собираю Faudio из исходников, чтобы добавить поддержку WMV, это действительно просто и быстро. - Вы получаете это, потому что вас упомянули. Ответьте на это письмо напрямую, просмотрите его на GitHub < # 1792 (comment) > или отключите поток https://github.com/notifications/unsubscribe-auth/AEE7DLTBNX7CLOZAPUK3FYDPSKVFNANCNFSM4F6IMNRA .
- - - - - - - - Я заметил, что когда я стремлюсь к достижению и успеху, я отдаляюсь от текущего момента.

Не обращайте внимания на то, что я написал (удалил сейчас). Я не уверен, о чем я болтал.

Я даже не могу заставить Faudio работать с этим, ни самокомпилированный, ни DLL Kron4eks, так как оба вылетают с ошибкой «нет связанного приложения». Встроенный Xaudio работает, но заикание невыносимо и, похоже, также влияет на производительность графики, хотя увеличение задержки pulseaudio немного помогает.

Также попробовал исправление windowscodecs, указанное выше для земли, хотя оно исправляет проблему, я получаю розовые скайбоксы.

Похоже, вам не хватает dotnet472. Это все еще требуется.

6 мая 2019 г., 2:57:47 AM CDT, fls2018 [email protected] написал:

Я даже не могу заставить Faudio работать с этим, ни самкомпилированный, ни
Kron4eks dll, так как оба вылетают с ошибкой "нет связанного приложения".
Родной Xaudio работает, но заикание невыносимо и, кажется, влияет
производительность графики также, увеличение задержки pulseaudio действительно немного помогает
хотя.

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

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую или просмотрите его на GitHub:
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment -489537313

-
Отправлено с моего устройства Android с помощью K-9 Mail. Прошу прощения за краткость.

Похоже, вам не хватает dotnet472. Это все еще требуется.

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

Проблема в том, что при включенном Faudio игра вылетает после заставки. Используя стандартный xaudio, он работает, но с заиканием.

Запуск Space Engineer теперь работает с незначительными сбоями звука и небольшими заиканиями, но больше нет графических ошибок и ошибок рисования.

Мне пришлось перейти на Wine 4.8 с DXVK 1.2 после использования установщика Lutris

Зависание происходит, если вы ударяетесь о землю / корабли / камни со скоростью 30 м / с или быстрее.
Журнал сбоев, включая информацию о системе и информацию о драйвере, здесь:
https://pastebin.com/yTV7FcBa

Привет @Maltahl , эта фиксация должна помочь графическому процессору зависнуть при ударе. Пожалуйста, повторите тест с mesa 19.0.4 или mesa git master.

Протон 4.2-4 имеет новую проблему с ландшафтом, база в миссии 3 первого сценария парит в воздухе.

Screenshot from 2019-05-14 22-12-19

Если вы можете проверить, происходит ли это с вином 4.7 или вином 4.8?

14 мая 2019 г., 16:13:59 CDT, fls2018 [email protected] написал:

Протон 4.2-4 имеет новую проблему с ландшафтом, база в миссии 3
Первый сценарий витает в воздухе.

Screenshot from 2019-05-14<br />
  22-12-19

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую или просмотрите его на GitHub:
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment -492412089

-
Отправлено с моего устройства Android с помощью K-9 Mail. Прошу прощения за краткость.

Если вы можете проверить, происходит ли это с вином 4.7 или вином 4.8?

14 мая 2019 г., 16:13:59 CDT, fls2018 @ . * > писал (а): Proton 4.2-4 имеет новую проблему с ландшафтом, база в миссии 3 первого сценария парит в воздухе.Screenshot from 2019-05-14 22-12-19 - Вы получаете это, потому что вас упомянули. Ответьте на это письмо напрямую или просмотрите его на GitHub: # 1792 (комментарий)
- Отправлено с моего устройства Android с помощью K-9 Mail. Прошу прощения за краткость.

Не уверен, придется скомпилировать новый протон TKG, однако я основываю свой отчет на выпущенном сегодня Proton 4.2-4, который должен был исправить эти проблемы с ландшафтом. Пока что исправлена ​​только колючая земля во 2 миссии.

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

К сожалению, даже после переименования файла здесь: ~ SpaceEngineers / Content / Videos / KSH.wmv (просто добавьте .old в конец файла) я все равно вылетает после логотипа Space Engineers.

Манджаро
Ядро: 5.0.9-2
Драйвер Nvidia: 418,56

https://gist.github.com/Evernow/6c6b02c027a4df3cb114037460b73ff2

К сожалению, даже после переименования файла здесь: ~ SpaceEngineers / Content / Videos / KSH.wmv (просто добавьте .old в конец файла) я все равно вылетает после логотипа Space Engineers.

Манджаро
Ядро: 5.0.9-2
Драйвер Nvidia: 418,56

https://gist.github.com/Evernow/6c6b02c027a4df3cb114037460b73ff2

Подтверждаю, игра вылетает сразу после запуска.
ОС: Archlinux
Драйверы NVidia: 418.74

Похоже, что в 4.2-4 исправлена ​​проблема с поврежденным ландшафтом. Моя особая DLL больше не нужна. Еще требуются dotnet472 и xact .

Заикание все еще существует. Я почти уверен, что это не связано со звуком; это слишком необычно для этого. Кажется, становится хуже по мере приближения к вокселям (планетам / астероидам) и немного улучшается, если вы сидите на месте. Моя интуиция говорит о блокировке / синхронизации, связанной с потоковой передачей. Я бы не знал, с чего начать гоняться за этим.

Похоже, что в 4.2-4 исправлена ​​проблема с поврежденным ландшафтом. Моя особая DLL больше не нужна. Еще требуются dotnet472 и xact .

Заикание все еще существует. Я почти уверен, что это _не_ связано со звуком; это слишком необычно для этого. Кажется, становится хуже по мере приближения к вокселям (планетам / астероидам) и немного улучшается, если вы сидите на месте. Моя интуиция говорит о блокировке / синхронизации, связанной с потоковой передачей. Я не знаю, с чего начать погоню за этим.

Можете ли вы попробовать Миссию 3 «Разрушенный лагерь» сценария «Первый прыжок»? Первая планета в миссии 2 может больше не быть шипастой, но проблема здесь полностью не решена.

@FurretUber сделал руководство по запуску игры несколько месяцев назад в этой ветке, но изменилось ли это с тех пор? Т.е. заменить faudio на xact? Требуются ли protontricks или установка dotnet472 через обычные winetricks может работать? (вводя правильный WINEPREFIX?)
Я попытался следовать этим оригинальным инструкциям с 4.2-4, и все равно у меня возник черный экран-заставка.

dotnet472 и xact можно нормально установить через winetricks, используйте флаг --unattended (или -q), я просто использую скрипты sppfx.

PROTON_PATH = "$ HOME / .steam / steam / steamapps / common / Proton 4.2 /" sppfx 275850 winetricks --unattended dotnet472 xact

Я пробовал запустить WINEPREFIX="/home/[user]/.steam/steam/steamapps/compatdata/244850/pfx/" winetricks -q dotnet472 xact
Но тогда игра все равно не запускается, в режиме winxp (который установлен в Winetricks) или в win7. У меня самый последний выпуск winetricks

вы скремблируете свой префикс, если вы делаете это таким образом, поэтому я использую SPPFX

Используйте новейшие технологии. Непосредственное использование winetricks может вызвать проблемы, поскольку может вызвать неправильную версию Wine. Последние protontricks настраивают среду таким образом, что winetricks будет использовать Proton, связанный с Wine.

protontricks 244850 -q dotnet472 xact

(Это занимает очень много времени; наберитесь терпения.)

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

Если вы собираетесь использовать только сценарии трюков, тогда protontricks подойдет, но иногда я хочу что-то вручную установить или запустить winreg и т. Д.

protontricks 244850 -q dotnet472 xact

Запустив это и переименовав файл здесь: ~ SpaceEngineers / Content / Videos / KSH.wmv (просто добавьте .old в конец файла), я действительно смог не только попасть в главное меню, но и загрузить игра! Частота кадров на самом деле приемлемая (достигает высоких 90 с), но раздражает заикание, что делает процесс далеко не приятным.

Но он действительно работает! И он тоже не вылетел, только странная проблема, с которой я столкнулся, похожа на ту, о которой сообщил fls2018 с ландшафтом! Замечательная работа Valve, CodeWeavers, doitsujin и действительно всех участников! Мы так близко!

К сожалению, даже после переименования файла здесь: ~ SpaceEngineers / Content / Videos / KSH.wmv (просто добавьте .old в конец файла) я все равно вылетает после логотипа Space Engineers.
Манджаро
Ядро: 5.0.9-2
Драйвер Nvidia: 418,56
https://gist.github.com/Evernow/6c6b02c027a4df3cb114037460b73ff2

Подтверждаю, игра вылетает сразу после запуска.
ОС: Archlinux
Драйверы NVidia: 418.74

Попробуйте установить protontricks и запустить это:

protontricks 244850 -q dotnet472 xact

Затем переименуйте файл здесь: ~ SpaceEngineers / Content / Videos / KSH.wmv (просто добавьте .old в конец файла)

Мне удалось заставить игру работать

Я:

  1. Установлен SE
  2. Выполните один раз, чтобы сгенерировать префикс
  3. Бежал protontricks 244850 -q dotnet472 xact
  4. Переименовал файл KSH.wmv
  5. Пробовал запустить SE с кнопкой воспроизведения под 4.2-4
    Но игра просто продолжает «работать» и никогда не запускается. В диспетчере задач нет EXE-файла.

Файл журнала очень короткий и содержит следующую ключевую строку:
313044.458:0027:0028:err:module:fixup_imports_ilonly mscoree.dll not found, IL-only binary L"SpaceEngineers.exe" cannot be loaded 313044.458:0027:0028:err:module:LdrInitializeThunk Importing dlls for L"Z:\\home\\james\\.local\\share\\Steam\\steamapps\\common\\SpaceEngineers\\Bin64\\SpaceEngineers.exe" failed, status c0000135
steam-244850.log

Похоже, .NET не установился правильно.

Что вызывает неправильную установку .NET?

У Winetricks есть проблема с командой dotnet476, и он «обходной путь». Попробуйте пометить глагол "не обходное решение" в Wine 4.0 или новее.

16 мая 2019 г., 14:23:41 CDT, pipnina [email protected] написала:

Что вызывает неправильную установку .NET?

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую или просмотрите его на GitHub:
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment -493199360

-
Отправлено с моего устройства Android с помощью K-9 Mail. Прошу прощения за краткость.

К сожалению, даже после переименования файла здесь: ~ SpaceEngineers / Content / Videos / KSH.wmv (просто добавьте .old в конец файла) я все равно вылетает после логотипа Space Engineers.
Манджаро
Ядро: 5.0.9-2
Драйвер Nvidia: 418,56
https://gist.github.com/Evernow/6c6b02c027a4df3cb114037460b73ff2

Подтверждаю, игра вылетает сразу после запуска.
ОС: Archlinux
Драйверы NVidia: 418.74

Попробуйте установить protontricks и запустить это:

protontricks 244850 -q dotnet472 xact

Затем переименуйте файл здесь: ~ SpaceEngineers / Content / Videos / KSH.wmv (просто добавьте .old в конец файла)

Мне удалось заставить игру работать

Да, мне удалось запустить игру. Я не смог установить dotnet472 без параметра -q , это дало ошибку. Но для меня игра по-прежнему не воспроизводится. Слишком низкий FPS, прерывистые звуковые и графические артефакты (например, черное пространство окрашено в розовый цвет). Я установил качество графики на низкое, но с тем же результатом. Моя видеокарта - NVidia GTX 770, драйверы - 418.74.

FPS мне подходит, но есть заикание звука и графики (каждый раз, когда звук заикается, графика тоже).

(Драйвер Arch linux и AMDGPU на Gigatebyte RX 560 4GB OC)

Я играл и тестировал игру около 2 часов и нашел несколько дополнительных ошибок:

  • Эффекты частиц не работают. Сюда входят эффекты инструментов, дым и т. Д.
  • Постобработка тоже кажется не работает
  • Инженерные фары работают, но в результате получается сплошной световой конус, отсутствие выцветания по краям и т. Д. Точечные и внутренние светильники работают нормально.

Это в дополнение к заиканию, которое испытывают все остальные. Ничто из этого не ломает игру, но, тем не менее, это ошибки.

Какой графический движок использует SE? единство?

Space Engineers использует двигатель собственной разработки под названием VRAGE. Тот же двигатель используется в Medieval Engineers и Miner Wars 2081.

вероятно, объясняет количество, скорее всего, множество несоответствующих хаков.

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

Фон меню не отображает видео. Это может быть рассмотрено, может решить и другие вещи.

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

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

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

Хм, все, что я получаю некоторое время, - это сообщение об ошибке:

grafik

Есть идеи, как это исправить?
Я использую Proton 4.2-7, и у меня установлен xact, dotnet472

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

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

Привет @kellerkindt , DXVK нужен рабочий стек драйверов Vulkan для преобразования DirectX 11 в Vulkan. Работает ли какое-нибудь вулканское приложение типа vulkaninfo ?

Скопируйте системную информацию из Steam ( Steam -> Help -> System Information ) и поместите ее в суть , а затем включите ссылку на суть в этот отчет о проблеме.

Привет @kellerkindt , DXVK нужен рабочий стек драйверов Vulkan для преобразования DirectX 11 в Vulkan. Работает ли какое-нибудь вулканское приложение типа vulkaninfo ?

Скопируйте системную информацию из Steam ( Steam -> Help -> System Information ) и поместите ее в суть , а затем включите ссылку на суть в этот отчет о проблеме.

Ну вот:

vulkaninfo
Steam-информация

На первый взгляд, все в порядке. Добавьте PROTON_LOG=1 %command% в параметры запуска игры и перетащите созданный файл $ HOME / steam-244850.log в поле для комментариев.

На первый взгляд, все в порядке. Добавьте PROTON_LOG=1 %command% в параметры запуска игры и перетащите созданный файл $ HOME / steam-244850.log в поле для комментариев.

Вот это

Похоже, у wine-mono проблемы с парой вариантов Mono: DllImport error loading library 'd3d11': 'Datei nicht gefunden. в журнале.

11121.045:0025:0026:trace:module:get_load_order looking for L"C:\\windows\\system32\\d3d11.dll"
11121.045:0025:0026:trace:module:get_load_order_value got environment  for L"d3d11"
11121.046:0025:0026:warn:module:load_dll Failed to load module L"d3d11.dll"; status=c0000135

Это означает, что d3d11.dll был отключен переменной среды WINEDLLOVERRIDES.

11121.045:0025:0026:trace:module:get_load_order looking for L"C:\\windows\\system32\\d3d11.dll"
11121.045:0025:0026:trace:module:get_load_order_value got environment  for L"d3d11"
11121.046:0025:0026:warn:module:load_dll Failed to load module L"d3d11.dll"; status=c0000135

Это означает, что d3d11.dll был отключен переменной среды WINEDLLOVERRIDES.

Ну, это не установлено (мной):

$ echo ">> $WINEDLLOVERRIDES <<"
>>  <<

Начиная с последней версии proton, я сталкивался с этим сообщением об ошибке в других играх. Иногда они бегут по-прежнему после нажатия кнопки ОК, например, War Thunder в протоне. Это заставляет меня задуматься, а не ошибка ли это. Я тестировал proton как на Arch linux, так и на openmandriva lx4 znver. Я не уверен, будет ли это иметь какое-то значение, но я лично использую RX 560 с драйверами AMDGPU ... Не уверен, что другой комментатор тоже использует AMD.

Я не могу установить dotnet472.
Моя версия winetricks - 20190615-next.
когда я пытаюсь: protontricks 244850 -q dotnet472 xact Это не работает в dotnet 40 с
dotnet40 install completed, but installed file (...).steam/steam/steamapps/compatdata/244850/pfx/dosdevices/c:/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe not found

Я не могу установить dotnet472.
Моя версия winetricks - 20190615-next.
когда я пытаюсь: protontricks 244850 -q dotnet472 xact Это не работает в dotnet 40 с
dotnet40 install completed, but installed file (...).steam/steam/steamapps/compatdata/244850/pfx/dosdevices/c:/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe not found

У меня такая же проблема. Не знаю, как это решить. Я использую Ubuntu 18.04 и protontricks 1.2.2 с графическим процессором AMD R9 Fury.

Я не могу установить dotnet472.
Моя версия winetricks - 20190615-next.
когда я пытаюсь: protontricks 244850 -q dotnet472 xact Это не работает в dotnet 40 с
dotnet40 install completed, but installed file (...).steam/steam/steamapps/compatdata/244850/pfx/dosdevices/c:/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe not found

У меня такая же проблема. Не знаю, как это решить. Я использую Ubuntu 18.04 и protontricks 1.2.2 с графическим процессором AMD R9 Fury.

Я без проблем использовал графический интерфейс Protontricks, может попробовать?

Я не могу установить dotnet472.
Моя версия winetricks - 20190615-next.
когда я пытаюсь: protontricks 244850 -q dotnet472 xact Это не работает в dotnet 40 с
dotnet40 install completed, but installed file (...).steam/steam/steamapps/compatdata/244850/pfx/dosdevices/c:/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe not found

У меня такая же проблема. Не знаю, как это решить. Я использую Ubuntu 18.04 и protontricks 1.2.2 с графическим процессором AMD R9 Fury.

Я без проблем использовал графический интерфейс Protontricks, может попробовать?

Я только что попробовал, но по-прежнему получаю следующую ошибку:
dotnet40 install completed, but installed file /home/username/.steam/steam/steamapps/compatdata/244850/pfx/dosdevices/c:/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe not found

Я не могу установить dotnet472.
Моя версия winetricks - 20190615-next.
когда я пытаюсь: protontricks 244850 -q dotnet472 xact Это не работает в dotnet 40 с
dotnet40 install completed, but installed file (...).steam/steam/steamapps/compatdata/244850/pfx/dosdevices/c:/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe not found

У меня такая же проблема. Не знаю, как это решить. Я использую Ubuntu 18.04 и protontricks 1.2.2 с графическим процессором AMD R9 Fury.

Я без проблем использовал графический интерфейс Protontricks, может попробовать?

Я только что попробовал, но по-прежнему получаю следующую ошибку:
dotnet40 install completed, but installed file /home/username/.steam/steam/steamapps/compatdata/244850/pfx/dosdevices/c:/windows/Microsoft.NET/Framework/v4.0.30319/ngen.exe not found

Какой у вас дистрибутив? Может посылка устарела?

Какой у вас дистрибутив? Может посылка устарела?

Я на Ubutntu 18.04. Я обязательно проверил обновления для protontricks перед запуском команды. Как я уже писал, мне кажется, что последняя доступная версия - 1.2.2.

Какой у вас дистрибутив? Может посылка устарела?

Я на Ubutntu 18.04. Я обязательно проверил обновления для protontricks перед запуском команды. Как я уже писал, мне кажется, что последняя доступная версия - 1.2.2.

Перейдите в Steam, Help, System information, выберите все (CTRL + A), а затем скопируйте все (CTRL + C) и вставьте в pastebin.com, если можете, пожалуйста

Привет, у меня точно такая же ошибка, как у @ bwyan86 и @LordJABA . Вот моя системная информация https://pastebin.com/7Ab8CY1Q

protontricks 244850 -q dotnet472 xact требовала ТОЧНУЮ комбинацию winetricks 20190310 и protontricks 1.2.2, ни больше ни меньше, так как тогда при установке dotnet40 она не удалась.

Планетарные миры рушатся при настройках графики выше, чем при низких. Говоря о планетах, местность полностью нарушена (Протон 4.2-9):
Planet glitched

Спасибо за подсказку @LunaSquee . Однако мне пришлось запустить protontricks 244850 -q --force dotnet472 xact . Однако я не могу подтвердить пересеченную местность на планетах. В игре я испытываю раздражающие короткие зависания / заикания с интервалом в 1-2 секунды. Но это относится к текущему опыту других пользователей в отношении сообщений на protondb. Надеюсь, с этим разберутся! Жду с нетерпением.

Какой у вас дистрибутив? Может посылка устарела?

Я на Ubutntu 18.04. Я обязательно проверил обновления для protontricks перед запуском команды. Как я уже писал, мне кажется, что последняя доступная версия - 1.2.2.

У меня такая же проблема, как и у вас, я использую Ubuntu 16.04

@EduardoGodoy пытались ли вы предложения @LunaSquee «s с protontricks 1.2.2 и winetricks 20190310?

Ландшафт и тени теперь работают правильно ...

Рейтинг мог бы сойти за серебряный, если бы мы могли просто определить причину заикания в игре. В среднем он составляет около 110-150 мсек на счетчике времени кадра DXVK.
Есть ли способ профилировать приложения dotnet под вином, чтобы обнаружить зависание?

Кто-то сказал, что это связано со звуком? возможно удалить все аудио драйверы и компоненты / файлы и снова протестировать?

Игра вылетает сразу же при отсутствии папки с аудио.
Отключение всех настроек звука ничего не меняет.

@fwillo Если вы настроены решительно и у меня есть несколько часов, моим грязным обходным путем было следующее:

  • открыть /usr/bin/winetricks в текстовом редакторе
  • найдите load_dotnet472()
  • Несколько строк ниже - это вызов предыдущей версии dotnet, например w_call dotnet462 .
  • Я проследил за цепочкой и удалил 4.0 с последней
  • попробовал еще раз
  • это не удалось на более поздней версии
  • каждый раз, когда это происходило, находил ссылку для загрузки и аргументы для установщика в скрипте winetricks и вручную устанавливал их внутри префикса Wine. (4.0 вроде бы интегрирован в вино? / Не нужен, нужны более новые)
  • после этого удалите / прокомментируйте вызов только что установленной версии dotnet в скрипте winetricks и повторите попытку

Через 2 или 3 часа космические инженеры работают без сбоев ... может быть, за исключением начальной части - у вас будет только пустой экран, вам нужно подождать не менее ~ 15 секунд и щелкнуть мышью, чтобы появилось меню.
После этого производительность такая же, как и в Windows для меня, но если я установлю какие-либо моды, они не будут работать в автономном режиме Steam - не уверен, это игра или моя установка

РЕДАКТИРОВАТЬ: чтобы было ясно, я работаю не под протоном, а через

lutris wine steam runner
wine version: ge-protonified-nofshack-4.9
DXVK:1.2.3

Вы можете получить proton GE для пара, предварительно скомпилированный с 4.11. Работает со spengies.
Итак, вы говорите:
Вы использовали встроенный моно Proton для dotnet 4.0 и ниже, но установили двоичные файлы Microsoft для всего, что было раньше, и он работал без заиканий?

Не могли бы вы ~ заархивировать и загрузить свою бутылку вина или ~ немного подробнее рассказать, как вам это удалось?

Moderator note: Above line partially struck out because it would contain copyrighted libraries from the workaround.

@LordJABA Я готов попробовать ваши инструкции. Тем не менее, я должен согласиться с примечаниями @SpookySkeletons : ваша инструкция немного туманна. Не могли бы вы написать подробный список шагов, чтобы воспроизвести обходной путь? Также из того, что я прочитал: разве этот подход не должен работать со Steam и protontricks вместо Lutris + winetricks? Единственное, что вы сделали, это установили dotnet472 без dotnet40, просто чтобы установить его вручную после winetricks? Жду вашего ответа.

@SpookySkeletons Я уверен, что у меня отключено моно, несмотря на то, что установщик dotnet 4.0 утверждает, что у меня уже никогда не устанавливалась версия, и отказывается устанавливать.
@fwillo Извините за

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

  • Сначала установите вино, убедитесь, что оно также установило wine32: i386 - это сработало для меня,
  • установить Lutris https://lutris.net/downloads/
  • В lutris щелкните шестеренку рядом с надписью «Бегуны» в левом верхнем углу, чтобы перейти к менеджеру бегунов.
  • Найдите "Wine" в списке, нажмите синюю кнопку "Manage Versions" и убедитесь, что ge-protonified-nofshack-4.9 в списке и включен
  • Чуть ниже «Wine» в списке должно быть «Wine Steam», нажмите «Runner Options» рядом с ним и добавьте %command% -no-cef-sandbox в «Arguments», установите правильную версию вина и отметьте «Stop Steam» после выхода из игры.
  • Нажмите Install Runner.

Он должен установиться нормально. А теперь самое сложное.

Установите winetricks с помощью сценария bash, как описано здесь https://github.com/Winetricks/winetricks
таким образом вы всегда можете запустить update_winetricks чтобы восстановить /usr/bin/winetricks

В консольном типе
export WINEPREFIX="/home/<user>/.local/share/lutris/runners/winesteam/prefix64"
Вы можете проверить это в опциях lutris runner
Теперь вы работаете внутри приставки винный пар

Я буду использовать dotnet 40 в качестве примера того, как удалить зависимость в winetricks, так как это нам обязательно нужно сделать,
Убедитесь, что моно отключено, набрав winetricks remove_mono
Попробуйте ввести winetricks dotnet472 - он попытается, но для меня это не удается вначале, пытаясь установить 40, утверждая, что он уже обновлен - это не позволяет winetricks никогда не устанавливать.
Итак, откройте / usr / bin / winetricks в текстовом адиторе и найдите "load_dotnet472"

``
load_dotnet472 ()
{
w_package_warn_win64

if w_workaround_wine_bug 42170 "Running un-official repacked .NET 4.7.2 setup until the official version is fixed.", 3.1; then
    # Un-official slim version. See https://repacks.net/forum/viewtopic.php?t=7
    file_package="dotNetFx472_Full_x86_x64_Slim.exe"
    w_download "https://drive.google.com/uc?export=download&id=1aLBCH0Yt2-6ROpWRBxZ01kqGMyhc_8hM&confirm" a36da041b8f46079f8e16647312d642953cde520f4a600ad5b3f4f90a23495a7 $file_package
    unattended_args="/ai /gm2"
else
    # Official version. See https://www.microsoft.com/en-us/download/details.aspx?id=53344
    w_download https://download.microsoft.com/download/6/E/4/6E48E8AB-DC00-419E-9704-06DD46E5F81D/NDP472-KB4054530-x86-x64-AllOS-ENU.exe c908f0a5bea4be282e35acba307d0061b71b8b66ca9894943d3cbb53cad019bc
    file_package="NDP472-KB4054530-x86-x64-AllOS-ENU.exe"
    unattended_args="/sfxlang:1027 /q /norestart"
fi

w_call remove_mono

w_call dotnet462
w_set_winver win7

``

Здесь следует отметить несколько моментов:

  • вы видите w_call to dotnet462, поэтому вам нужно перейти к load_dotnet462 и повторить это, пока вы не дойдете до того, у которого есть вызов сбойного - поэтому в нашем примере w_call dotnet40 находится в load_dotnet48 и должен быть удаленным, чтобы идти вперед.
    Вам нужно будет сделать это для каждого установщика, который не будет устанавливать автоматически через winetricks (вы установили его вручную), или если он устанавливается успешно, но winetriks не помечает его как установленный.
    Что вам нужно, если установщик не работает:
  • в w_set вам нужна версия win для установщика
  • в w_download у вас есть 2 URL-адреса (в этом случае), которые вы можете вставить в веб-браузер, чтобы загрузить установщик
  • в unattended_args у вас есть аргументы для запуска установщика с

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

  • если установщик утверждает, что установка прошла успешно, но winetricks жалуется на недостающие файлы в конце и не устанавливает следующий, удалите для него w_call - вероятно, установка прошла успешно, но проверка не удалась.
  • если даже не запускается, попробуйте, работает ли URL-адрес - если не выполните поиск на странице microsft или в Google по имени .exe
  • если URL-адрес в порядке, загрузите его,
    установите версию win в соответствии с частью winetricks для этого dotnet ex. winetricks win7
    попробуйте запустить его wine <installer>.exe <arguments from winetricks>
  • Если не получится, попробуйте без аргументов - вам нужно будет нажать «Далее»;)
  • Если это не удается, и у вас более одного URL / установщика, попробуйте другой
  • Если он все равно не установится, удалите w_call и надейтесь, что он не нужен - по крайней мере, один из них не прошел, не важно, что я сделал, но игра запускается.

После того, как вы наконец установили dotnet472, вам просто нужно добавить несколько вещей (я не уверен, что они все нужны)
winetricks xact vcrun2013 vcrun2015 vcrun2017 faudio d3dx9 d3dx10 corefonts - здесь проблем нет
xact-это обязательно нужно

Затем в lutris нажмите Wine Steam в списке участников и подпишите + над списком, чтобы добавить игру.
Введите имя и на вкладке "Параметры игры" Steamid 244850 для space eng.
Иконки и остальные не обязательны,
Проверить параметры бегуна
Аргументы: %command% -no-cef-sandbox
винная версия: ge-protonified-nofshack-4.9
DXVK: 1.2.3 и включен
Запустите его из списка приложений, он должен запустить Steam и начать загрузку

Надеюсь, что это работает!

Назовите меня, если вам нужна помощь ... или [email protected] - в любом случае это общедоступный

Мне не удалось запустить игру с lutris (Steam говорит, что у меня нет сети), но я установил в Steam с protontricks 1.2.2 и winetricks 20190310. Proton 4.9.2.
Я установил dotnet472 xact vcrun2013 vcrun2015 vcrun2017 faudio d3dx9 d3dx10 corefonts.
Я переименовал вступительное видео и начал игру с: PROTON_NO_ESYNC = 1% command%

И, честно говоря, игра работает нормально. У меня на планете около 100 кадров в секунду с высокими настройками графики. Я смог начать игру с множеством модов. Я не играл часами в банкомате, мне нужно время, чтобы сделать больше тестов.
Добыча на камнях была нормальным явлением, добыча полезных ископаемых на планете или астероидах была хорошей. Я начал с карты звездной системы.

У меня есть звуковой баг, как у всех, но через несколько минут все в порядке. Баг по-прежнему менее заметен, но играть можно. Я должен сделать тест, присоединяюсь ли я к другой игре, не размещая ее у себя.

Похоже, что игра близка к тому, чтобы в нее можно было играть без проблем, за исключением звуковой ошибки.

Спасибо за все советы на этой странице!

@LtStich У вас dotnet472 установился нормально, без проблем?
Если да, то это отличная новость, они наконец исправили сценарий. Я подтверждаю
небольшое заикание звука сразу после запуска. Я также заметил, что тени
иногда странно мерцает, но я не знаю, виновата ли игра или
протон

czw., 18 lip 2019 o 11:26 LtSich [email protected] написал (а):

Мне не удалось запустить игру с lutris (Steam говорит, что у меня нет
сеть), но я установил в Steam с protontricks 1.2.2 и
winetricks 20190310. Proton 4.9.2.
Я установил dotnet472 xact vcrun2013 vcrun2015 vcrun2017 faudio d3dx9
d3dx10 corefonts.
Я переименовал вступительное видео и начал игру с: PROTON_NO_ESYNC = 1
% команда%

И, честно говоря, игра работает нормально. У меня около 100 кадров в секунду на планете с высоким
графические настройки. Я смог начать игру с множеством модов. Я не
играть часами в атм, мне нужно время, чтобы сделать больше тестов.
Добыча на камнях была нормальным явлением, добыча полезных ископаемых на планете или астероидах была хорошей. Я начал
с картой звездной системы.

У меня звук как у всех, но через несколько минут все нормально. Ошибка
по продолжению менее заметно, но играть можно. Я должен пройти тест, если я присоединюсь
другая игра, не ведя себя игрой.

Кажется, что в игру можно играть без проблем, кроме
это ошибка звука.

Спасибо за все советы на этой странице!

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ValveSoftware/Proton/issues/1792?email_source=notifications&email_token=ABSXEL3A4XGGNMQUHZ4NSITQAAZNVA5CNFSM4F6IMNRKYY3PNVWWK3TUL52HS443VMVREXWWK3TUL52HS443DFMVREXWK3TUL52HS443DFVREXWWK3TUL52HS443DFVREX34
или отключить поток
https://github.com/notifications/unsubscribe-auth/ABSXEL6J4HFRILSQPK5FHVLQAAZNVANCNFSM4F6IMNRA
.

@MagicRB Все было нормально, но с protontricks 1.2.2 и winetricks 20190310.
Кажется, проблема в более новой версии winetricks, я должен попробовать еще раз, но теперь, когда игра работает, я не хочу все ломать :)

Поиграю еще немного и посмотрю, все ли хорошо.

Да, я не могу заставить игру работать, потому что protontricks (1.2.3-1) не устанавливает dotnet, потому что думает, что она уже установлена. Это также с новой установкой Arch, поэтому в последних версиях Wine есть серьезная неисправность или что-то в этом роде. Вполне лаваш, кто знает, исправят ли когда-нибудь ..

Если бы только MONO эмулировал dotnet 472 ....

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

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

wget http://winetricks.org/winetricks -O / usr / bin / winetricks

Итак, последняя, ​​какова команда для установки правильной рабочей версии?

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

Проходы рендеринга DXVK также, кажется, делают прыжок в тройную цифру при заикании.

Из других новостей, как скоро Wine Mono будет готов для запуска приложений dotnet 4.7.2? Кто-нибудь знает, что это реализовано до сих пор?

wget http://winetricks.org/winetricks -O / usr / bin / winetricks

Итак, последняя, ​​какова команда для установки правильной рабочей версии?

Зайдите сюда: https://github.com/Winetricks/winetricks/releases
Скачать: 20190310
Распакуйте, перейдите в src, чтобы получить wintetricks.

Удалите имеющийся у вас Winetrick.
И поместите загруженные вами winetricks в свой путь (/ usr / local / bin для меня в Debian).

После этого попробуйте переустановить SE с нуля и попробуйте переустановить все, что вам нужно.
Не забудьте переименовать вступительное видео.

ОК, установка dotnet теперь работает. ПОЧЕМУ разработчики Winetricks будут препятствовать поддержке .net? Кто-нибудь знает? кажется, никто не замечает даже то, что это важно для многих вещей, это все равно, что выпускать винное обновление, которое предотвращает запуск .exe… безумие!

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

Что касается игры, ну, похоже, сейчас она загружается, звук немного заикается, я загрузил пользовательскую игру на планете Земля, и она загрузилась нормально, за исключением множества заиканий и пауз, вероятно, связанных с проблемами звукового движка, а также несколько раз предупреждал о проблемах с производительностью, но, похоже, это исчезло.
Я бы сказал, что проблемы связаны со звуковым движком, вызывающим заикание и т. Д.

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

Со своей стороны, я играю уже несколько часов, в целом игра работает нормально, но скорость симуляции не превышает 0,8.
Я отключил музыку, но это не меняет производительности.

Небольшие вылеты, но в целом в игру можно играть, если вы принимаете некоторые лаги / заикания и вылеты. У меня около 100 кадров в секунду при средних настройках графики на Земле.
Сегодня, наверное, протестирую свой атмо-майнер, посмотрю, не вылетит ли игра. Вообще-то у меня ровер только маленький ...

Я установил dxvk 0.96 с protontricks, но это ничего не меняет.
Мой процессор на самом деле не используется, нагрузка небольшая, но игра, похоже, не может использовать все ядро ​​или производительность компьютера.

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

ОК, установка dotnet теперь работает. ПОЧЕМУ разработчики Winetricks будут препятствовать поддержке .net? Кто-нибудь знает? кажется, никто не замечает даже то, что это важно для многих вещей, это все равно, что выпускать винное обновление, которое предотвращает запуск .exe… безумие!

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

Что касается игры, ну, похоже, сейчас она загружается, звук немного заикается, я загрузил пользовательскую игру на планете Земля, и она загрузилась нормально, за исключением множества заиканий и пауз, вероятно, связанных с проблемами звукового движка, а также несколько раз предупреждал о проблемах с производительностью, но, похоже, это исчезло.
Я бы сказал, что проблемы связаны со звуковым движком, вызывающим заикание и т. Д.

Я сомневаюсь, что они сделали бы это намеренно, скорее всего, Microsoft каким-то образом изменит установщик .Net, поэтому номер версии отличается от того, что искал Winetricks, они действительно любят возиться.

установщики dotnet не изменились

установщики dotnet не изменились

Что ж, с такими вещами все, что требуется, - это одна орфографическая ошибка в одной строке, чтобы вызвать всевозможные проблемы. Я серьезно сомневаюсь, что разработчики Winetricks сделали бы что-то подобное, чтобы нас обмануть, в чем будет смысл?

Кажется, что Wine 4.12.1 устанавливает .Net таким образом, чтобы он работал с Wine 4.12.1, а Wine 4.2 устанавливает его таким образом, что он работает с 4.2. Установка переменных окружения WINE и WINESERVER указывающих на двоичные файлы Proton, повысила надежность работы winetricks .

Что касается игры, я получаю серьезное заикание из-за звука: скорость моделирования равна 1, но благодаря звуковым эффектам она снижается до 0,73 и возвращается к 1 позже. Если я использую сварочный аппарат, скорость моделирования упадет до 0,53, пока не восстановится. Проблема возникает независимо от того, удаляю ли я библиотеки FAudio или использую winetricks xact , даже с отключенным звуком это происходит, что действительно заметно для сварщика.

Кажется, есть графическая ошибка на углах шлема и источниках света, но это мелочь.

Системная информация

С Proton 4.11-1 он работает "из коробки", если вы переименовали видеофайл. Но есть довольно сильное заикание, как для звука, так и для визуального восприятия. Установка dotnet472 и xact, похоже, не решила этого. Какие-нибудь советы?

Я тоже не понял, как разрешить заикание, если бы не заикание, то все было бы хорошо, даже при 4k на моем 1080TI он давал 50-60fps, что довольно хорошо, за исключением заикания ...

Никаких изменений производительности у меня с 4.11.
Я продолжал думать, что проблема со звуком связана с производительностью, а не со звуком (см. Скорость симуляции). Звук заикается из-за плохой стабильности / производительности.

Переход на ядро ​​5.2 дал небольшое повышение производительности. Но проблема со звуком всегда здесь.

Я также не могу подтвердить улучшение производительности для меня с Proton 4.11. Я также опробовал функцию FSync в Arch Linux с предоставленным ядром linux-fsync. Подтверждено, что загружено правильное ядро, и, к сожалению, здесь нет подтверждения улучшения. Заикание все еще существует.

Один небольшой вопрос: игра была запущена с DXVK_HUD=full %command% . График времени кадра показывает красные полосы, когда происходит заикание. Я полагаю, это не имеет особого значения, кроме того, что кадры не отображаются?

Я заметил, что скорость симуляции "холостого хода" здесь стала немного выше, с 0,73 до 0,87 последовательно. Проблема с производительностью, которая, по-видимому, возникает при воспроизведении звуков, все еще присутствует. Странно, что он продолжает работать на скорости симуляции 0,87 даже тогда, когда якобы достаточно свободных циклов процессора.

Я заметил, что часто игра как бы воссоздает звуковые потоки. pavucontrol показывает, что игровой поток - это поток 2, но позже это поток 6, а затем поток 10 при использовании pulseaudio.

Кроме того, каждый раз, когда я закрываю игру, открывается Wine Debugger, а затем открывается окно с сообщением, что игра вылетела.

Я записал видео, показывающее немного статуса игры, включая проблемы со звуком: https://cdn.discordapp.com/attachments/457747189616214019/606572169886957577/se-sound000.webm

Для текущего префикса я использовал команду winetricks - winetricks -q xact dotnet472 vcrun2013 vcrun2015 vcrun2017 faudio sound=alsa . И текущие системные характеристики .

Интересно, что у меня явно лучшая производительность, и у меня нет этой проблемы при использовании инструментов (по крайней мере, не так много). Скорость моей сим-карты составляет от 0,7 до 0,9.

Когда я играю, если запускаю htop, я ясно вижу, что мой процессор не полностью загружен, у меня есть много «запасных ресурсов». Они, вероятно, могут что-то с этим поделать ... Например, изменить видео для меню "Пуск" и не использовать этот формат WMV ... Может быть, все, что касается звука, - та же проблема ... Очень "окна как" файлы и инструменты ...

[РЕДАКТИРОВАТЬ]
Быстрый тест в космосе, без модов. Небольшая проблема со звуком, но очень маленькая.
Скорость симулятора от 0,9 до 1. Не опускайтесь ниже 0,8, даже когда я использую инструменты.
Около 100 кадров в секунду при высоких настройках графики.

Производительность, вероятно, упадет, если появится дрон, у меня большая проблема с этим в моей игре с модами на Земле. Поскольку игра, вероятно, не может использовать все ядро ​​или распределить нагрузку.
[/РЕДАКТИРОВАТЬ]

Подтвердили ли мы, что apitrace для этой игры не поможет с этой конкретной проблемой? похоже, что это может быть проблема, связанная с вином, а не с dxvk.

На самом деле есть 3 или 4 проблемы с накоплением, как я их понимаю:

  1. Для работы аудио нужен довольно передовой материал FAudio. Это не слито с Proton 4.11. Даже с FAudio вы увидите значительное количество прерываний звука, которое может уменьшиться в зависимости от вашей машины / процессора / частоты кадров / и т. Д.
  2. dotnet472 не требуется. Думаю, Proton 4.11 это исправит?
  3. Игровое видео не работает. Вероятно, проблема с медиа-фреймворком, как и во многих других играх.
  4. Пока не удалось протестировать Proton 4.11, но, по крайней мере, в 4.2 парсер PNG 'windowscodecs' (или исходящий от него код) неправильно обрабатывает байтовый порядок 16-битных PNG-изображений с оттенками серого, что и есть VRAGE (двигатель космических инженеров) использует для своих планетных карт высот. Это может быть исправлено, но я перешел с машины nvidia на Vega, поэтому у меня возникают зависание графического процессора, как на https://github.com/doitsujin/dxvk/issues/252, когда я пытаюсь запустить SE на планета. Я могу вернуться и проверить машину nvidia через некоторое время, но если вы видите «колючие» планеты, см. Https://source.winehq.org/git/wine.git/commit/0c0def962f2b86f44625f11d8d9d2013aaffa46a, если вы хотите попробовать резервное копирование этого исправления.

@kainz
Отсутствующие биты Faudio вызывают заикание в игре?
Есть какие-нибудь открытые проблемы или исправления, о которых вы знаете?

Я точно знаю, что это было профилировано раньше, и заикание не было результатом каких-либо вызовов DX.

Я не разработчик, но, на мой взгляд, проблема с SE больше связана с многопоточностью и производительностью.
Вероятно, над чем они работают: https://lkml.org/lkml/2019/7/30/1399 и с заменой esync: fsync: https://steamcommunity.com/games/221410/announcements/detail/2957094910196249305

Для этого нужно самое последнее ядро, может быть, кто-нибудь из Arch сможет провести тест ... Я посмотрю, как я использую ядро ​​Liquorix в Debian ...

Для инструкции по fsync: https://steamcommunity.com/app/221410/discussions/0/3158631000006906163/

Игра запускается только с Mono, но я получаю это сообщение (при нажатии на него игра закрывается):

Screenshot from 2019-08-03 08-42-12

Удивительно, но у меня не было заикания музыки в меню, когда это всплыло, может быть, заикание связано с самой dotnet на вине?

Ого! Аккуратно! Как вам удалось запустить его с Mono?
@LtSich
Пользователь Gentoo здесь, fsync не помогает. Если это моно, как указано выше в @ fls2018, это может быть хорошим исправлением.

зависит, если он заикается в игре.

Ого! Аккуратно! Как вам удалось запустить его с Mono?
@LtSich
Пользователь Gentoo здесь, fsync не помогает. Если это моно, как указано выше в @ fls2018, это может быть хорошим исправлением.

Просто новый префикс с монопротонной установкой по умолчанию, мне также пришлось изменить dll xaudio на родные, поскольку faudio приводит к сбою. Я предполагаю, что всплывающее окно вызвано тем, что либо для моно нужен wpf, либо, возможно, он проверяет .Net, находит вместо этого моно и отказывается продолжать. В журналах я вижу, что он распознает моно как среду: Environment.Version: Mono 6.3.0 (tarball)

Я также снова установил dotnet472, это позволило мне войти в игру, но вернулось заикание меню, также с использованием ядра fsync.

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

Это может быть что-то, что KSH может изменить. Если они удаляют проверку dotnet в присутствии Wine, это может помочь, но это, конечно, одно: НЕ следуйте советам разработчиков Wine.

Мы должны открыть отчет об ошибке в WineHQ и получить некоторую помощь, такую ​​же, как и в случае проблемы с рельефом. Где я могу найти этот моно двоичный код bleeding egde?
Собираюсь протестировать ночную сборку.

Теперь, когда я это проверил, возможно, стоит попросить разработчиков отключить использование моно. Они проверяют переменную enviornment, чтобы увидеть, используете ли вы старую ошибочную сеть dotnet, чтобы сообщить вам об обновлении, но кажется, что она не учитывает нулевое значение и просто полностью закрывает игру.

В журнале указано: 2019-08-03 11: 07: 01.985 - Поток: 1 -> Произошла ошибка при перечислении информации о среде. Приложение продолжается. Исключение: System.ArgumentNullException: значение не может быть нулевым.

В этом случае, если мы можем попросить KSH отказаться от проверки, Proton может быстро работать с рейтингом Gold на protondb!
Где хорошее место, чтобы познакомиться с Кином?

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

Для ясности я говорю о заикании музыки в меню, которое, похоже, связано с заиканием в игре. Возможно, проблема не в звуке или графике, но тот факт, что эта игра больше полагается на .Net, чем на некоторые другие игры, а .Net через Winetricks в лучшем случае ненадежен.

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

@SpookySkeletons

Здесь наверное: https://forum.keenswh.com/

1 разработчик из KSH действительно должен присоединиться к нам и разобраться в этом ...
Это и видеоформат, чтобы использовать что-то еще, что будет работать в Linux, чтобы избежать необходимости переименовывать вступительное видео ...

Я не могу получить электронное письмо с подтверждением для моей старой учетной записи, похоже, что кто-то другой должен будет создать ветку. Как сказал @LtSich, укажите их на наш git, чтобы мы могли получить диалог здесь!

Я знаю, что KSH также активен в Discord, если у кого-то есть ссылка на их канал, вы можете отправить им сообщение там.

Вот официальный разлад: https://discordapp.com/invite/KeenSWH

Нам нужно спросить, требует ли игра WPF или других компонентов, специфичных для DotNet.
Разблокировка моно ничего не стоит, если они используют нереализованные функции.

Proton 4.11-1 добавляет регрессию, которая повторно вводит генерацию багги-ландшафта.

Proton 4.2-9 работает нормально, но все еще есть заикание, но, похоже, это DotNet, как упоминалось в SpookySkeletons и fls2018

Кажется, что версия 4.11 добавляет много проблем.
Empyrion и Frostpunk больше не запускаются, но отлично работают с 4.2-9.

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

пробовал работать с 4.11-1 с включенным d9vk. выдает ошибку, что .net framwork устарел и использовать исправление Windows, а затем дает сбой.

пробовал работать с 4.11-1 с включенным d9vk. выдает ошибку, что .net framwork устарел и использовать исправление Windows, а затем дает сбой.

Игра не должна работать на DirectX 9, если вы не откатите несколько патчей.

DXVK и Proton 4.2-9 с DotNet 472 в настоящее время - единственный известный способ запустить игру.
Однако он будет заикаться, и в настоящее время этого нельзя избежать.

Это скорее сбой производительности, чем что-то еще, что-то не так, если что-то было решено, игра будет работать и работать нормально с хорошим fps ..

Прежде всего, ОТЛИЧНАЯ РАБОТА.
Вы прошли долгий путь, по которому могут пройти только настоящие инженеры. Это настоящая самоотдача. : +1:

А теперь вернемся к теме.
Что касается количества проблем с производительностью, о которых вы упомянули, я бы порекомендовал вам переключиться на «сборку модификации», которую мы распространяем вместе с ванильной сборкой в ​​Steam.
Помимо множества приятностей для моддеров, он поставляется с нашим внутренним профилировщиком, поэтому вы сможете точно увидеть, что замедляет вашу игру. Всегда легче _ исправить_, когда вы знаете, в чем проблема.

Здесь вы найдете все, что вам нужно:
https://github.com/malware-dev/MDK-SE/wiki/Advanced-Profiling-The-Game

Когда дело доходит до «проверки версии .NET», игра не применяет какую-либо конкретную версию .NET, если все компоненты запускаются и работают правильно.
После беглого просмотра кода, похоже, это окно сообщения вызвано ошибкой при инициализации компилятора скрипта. В этом случае вы должны увидеть в журнале игры следующую строку:
«Ошибка при инициализации ModAPI: НЕКОТОРЫЕ СООБЩЕНИЕ ЗДЕСЬ»

Компилятор не важен для игры, если вам не нужны моды или внутриигровые скрипты, поэтому вы можете отключить его для тестирования. Вы ведь знаете, как возиться с бинарными файлами MSIL?
https://github.com/KeenSoftwareHouse/SpaceEngineers/blob/master/Sources/Sandbox.Game/MySandboxGame.cs#L1401

@InflexCZE
Спасибо за информацию.

Я не настолько опытен в редактировании IL, но мне удалось отредактировать это значение и добраться до меню с помощью моно:

Screenshot from 2019-08-10 02-37-36

Но при попытке загрузить игру вылетает с такой ошибкой:

Screenshot from 2019-08-10 02-28-48

Вот журнал:

SpaceEngineers.log

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

Судя по журналу, союз Mono и нашего компилятора не особо радует: stuck_out_tongue:
Ничего страшного, нам это не нужно.

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

1) Получить кожуру всего в этом ctor.
https://github.com/KeenSoftwareHouse/SpaceEngineers/blob/master/Sources/VRage.Scripting/MyScriptWhitelist.cs#L47

2) Сделайте так, чтобы этот метод возвращал null (не позволяйте ему вызывать ядро ​​компилятора)
https://github.com/KeenSoftwareHouse/SpaceEngineers/blob/master/Sources/VRage.Scripting/MyScriptCompiler.cs#L154

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

Каждая среда выполнения .NET (.NET FW, Mono, .NET Core, Xamarin, ...) поставляется со своей собственной библиотекой базовых классов (BCL). Несмотря на то, что реализация и функциональность очень похожи по всем направлениям, и программа, скомпилированная с учетом одного конкретного BCL, обычно хороша при различных реализациях во время выполнения, некоторые различия все же существуют.

В этом случае компилятор сбивает с толку распределение определенных типов BCL среди двоичных файлов BCL. Несколько быстрых настроек, вероятно, решат проблему и сделают компилятор полностью работоспособным и на Mono BCL, но это будет немного сложнее, чем выключить компилятор и проверить, работает ли игра на Mono-Linux лучше или нет. Если так, то можно сосредоточиться на полировке.

Надеюсь, что ответ на ваш вопрос понятен: smile_cat:

Ну, я попытался пойти другим путем и попытаться заставить сборку профилировщика работать, но мне с этим не повезло. Я установил Mod SDK и попытался запустить игру, установив dotnet472 и xact в его префикс и установив символическую ссылку на папку Contents в свой путь (именно так я на самом деле запускал Mod SDK для моей установки Windows) и путем копирования папки Bin64_Profiler в мою обычную установку (где все уже работает, и я могу запустить игру). Ни один из подходов не работал.

Я установил все переменные среды, которые могут понадобиться для вина, и использовал вино из ~/.local/share/Steam/steamapps/common/Proton 4.11 , попытался запустить proton run из этого каталога, но каждый метод дал одинаковые результаты:

  • Я получил предупреждение о запуске без среды выполнения Steam и указание изменить значение переменной MyFakes.ENABLE_RUN_WITHOUT_STEAM , чего я не могу сделать без редактирования сборки, по крайней мере, как я это понимаю.
  • Затем он пожаловался на запуск Windows и обновлений драйверов видеокарты.
  • После всего этого все, что я получаю, - это сбой со следующей трассировкой стека
Unhandled Exception: System.ArgumentException: Parameter is not valid.
   at System.Drawing.Image.get_Flags()
   at System.Windows.Forms.ControlPaint.IsImageTransparent(Image backgroundImage)
   at System.Windows.Forms.Control.set_BackgroundImageLayout(ImageLayout value)
   at VRage.Platform.Windows.Forms.MyMessageBoxCrashForm.InitializeComponent()
   at VRage.Platform.Windows.Forms.MyMessageBoxCrashForm..ctor(MyCrashScreenTexts& texts)
   at VRage.Platform.Windows.Forms.MyMessageBoxCrashForm.ShowDialog(MyCrashScreenTexts& texts, String& message, String& email)
   at Sandbox.MyErrorReporter.ReportGeneral(String logName, String gameName, String id)
   at Sandbox.MyCommonProgramStartup.PerformReporting()
   at SpaceEngineers.MyProgram.Main(String[] args)

Что в любом случае не так полезно, потому что сообщение о сбое не загружается ...

Если кто-то имеет представление о том, что я делаю не так, и может заставить сборку профилирования работать, правильные инструкции будут оценены, чем больше внимания будет уделяться проблеме, тем лучше :)

Предоставьте журнал игры. Он должен содержать исходное исключение.

Журнал прилагается:

SpaceEngineers.log

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

Проблема на самом деле где-то во внутренностях этого метода (Windows Forms), поскольку он не смог загрузить изображение игрового курсора.

https://github.com/mono/mono/blob/master/mcs/class/System.Drawing/System.Drawing/Image.cs#L154

at System.Drawing.Image.FromStream(Stream stream, Boolean useEmbeddedColorManagement, Boolean validateImageData)

Надеюсь, кто-то знает, что происходит, потому что на этом моя область знаний заканчивается.

Ну, я тоже делал что-то не так, когда вручную возился с префиксом, я попытался просто перетащить папку Bin64_Profile в свою обычную установку и переименовать ее в Bin64 . Это немного помогло (получил заставку), но, по-видимому, не работает из-за дополнительных битов, включенных в сборку профилирования. Во-первых, он не может получить имя ОС (с использованием Mono, не жалуется на фактическую установленную MS dotnet), но, похоже, проходит это (с кажущимся правильным именем ОС тоже, так что да ...), но не может попытаться инициализировать графики (это происходит как при активном DXVK, так и при установке USE_WINED3D ). Таким образом, похоже, что сборка профилирования пока не загружается.

SpaceEngineers-Mono.log

Журнал Mono прилагается, фактический сбой такой же, как и в dotnet, это также демонстрирует недостаток в Mono.

Перетащите сюда журнал рендеринга, пожалуйста

Ах, никогда не замечал, что он пишет. Вот:

VRageRender-DirectX11.log

Похоже, это сбой при компиляции шейдеров. Есть ли способ получить где-нибудь их предварительно скомпилированные версии?

Интересно. Игра уже поставляется с предварительно скомпилированными шейдерами в %SE_install_dir%/Content/ShaderCache .
Проверьте, исправны ли они, не повреждены ли они или что-то еще.

Альтернативный каталог кеша для шейдеров, скомпилированных игрой: %dir_where_you_found_the_logs%/ShareCache2 .
Вы можете попробовать скопировать кеш здесь, чтобы увидеть, удастся ли игре найти его здесь.

Пытался проверить файлы, попытался скопировать его в %appdata%/SpaceEngineers/ShaderCache2 , даже попробовал %SE_install_dir/TempContent/ShaderCache на случай, если сборка профиля также попытается это сделать, во всех случаях результат одинаковый :(

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

Вы сказали, что у вас SE тоже работает на Win, верно?
Может быть, вы могли бы попробовать запустить сборку профилирования на Win, а затем скопировать сгенерированный кеш шейдеров в Linux?

Вы, ребята, пытаетесь запустить это без dotnet (с моно) или пытаетесь устранить заикание? (или оба).

Что касается сборки профилирования, я пробую использовать dotnet, поскольку мы знаем, что она загружается полностью и в нее можно играть, поэтому, надеюсь, мы сможем устранить заикания на этом фронте. Учитывая, что текущая проблема с моно заключается в том, что компилятор не работает, а это означает, что скрипты и моды не будут работать, даже если мы обманом загрузим его, я думаю, что это может быть лучше на данный момент, как на передней чтобы сделать игру полностью функциональной, и мы можем выявить проблему в Proton, которая, если она будет исправлена, может затронуть и другие игры и заставить их работать.

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

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

У меня должна быть рабочая Windows 10, я давно ее не использовал, но она должна работать. Когда я вернусь домой, я попробую заняться шейдером.

@InflexCZE thx за помощь нам, народ Linux! Не хочу показаться грубым, но мы уже давно просим о помощи, что изменилось?

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

Ну, никаких кубиков, похоже, он намерен перекомпилировать эти шейдеры, несмотря ни на что. Пытался также установить среды выполнения Visual C (все они с 2010 года и выше, но 2015 не удалось установить, и я действительно не беспокоился о том, чтобы попытаться запустить это тоже) в надежде, что ему просто не хватает некоторых сред выполнения C ++, но не повезло с что либо.

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

@ Onyx47 что мне нужно сделать, чтобы получить то состояние, в котором вы находитесь?

@MagicRB Все, что я сделал, это установил его, как все мы до сих пор (включая protontricks 244850 -q dotnet472 xact ), установил версию Mod SDK со страницы инструментов, а затем скопировал каталог Bin64_Profile в обычный каталог установки SE и переименовал его в Bin64 после переименования исходного в Bin64_bak .

При запуске игры из Steam будет предпринята попытка запустить сборку профилирования. Для справки и для избавления от копания в структуре каталогов (вы должны просто скопировать и вставить пути в свой файловый менеджер / терминал):

  • Установка SE должна быть в ~/.steam/steam/steamapps/common/SpaceEngineers/
  • Установка Mod SDK, из которой вы должны получить каталог Bin64_Profile должна быть в ~/.steam/steam/steamapps/common/SpaceEngineersModSDK/
  • SpaceEngineers.log и VRageRender-DirectX11.log должны быть в ~/.steam/steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/Application Data/SpaceEngineers

Сын кланга, он работает! Все, что нам было нужно, это пакет d3dcompiler_47 от Winetricks. И там я устанавливал среды выполнения XNA и VC, чтобы попытаться проверить, содержат ли какие-либо из них недостающие заголовки ( float.h и xnamath.h ), на которые он жаловался ...

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

Я прикрепляю свои последние логи с момента его запуска до попытки загрузить мир (после чего он вылетает). Я замечаю, что последняя строка в SpaceEngineers.log -

External debugger: listening...

Может быть, это сбой, а может и нет, но ... Я не знаком с удаленной отладкой в ​​.NET, это просто сокет вроде gdb , и есть ли шанс, что мы могли бы к нему подключиться используя MonoDevelop или что-то в этом роде? Или есть хотя бы способ получить от него какую-то значимую информацию даже в одном меню и без этого? Например, сбрасывать журналы профилирования куда-нибудь в файл? Я ничего не вижу об этом в связанной Wiki.

Копия: @InflexCZE

ПРИМЕЧАНИЕ (в основном для Inflex): не обращайте внимания на ошибки видео, мы знаем, что он не загружается, и все равно, игра запускается после щелчка по нему.

SpaceEngineers.log

VRageRender-DirectX11.log

Изменить: по крайней мере, некоторые скриншоты профилировщика в меню, главные виновники, похоже, MyAudio-Update (как, по крайней мере, частично подозревалось) и GuiManager - Update Screens , что на самом деле не то, что я ожидал.

https://imgur.com/a/S1O435i

Отличные новости: +1:

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

Для этого:
1) Запустите игру в главном меню
2) Откройте профилировщик с помощью Alt + [NumPad Dot]
3) Переключить профилировщик в режим глубокого профилирования Alt + E
4) Соберите одно полное окно профилирования данных (подождите 1024 кадра)
5) Сохраните в слот №1 с помощью LCtrl + Alt + 1
6) Найдите и поделитесь файлом в% appdata% / FullProfile1

Вся эта информация находится в руководстве, которое я опубликовал ранее:
https://github.com/malware-dev/MDK-SE/wiki/Advanced-Profiling-The-Game

Редактировать:
«MyGuiSandbox :: Update3» обновляет игровой ввод (собирает данные о состоянии мыши, клавиатуры и джойстика из ОС). У нас там тоже есть ряд блоков профилирования, интересно, почему они не появляются. Пожалуйста, включите глубокое профилирование, если они отображаются в этом режиме.

@InflexCZE : Хорошо, так что переписываю весь свой пост, потому что вы наконец заставили меня попробовать и научиться использовать отладчик Wine и фактически сразу нашли причину сбоя: отсутствует среда выполнения VC 2003, я предполагаю, что это требование при установке ModSDK, но из-за Как работает Wine, он не был установлен в префиксе (префикс - это полная установка Windows в том, что касается приложения внутри него). Я запускал игру. После установки игра фактически запускается в сборке профилирования.

Итак, пока игнорируем меню, вот дамп профилировщика, который я взял на пустую карту Солнечной системы.

FullProfiler-1.gz
(переименован из-за придирчивости GitHub)

А вот и меню на случай, если проблема та же, а в дампе меню может быть меньше шума:

FullProfiler-2.gz

Надеюсь, я не забыл здесь кое-что важное.

Из того, что я вижу в профилях, нет ни одной затронутой системы, которая замедляла бы всю игру. На всю систему и все потоки влияют одинаково по всем направлениям. К сожалению, это означает, что не существует единой системы, которую мы могли бы оптимизировать и / или исправить, чтобы помочь вам с жалюзи. С другой стороны, это говорит нам о том, что проблема в системе.

Я очень хорошо узнаю узор в профилях. Когда я вижу его в Windows, в 9 с половиной случаях из 10 это GC (сборщик мусора .NET). Либо есть что-то, что влияет на его нормальную функциональность и заставляет его останавливать игру на огромное количество времени во время каждого рабочего цикла, либо, поскольку это самонастраивающаяся машина, она ужасно неправильно настроена из-за неверной информации, предоставленной ей неправильно портированной ОС функция.

В качестве альтернативы, может быть какая-то очень простая функция ОС, такая же распространенная, как malloc например, которую используют все системы всей игры (или .NET Framework в этом отношении). Если одна такая функция плохо работает при вызове, это тоже может объяснить результаты.

В любом случае игра не сможет профилировать себя и найти проблему. Его нужно будет профилировать извне и найти причину с помощью внешнего инструмента, который сможет определить либо медленную работу ОС, либо признать виновность сборщика мусора. В таком случае знание того, что в сборщике мусора работает медленно, может подсказать нам, как с этим бороться. Я не знаком с профилированием в Linux, поэтому не смогу вам помочь.

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

Вполне вероятно, что функции запросов к ресурсам были заглушены и передают .NET неверную информацию, возможно, в WMI или в функции NtQuery * в ntdll.

Прежде всего, большое спасибо Inflex за то, что нашли время изучить то, что, как я полагаю, является вашим нерабочее время.

Что ж, хотя это не очень хорошие новости для быстрого решения, на которое мы надеялись, по крайней мере, они направляют нас на правильный путь вместо того, чтобы гнаться за призраками. Я немного запутался, глядя на графики, и заметил, что всплески случаются повсюду, поэтому даже будучи сторонним наблюдателем кодовой базы (и человеком с очень поверхностными знаниями .NET), я нахожу объяснение проблем с GC очень убедительным .

Я собираюсь изучить все, что смогу, на фронтах Mono и .NET в ближайшие несколько дней и постараюсь предоставить здесь как можно больше информации или посмотреть, стоит ли открывать новый выпуск. В долгосрочной перспективе, вероятно, было бы лучше, если бы мы могли исправить это должным образом и пропатчить его вверх по течению, потому что, если GC работает, это означает, что есть потенциальный прирост производительности, который можно получить в широком спектре приложений, а не только в играх. Но, детские шаги :)

Я надеюсь, что это хоть немного поможет, у меня действительно мало опыта в подобных вещах.
setrace.zip
Это копия системной трассировки, полученной из perf. Его следует открывать из файл perf.data.txt в
Я пробовал смотреть на следы в SpeedScope, но, как я уже сказал, в основном понятия не имею, на что смотрю.
Надеюсь, кто-то еще сможет этим воспользоваться. Если потребуется дополнительная информация или другая трассировка, я сделаю все возможное, чтобы предоставить все, что могу.

Hi @ kisak-valve просто для информации. Space Engineers не работает с Proton 4.11-2, но работает с Proton 4.2-9.
Стартовал с 4.11, но со странными ошибками, а с 4.11-2 вообще не запускается.

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

Если вам нужна помощь, чтобы найти причину проблемы с 4.11-2, просто напишите здесь, мы постараемся помочь.
И если вы сможете работать с @InflexCZE, чтобы улучшить производительность игры, это будет потрясающе :)

Привет, @LtSich , дружеское напоминание, что я являюсь модератором трекеров

Оглядываясь на недавнюю историю, похоже, что несколько разработчиков заглянули и обдумывают игру, так что я мало что могу внести. Это похоже на первое четкое упоминание о регрессии Proton 4.11-1 -> 4.11-2. Не могли бы вы добавить PROTON_LOG=1 %command% к параметрам запуска игры и перетащить созданный журнал $ HOME / steam- $ APPID.log в поле для комментариев.

Простите за ошибку @ kisak-valve.

Вот мой журнал для Proton 4.11-3 https://dl.cafe-philo.net/steam-244850.log.gz
Не удалось установить dotnet 472.

Есть обновления / прогресс?

Думаю, обновлений нет.

Не удалось установить dotnet 472.

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

Вот пример загрузки игры в новый инопланетный мир под Win10 с помощью метода внедрения оболочки (d3d11, dxgi). Наложение не включено. 1080ТИ б / у.

Win10-trace [1,6 ГБ]: https://www.dropbox.com/s/2yxl18f7a2l126o/SpaceEngineers.7z?dl=0
_Linux-trace []: поможет ли это? _

Возможно, это поможет в дальнейшем расследовании проблем с производительностью.

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

Screenshot_20190916_073836

Я также заметил, что во время задержки одно ядро ​​достигает 100%, а использование других ядер сокращается. Я не знаю, что с этим делать. Возможно, остальная часть игры ждет чего-то однопоточного.

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

Screenshot_20190916_074053

Ниже приведен немного более узкий выбор другого шипа, показывающий похожие проблемы.

Screenshot_20190916_074206

У меня нет технических знаний об этом, но я надеюсь, что это поможет.

AFAIK inode mismatch - это предупреждение sysprof о том, что файл был изменен на диске. В вашей трассировке это может означать, что двоичные файлы Proton и steam изменились на диске с момента записи трассировки. Таким образом, фактический символ исполняемых файлов, вызвавших всплески, не может быть отображен.

Хорошо ... что-то в MS Dotnet вызывает проблему с задержкой. Я получил SE, работающий с wine-mono 4.9.3, после того, как я воспользовался советом

Игра прошла безупречно… никаких заиканий. Было только слабое временное затухание звука (возможно, некоторые проблемы с faudio, как и в Fallout 4), но никаких задержек или заиканий, которые сопровождали его. Я могу подтвердить, что заикание действительно существует с MS DotNet, даже с выпотрошенным компилятором скриптов. Так что я не совсем уверен, что не так с компилятором скриптов, что означает отсутствие модов ... но это действительно означает, что mono сможет очень хорошо запускать ванильную игру, если компилятор скриптов отключен.

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

Хорошо, я создал видео, показывающее версии игры для DotNet и Wine-Mono. Моно-версия работает намного лучше!

Вот ссылка на видео:
https://youtu.be/LwqRLCQR6aM

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

Это большая разница!
Спасибо за ваш тест!

С моно это без модов и без скриптов?
Или просто ванильная игра без модов?

Как сделать так, чтобы игра запускалась?
Есть где-нибудь документы? (Я действительно не очень хорош в таких вещах).

@LtSich И дотнет, и моно версии - это обычная ванильная версия без скриптов и модов.

Чтобы запустить игру, я воспользовался советом @InflexCZE и вырезал компилятор скриптов.
Сообщение от 10 августа от @InflexCZE :

Судя по журналу, брак Mono и нашего компилятора не особо радует stuck_out_tongue
Ничего страшного, нам это не нужно.

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

1. Get rind of all stuff in this ctor.
   https://github.com/KeenSoftwareHouse/SpaceEngineers/blob/master/Sources/VRage.Scripting/MyScriptWhitelist.cs#L47

2. Make this method return `null` (prevent it from invoking the compiler core)
   https://github.com/KeenSoftwareHouse/SpaceEngineers/blob/master/Sources/VRage.Scripting/MyScriptCompiler.cs#L154

Выглядит гладко @ Linux74656 . В конце концов, твой тяжелый труд окупился, CG 👍
Возможно, я смогу взглянуть на компилятор вечером, может быть, мы сможем заставить его работать, чтобы вы тоже могли наслаждаться модами.

Кстати, я взглянул на предоставленную трассировку @ Linux74656 , но это было либо мое некомпетентное использование PerfView, либо отсутствующие символы или что-то в этом роде, но в любом случае я не смог открыть трассировку и увидеть какую-либо полезную информацию там. Поскольку моно кажется довольно стабильным, я думаю, мы можем продолжить его и оставить отладку .NET FW кому-то другому :)

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

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

Вот журналы и файл минидампа игры, когда она пытается загрузить сохраненный мир.
Здесь используется wine-mono, и единственный измененный код - отключить всплывающее окно dotnet, поэтому код компилятора скрипта не изменяется.
SpaceEngineers.zip

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

В VRage.Scripting.MyScriptWhitelist есть 6 защитников, которые обеспечивают совместимость белого списка с предоставленным BCL (подробнее об этом здесь: https://github.com/ValveSoftware/Proton/issues/1792#issuecomment-520141233).
Те должны уйти.

Замените следующий IL.thow s на IL.pop за которым сразу следует IL.ret .

MyScriptWhitelist#RegisterMember(MyWhitelistTarget, ISymbol, MemberInfo):
    (2x) throw new MyWhitelistException("The member " + member + " is covered by the " + namespaceKey + " rule");
    (1x) throw new MyWhitelistException("Duplicate registration of the whitelist key " + whitelistKey + " retrieved from " + member);

MyScriptWhitelist#Register(MyWhitelistTarget, INamespaceSymbol, Type):
    (1x) throw new MyWhitelistException("Duplicate registration of the whitelist key " + whitelistKey + " retrieved from " + type);

MyScriptWhitelist#Register(MyWhitelistTarget, ITypeSymbol, Type):
    (1x) throw new MyWhitelistException("The type " + type + " is covered by the " + namespaceKey + " rule");
    (1x) throw new MyWhitelistException("Duplicate registration of the whitelist key " + whitelistKey + " retrieved from " + type);

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

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

Это приведет меня в игру с включенным экспериментальным режимом. Прежде чем я получу сообщение об ошибке.

К сожалению, я не думаю, что сценарии работают. Мне удалось заставить работать несколько базовых модов (DX11 Door pack DX11 Shutters ... и т. Д.), Но такие вещи, как Easy Inventory, не работают.
Я нашел кое-что очень интересным, миссии игровой кампании, похоже, тоже не работают ... я предполагаю, что они полагаются на скрипты. Вы можете увидеть ошибку на видео ниже.
Ссылка на видео: https://youtu.be/aP7FdE4L6-M

Вот файлы журнала этого события:
SpaceEngineers.zip

Да, кампания тоже работает на скриптах.

Есть специальный экран для ошибок загрузки мода. (Ctrl?) + F11 после загрузки в игру. Если во время загрузки что-то пошло не так, оно должно быть там.

Для быстрого тестирования компилятора попробуйте вставить программируемый блок + аккумулятор в пустой мир и загрузить в следующем скрипте. Он должен либо распечатать сообщение в виде подробной информации о блоке, либо выдать вам некоторые ошибки компиляции в случае сбоя. Это должно сказать нам, работает ли компилятор и нуждается в некоторой настройке, или он полностью сломан.

void Main() 
{
    Echo("Yay works");
}

Я создал пустой мир и поместил батарею и программируемый блок с кодом выше. Это был результат после того, как я нажал проверочный код:
Screenshot_20190925_185615
Больше ничего не появилось.
Когда я закрыл его и вернулся в панель управления, я нажал «Запустить», он говорит, что сборка не найдена ... (Результаты ниже)
Screenshot_20190925_190813
Нажатие на перекомпиляцию ничего не делает.

Я думаю, это попадает в категорию "полностью сломанных" :)
Что-нибудь в журнале?

Вот журналы: SpaceEngineers.zip Я также включил журнал, созданный Proton.

Alt + F11 приводит меня к этому экрану:
Screenshot_20190926_073809
и щелчок по открытию в новом окне показывает следующее:
Screenshot_20190925_191201
В этом тесте загружено 4 мода: Easy Inventory (сбой), Text HUD API (сбой), DX11 DoorPack (некоторые проблемы с текстурами, но работают) и жалюзи DX11 (полностью функциональные, без проблем)
Так что, похоже, моды без встроенных скриптов будут работать.

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

Думаю, мне придется отлаживать это самостоятельно. Не могли бы вы записать, как заставить SE работать на моно для меня. Какой Linux использовать, какие пакеты загружать ... Я настрою виртуальную машину и попытаюсь сузить круг вопросов.

Хорошо @InflexCZE Я сделал краткое руководство от начала до конца. Не думаю, что забыл что-то важное, и я сделал руководство для всех. Он неполный, однако недостающие части на самом деле к вам не относятся, так как требует изменения кода.

ПРИМЕЧАНИЕ: я бы избегал виртуальной машины, я бы никогда не смог запустить игру, используя ее. Виртуальная машина может работать для ограниченной отладки кода ... но, вероятно, в конечном итоге будет намного проще установить Ubuntu на _ пустой и отдельный_ (чтобы минимизировать риск потери данных) SSD. Жесткий диск, вероятно, подойдет, но я заметил больше заиканий в игре, когда он установлен на жесткий диск.
Удачи! Надеюсь, это поможет.

Guide.docx

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

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

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

Guide.docx

Спасибо за ваш документ ... Но, черт возьми, вы просто остановитесь на самом важном :(
Вероятно, это то, что KSH должен сделать прямо в игре.
Обойдите проверку dotnet, если есть способ определить, что игра работает в Linux ...

Проверка dotnet должна оставаться для пользователей Windows, но также должна проверять поддержку моно в том же заявлении.

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

@ Linux74656, хотя я понимаю ваше опасение по поводу написания руководства по изменению кода, не могли бы вы хотя бы сказать мне, какой инструмент вы использовали? Браузер сборки MonoDevelop, похоже, не позволяет вносить какие-либо изменения (или я просто не умею его правильно использовать), и я не могу найти какие-либо другие доступные инструменты Linux. У меня есть лицензионная копия Rider на моей рабочей машине, которая может помочь, но я бы постарался не возиться с ней на работе.

Прочтите еще раз, _это инструмент_ есть в гайде :)

@ Linux74656 Кстати, добавьте, пожалуйста, шаг «Включение SteamPlay для всех остальных игр». Мне потребовался час, чтобы понять, почему практически все игры в моей библиотеке предлагают прямую загрузку, просто SE предлагает только потоковую передачу с другой машины (я знаю, я тупой)

@InflexCZE Я действительно видел это, но я надеялся, что что-то, что будет правильно работать в Linux, так как моя установка Windows в настоящее время закрыта, и у меня еще не было ни времени, ни желания исправить это ... Думаю, если нужно, продолжу идти завтра, но с вами сейчас это может оказаться излишним. Все-таки постараюсь протянуть руку где и если получится :)

@ Onyx47 А, извини, я не понял. Я не привык работать с .NET в Linux, поэтому я не знаю там инструментов :(

Я приношу хорошие новости. Мне удалось запустить компилятор, скомпилировать динамическую сборку и тоже ее выполнить. Пока тестировалось только на .NET FW. Уже почти час ночи, так что я не могу беспокоиться, пытаясь переключиться на моно сейчас: stuck_out_tongue:
В любом случае, вот и исправление. Попробуйте, если у вас возникнут проблемы с Mono, я продолжу отладку завтра.

Наш движок вызывает здесь Roslyn:
https://github.com/KeenSoftwareHouse/SpaceEngineers/blob/master/Sources/VRage.Scripting/MyScriptCompiler.cs#L204

Код в ссылке немного устарел, на самом деле в текущей версии игры есть еще один аргумент ( pdbStream ). Выкиньте этот аргумент (вместо этого передайте null ), и компилятор должен его выполнить. (Так что в основном верните его к этой старой версии строки, которая находится в ссылке.)

Обычно это изменение применяется к вчерашним изменениям. Если средство проверки белого списка жалуется (как я уже сказал, BCL не полностью совместим, поэтому он может быть немного неправильно настроен), вы можете очень просто закрыть его, поместив немедленный возврат в начале этого метода:
https://github.com/KeenSoftwareHouse/SpaceEngineers/blob/master/Sources/VRage.Scripting/Analyzers/WhitelistDiagnosticAnalyzer.cs#L43

Извините, @InflexCZE, я полностью это пропустил! Спасибо, что указали на это! Я обновил ссылку на руководство новой версией!

@ Onyx47 К сожалению, я попытался найти инструменты, которые изначально работали в Linux. Мне не удалось найти ничего, что работало. Поэтому я использовал упомянутый инструмент и запустил его с префиксом Wine с установленными vcrun2015 vcrun2017 и dotnet472. кажется, работает довольно хорошо.

Похоже, рядовым пользователям Steam предстоит еще немало работы, чтобы заставить эту игру работать. Я очень надеюсь, что некоторые из этих решений когда-нибудь появятся в обновлении для SE, чтобы люди могли просто нажать кнопку воспроизведения и покончить с этим. Могу вам сказать, что сейчас не многие возятся с составлением собственных скриптов :)

@InflexCZE Вот и все !!!!
Сценарий в игре, который вы дали мне перед компиляцией!

void Main() 
{
    Echo("Yay works");
}

Screenshot_20190926_193213

Easy Inventory тоже работает!
Screenshot_20190926_193524

@InflexCZE
Ух ты!

Увидим ли мы эти изменения в игре в ближайшее время, хотя и в несколько менее хакерской форме? Я бы хотел снова начать играть, это было слишком давно.

Сообщите нам, как будет выглядеть увеличение количества игроков в Linux на вашем конце, когда оно появится на Reddit!

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

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

Может быть, @InflexCZE может проверить это для нас с помощью Keen

Другой вариант - это, конечно, обновления Wine / Proton, которые заставят игру правильно работать с MS .NET, но, поскольку кажется, что это проблема с GC, это может быть далеко, поскольку это, несомненно, сложная проблема.

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

@ Onyx47 Если возможно создать diff, содержащий только необходимые изменения, у него действительно не возникнет никаких юридических проблем, учитывая, что вы не распространяете какую-либо часть IP KSH. По сути это не будет отличаться от обычного мода

Я связался с Keen по поводу законности распространения подобного патча, и человек, которому они отправили электронное письмо, сказал, что они передадут его генеральному директору на встрече в понедельник.

При этом ... Я создал патч Diff и применил его к игре на компьютере моей сестры. Кажется, проблем нет, и он работал нормально. Мы даже можем поиграть в игру Direct Connect по локальной сети. без каких-либо проблем.
Однако меня беспокоит мультиплеер, и, возможно, @InflexCZE может меня просветить. Поскольку я изменил пару файлов DLL игр, чтобы это работало. Каковы шансы, что игра / Steam смогут это обнаружить и подумать, что это форма мошенничества, если игра подключится к официальному / общедоступному серверу? А также, каковы были бы другие возможные последствия того, что игроки на стороне клиента будут запускать модифицированный игровой код, который позволяет некоторым скриптам проходить через фильтр белого списка?

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

Вы проделали очень хорошую работу!
Большое вам спасибо за это!

Я надеюсь, что вы сможете распространять патч.

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

Я оставлю юридическую часть ответственным за это лицу, а в своем ответе остановлюсь только на технических аспектах сделки.

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

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

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

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

Что ж, я подожду потенциального различия, кажется, я либо делаю что-то не так с моим редактированием IL, либо где-то происходит еще одна тонкая вещь, наличие подтвержденной работающей измененной игры, вероятно, было бы лучшей идеей, чем погоня за призраками. Я просто застреваю в цикле загрузки при создании мира. При этом прикрепление логов на всякий случай:

SpaceEngineers.txt

Обратите внимание, что он останавливается на MyDefinitionManager.LoadData() - START , последняя строка - после того, как я принудительно закрыл игру. Учитывая, что там упоминаются скрипты (хотя я даже не включил экспериментальный режим, я хотел сначала протестировать его без этого), я очень надеюсь, что это просто я делаю ошибки при редактировании, а не чувствителен к Mono версии или что-то еще.

РЕДАКТИРОВАТЬ: может быть, это не игра, вчера я узнал, что мой жесткий диск отказывается от призрака, так что да ... кто знает ...

@ Linux74656 У меня вопрос. В этом видео (https://youtu.be/LwqRLCQR6aM) вы показываете, что игра работает довольно плавно на Mono, хотя на графике времени кадра есть некоторые всплески.

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

@InflexCZE
Это могло быть связано с неоптимизированным выводом кода шейдера LLVM. RADV, бесплатный драйвер vulkan, по умолчанию использует LLVM для компиляции шейдеров в игре, и он довольно склонен к заиканию.
Возможно, стоит повторить попытку с новой ветвью ACO от Valve и посмотреть, сохраняется ли заикание. В Killing Floor 2 был такой же микроблок, который исправил ACO.

Захваты рендеринга Space Engineer ранее обрабатывались системой отслеживания обращений dxvk без явных проблем в вызовах API.

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

@InflexCZE Я безуспешно пробовал профилировщик (с модификациями кода) в wine-mono. После загрузки мира он вылетает без сообщения об ошибке. Я пробовал (с модификациями кода) с dotnet и получил тот же результат. Я попробовал как предварительно сохраненный мир с режимом экспериментов, так и совершенно новый мир разбитого красного корабля без экспериментального режима.
Прилагаются журналы для предварительно сохраненного мира как для моно, так и для сети:
LogDOTNETProfiler.zip
LogsMonoProfiler.zip

Я также получил ответ от моего контактного лица Keen, и он сказал, что, поскольку эти изменения вносятся в рамках деятельности сообщества, у Keen нет проблем с этим. Он подчеркнул, что в настоящее время у них нет официальной поддержки Linux.
Поэтому я хотел бы найти время, чтобы поблагодарить @InflexCZE за то, что он помог нам в его свободное время зайти так далеко. Без его помощи это было бы возможно!

Я сейчас создаю руководство, чтобы объяснить, как установить эти исправления. Я опубликую обновление, когда это будет сделано!

Хорошо, я сделал простой репозиторий, который содержит файл readme, объясняющий, как установить исправления, и фактические файлы исправлений, заархивированные и архивируемые.
Вы можете найти это здесь:
https://github.com/Linux74656/SpaceEngineersLinuxPatches

@SpookySkeletons Если это что-то на GPU (плохие шейдеры) или DX API (оболочка Proton), мы увидим всплески на этапе «Present» (цепочка подкачки) или в каком-то конкретном вызове API. Я предполагаю, что это Mono GC, поскольку он не так хорошо оптимизирован, как .NET GC (мы проводили измерения совсем недавно), и на данный момент игра довольно сильно зависит от количества управляемых объектов.

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

@ Linux74656 Очень жаль, что это жесткий сбой без трассировки стека. Думаю, я отпущу это, вы увидите, улучшится ли оно в следующих выпусках.

Одна вещь, которую вы можете попробовать, - это установить для переменной среды "MONO_GC_PARAMS" для игрового процесса значение nursery-size=32m или minor=simple-par или nursery-size=32m,minor=simple-par и посмотреть, влияет ли это на частоту и / или размер шипов соответственно.

В любом случае было приятно работать со всеми вами, и я надеюсь, что вы хорошо проведете время с SE 👍
Если вам понадобится помощь в будущем, не стесняйтесь звонить мне.

Спасибо большое @ Linux74656
Но для меня игра запускается нормально, и когда я пытаюсь запустить карту, игра вылетает.
И после того, как игра вылетает каждый раз, когда я пытаюсь ее запустить ...

Мне нужно удалить папку% appdata% для перезапуска ...

Я сделаю еще тест, чтобы выяснить, в чем проблема ...
Может быть, графическая конфигурация или что-то в этом роде.

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

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

@InflexCZE Я попробовал ваше предложение. Это определенно имело значение!
Это детская-размер = 32м
nursery-size=32m

Это второстепенный = простой-номинальный
minor=simple-par

и это размер детской = 32 м, второстепенный = простой
(Взято из игры, потому что в меню не было никаких всплесков. ПРИМЕЧАНИЕ, этот всплеск НЕ имеет заикания, связанного с ним.)
nursery-size=32m,minor=simple-par

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

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

Я сделаю еще одну попытку как можно скорее, но мне нужно починить мой компьютер сегодня вечером, отказ жестких дисков - отстой :(

@LtSich Вы запускаете сборку modSDK (профилировщик)? В таком случае используйте обычную игру. Я видел только сбои при загрузке, когда bin64 использует сборку modSDK

@LtSich Вы запускаете сборку modSDK (профилировщик)? В таком случае используйте обычную игру. Я видел только сбои при загрузке, когда bin64 использует сборку modSDK

Хм, я помню, что сделал несколько тестов с этим.
Я произведу полную чистую установку и попробую еще раз.

Кстати, как изменить переменную MONO_GC_PARAMS?

[РЕДАКТИРОВАТЬ]
И другой вопрос, должны ли мы продолжать использовать команду PROTON_NO_ESYNC = 1%% для запуска игры?
[/РЕДАКТИРОВАТЬ]

Вы помещаете MONO_GC_PARAMS = детский размер = 32 м, minor = simple-par% command% в параметры запуска Steam для игры. Щелкните правой кнопкой мыши Space Engineers, щелкните Свойства, щелкните УСТАНОВИТЬ ОПЦИИ ЗАПУСКА ... затем вставьте его в поле.
У меня в командной строке нет PROTON_NO_ESYNC = 1, и, похоже, он работает нормально.

Спасибо :)
Сейчас скачиваю игру после удаления всего.
Я смогу сказать, имеет ли это значение.

[РЕДАКТИРОВАТЬ]
По мне игра очень нестабильная ... Даже после удаления / установки игры.
В большинстве случаев я не могу запустить игру, не удалив SpaceEngineers.cfg
И даже если я смогу запустить игру, я не смогу запустить любую карту / игру без сбоев ...
Я сделаю больше тестов позже ... Чтобы попытаться найти конфигурацию, которая не вылетает ...
[/РЕДАКТИРОВАТЬ]

@ Linux74656 Вот документация очень высокого уровня по той магии, которую я предлагал раньше: stuck_out_tongue: Возможно, она вам пригодится, хотя не ждите чудес
https://www.mono-project.com/docs/advanced/garbage-collector/sgen/working-with-sgen

@LtSich Пожалуйста, предоставьте нам журнал игры, чтобы мы знали, что происходит

@InflexCZE Я посмотрю, спасибо!

@InflexCZE : Я обнаружил проблему с запуском игры.
Мне нужно отключить анонимное отслеживание.
Если я включу его, я не смогу перезапустить игру.
Пока я говорю «нет» (я должен говорить «нет» каждый раз, когда запускаю игру), я могу начать игру.

Теперь мне нужно попробовать запустить игру или попытаться подключиться к настраиваемому серверу :)

Вам нужны журналы, когда я выхожу из строя с активированным анонимным отслеживанием?

Я помню, что видел в журналах, что он жалуется на то, что не может получить согласие GDPR, и просто отключился, когда я выбрал нет (это должно быть видно в журнале, который я опубликовал выше). Возможно, некоторые веб-API в Mono не работают / не совместимы на 100%?

Итак, попробовав патч Linux74656, похоже, он работает, за некоторыми заметными исключениями.

  1. Вступительный фильм не воспроизводится (? Наверное, не знаю), и в результате я провел первые 10 минут, глядя на пустой экран, потому что думал, что он завис. Я щелкнул, и он "пропустил" вступление и сообщение GDPR (нажмите "Нет")
  2. Некоторое время он будет работать нормально, а затем внезапно (нужно еще протестировать) игра вылетает на рабочий стол, но в противном случае работает нормально.
  3. Большое количество предупреждений о "низкой скорости симулятора"
    Запуск Arch Linux с RTX 2070 и 8750H (должно быть много, а?)
    Следует отметить, что это заставляет ноутбук звучать как реактивный двигатель, хотя это никогда не шокирует: P

@StripedMonkey. Если вы удалите или переименуете видео, расположенное в SpaceEngineers / Content / Videos / ksh.wmv, оно пропустит вступительное видео и переведет вас в главное меню.
У меня были случайные сбои, но у меня он работал в течение нескольких сеансов продолжительностью более 4 часов без проблем (после запуска). В следующий раз, когда он выйдет из строя, если вы сможете сбросить журналы сюда, мы сможем выяснить, что происходит.
При запуске игры через Proton и DXVK ожидается некоторая потеря производительности ... Я видел некоторые проблемы с производительностью на gtx960 и 4770K, хотя замедление менее заметно на rx580 и R5 2500x. У RTX2070 не должно быть проблем с графикой на средних и высоких настройках, а у 8750H должен быть игровой процесс с некоторыми базовыми модами.
Когда вы нажимаете Shift + F1, на что конкретно он жалуется?

В частности, говорится: «Пониженное качество деформаций и изменений вокселей из-за качества адаптивного моделирования». IIRC, в журналах SE просто часто встречается сообщение GC, но, похоже, оно не связано с моментом сбоя. Следующий сбой, который я сгенерирую, я отправлю в журнал.

Лично я думаю, что это как-то связано с Симом, так как первая авария, с которой я что-то связал, заключалась в том, что я пытался сделать 180 на максимальной скорости в обучающем мире. почти как только я повернулся, он умер. Однако необходимо провести более тщательное тестирование, чтобы понять это.

Я тоже часто получаю это сообщение. Реже на компьютере RX + R5, но все же довольно часто. Поскольку вы используете мобильный процессор ... Я не думаю, что вы можете сделать слишком много для повышения производительности, кроме как обеспечить его хорошее охлаждение и правильный турбонаддув до скорости 4,10 ГГц. Вы также можете попробовать снять отметку с некоторых игровых настроек, таких как герметичность, и посмотреть, повлияет ли это.

SpaceEngineers.log <- Разбился
В целом производительность выглядит нормально, без учета сбоев. Так что я не слишком озабочен улучшением этого в краткосрочной перспективе. Этот сбой был специально сгенерирован после того, как я стал камакази на вражеском корабле NPC. Я разбился почти сразу после смерти (хотя, обратите внимание, я не всегда разбиваюсь при смерти), я не уверен, что именно вызывает это.

Журнал заканчивается, когда вы умерли. Вроде не зафиксировал падение.
Я быстро попытался загрузиться в мир и посмотреть, смогу ли я заставить его вылететь. Я врезал три корабля в землю и еще четыре раза убил себя без проблем. Я заметил, что у моей сестры больше проблем с ее системой RX + R5. Если я смогу выяснить, почему у нее случаются аварии чаще, чем у меня ... Я посмотрю, что смогу выяснить.

Думаю, я понял. Попробуйте установить vcrun2005 с помощью winetricks и посмотрите, решит ли это проблему сбоя. Также убедитесь, что вы установили префиксную версию Windows обратно на Windows 7.

Я действительно надеялся попробовать, но, похоже, я получаю ошибку при попытке загрузить новый мир
https://pastebin.com/E7Ha8aCK - steam-244850.log

РЕДАКТИРОВАТЬ//
Довольно тупой, наверное, стоит дать какие-то подробности.
Журнал сокращен только на кажущиеся интересными биты, большая часть журнала после него - это просто сообщения о том, что символы не найдены миллиард раз.
Система является Slackware64-текущей, Proton 4.11-6, прошла через опубликованное руководство (спасибо Linux74656!), Включая vcrun2005 и установку версии Windows на Windows 7, хотя и до этого она вылетала.

Можно ли с помощью этого исправления проверить, работают ли моды и многопользовательские игры с пользователями Windows?

@Aerol Попробуйте проверить целостность файлов игры, а затем повторно примените исправления.

@jarrard Моды будут работать. Будет работать мультиплеер с другими пользователями Linux. Я не пробовал играть в игру с пользователем Windows ... но она должна работать.

@ Linux74656 Установка vcrun2005 и Windows 7 привела к очень плохому заиканию, переключение обратно на winXP, кажется, исправило? Во всяком случае, мне удалось сыграть немного дольше, чем раньше, хотя, в конце концов, мне все же удалось вылететь. Может, это как-то связано с путешествиями? Я правда не знаю. Я разбирал станцию, и было несколько случаев, когда скорость симулятора опускалась ниже нормы, но затем возвращалась. Как только я покинул станцию ​​и собирался сесть на заброшенный корабль, я снова разбился. Вероятно, это был мой самый длинный пробег без сбоев, но опять же, я не двигался вокруг тонны, а просто измельчал и пытался восстановить корабль.

Я попытался выполнить шаги в вашем руководстве и загрузить игру (в меню время от времени появляются небольшие звуковые всплески), однако запуск нового мира, основанного на Земле, приводит к тому, что игра не запускает мир и происходит зависание процесса.

Пожимают плечами. Я последовал за T, https://github.com/Linux74656/SpaceEngineersLinuxPatches

_При загрузке мира произошла ошибка, проверьте файл журнала. _

@StripedMonkey У меня win7 на обоих, и я заметил заикание только на моем компьютере. Я установил его на winxp, и легкое заикание исчезло. Для единообразия я изменил руководство на WinXP.
Давайте попробуем исправить все, и все будет установлено в вашем префиксе, который установлен у меня,: Я думаю, что это все, что я установил в префиксе с течением времени: vcrun2003 vcrun2005 vcrun2015 vcrun2017 xact d3dcompiler_43 d3dcompiler_47 посмотрим, установит ли вся эта помощь.

@jarrard Это сообщение об ошибке должно было быть отключено файлами исправлений ... попробуйте проверить целостность файлов игры и повторно примените исправления.

Я проверил перед применением патчей, думаю, сделаю это еще раз (да, файлы были изменены по дате)

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

bspatch VRage.Scripting.dll Vrage.Scripting.dll $ HOME / Documents / SpaceEngineers / VRage.Scripting.dll.patch

Смотрите вопрос :)

@jarrard Спасибо! Получил, и в гайде поправили!

@Aerol Посмотрите,

Ну, похоже, прогресс, но остается при использовании памяти 4-5 ГБ и использовании процессора% 50 навсегда, я должен ждать полчаса, чтобы он загрузился или что-то в этом роде? или просто продолжай пытаться? конечно в игре есть проблемы со стабильностью.

Да, это известная проблема. Не ждите его, он никогда не загрузится. Просто закройте его силой и попробуйте перезарядить. Он будет работать примерно в 50% случаев. Я работаю над выяснением причины этого.

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

Тем не менее, сейчас очень играбельная частота кадров, единственная проблема - это сбой / остановка при создании миров, и в моем случае все еще есть небольшое потрескивание звука, возможно, я могу попробовать кое-что с pulseaudio.

Игра работает довольно хорошо на 4k даже с 10k деревом, просто отключите fxaa (используйте reshade smaa, если необходимо), установите шейдер / тени на средний, все хорошо. Может быть, даже более плавный, чем окна, потому что под окнами у меня странный fps, даже если он на 80 или около того. (может быть быстрая синхронизация или что-то подобное).

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

ОБНОВЛЕНИЕ: PULSE_LATENCY_MSEC = 90 в командной строке помог выделить для моей звуковой карты USB OMNI, теперь действительно нет никакого потрескивания, за исключением очень слабого случайного прерывания звука, которое не раздражает. УРА

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

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

У меня такая же задержка на экране загрузки, которую получают другие люди, и, кроме того, такая же задержка, кажется, появляется в игровые моменты после загрузки автономного мира. Он загружает процессор примерно на 40%.
Рендеринг не останавливается, а частицы все еще движутся, но физический движок останавливается, сообщает о низком качестве симуляции и на короткое время останавливается в кадровом режиме, пока он сидит и ничего не делает физически.

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

У меня такой же экран загрузки, что и другие люди

Да, похоже, это часто случается при создании нового мира, если вы продолжаете пытаться, кажется, что с каждой попыткой он прогрессирует по-разному. Я обнаружил, что работает% 100, это загрузка СУЩЕСТВУЮЩЕГО мира, который вы создали ранее, я думаю, вы даже можете их загрузить. Но да, похоже, зависание во многом связано с созданием нового мирового банкомата.

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

где находятся файлы .log?

Арка лин4.19.69-1-лтс
GTX-1070
Intel I5-7600K

Более того, загрузка существующих миров очень часто зависает на экране.

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

Вот мир, который вы можете использовать, он переходит в местоположение вашей папки сохранения _ (не уверен, что этот номер уникален для меня, но папки внутри могут перейти в любую существующую у вас) _. Это сработало на 100% из 4 или 5 раз, когда я пытался его загрузить. На самом деле это файл 7zip, fyi.

spaceengineerssavedworld.zip

@StripedMonkey Готово, конечно, но, к сожалению, все еще не работает.

@EduardoGodoy Можете ли вы добавить PROTON_LOG = 1 к параметрам запуска, запустить игру и проверить ~ / steam-244850.log? Журнал игры находится по адресу ~ / .local / share / Steam / steamapps / compatdata / 244850 / pfx / drive_c / users / steamuser / Application Data / SpaceEngineers / SpaceEngineers.log

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

Любопытно, что могло бы так затормозить ...

Хм, вы можете попробовать мои скомпилированные файлы, но я не понимаю, как это может пойти не так или иначе.
compiledfilesfortesting.zip

Если это не сработает, значит что-то еще рушит его за вас. Возможно, видеодрайверы? Я использую только nvidia на атм pop_os Plasma5 для моего 1080TI. (если вы используете AMD, попробуйте заставить поставщика протонов обратиться к NVIDIA)

«Компилятор» не должен иметь к этому никакого отношения.

@EduardoGodoy Они находятся в префиксе Steam. ~/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/Application Data/SpaceEngineers/SpaceEngineers.log
Чтобы установить и запустить эту штуку, я:

  1. Установлены winetricks, wine-mono и bsdiff (до этого Wine буквально никогда не устанавливал)
  2. Еще до того, как запустить игру в первый раз, запустил WINEPREFIX="$HOME/.local/share/Steam/steamapps/compatdata/244850/pfx" winetricks --force -q vcrun2015 xact
    и
    WINEPREFIX="$HOME/.local/share/Steam/steamapps/compatdata/244850/pfx" msiexec -i "Downloads/wine-mono-4.9.3.msi"
  3. Проверьте игровые файлы и запустите
bspatch Sandbox.Game.dll Sandbox.Game.dll $HOME/Downloads/Patches/Sandbox.Game.dll.patch
 ```
and

bspatch VRage.Scripting.dll Vrage.Scripting.dll $ HOME / Downloads / Patches / VRage.Scripting.dll.patch
``

  1. (Необязательно) Удалите SpaceEngineers/Content/Videos/ksh.wmv чтобы при загрузке не появлялся черный экран.

Насколько я знаю, это все, что я сделал, чтобы он работал на Arch.
Протон версии 4.11
Версия Wine 4.16
вино-моно 4.9.2
Winetricks 20190912-1
драйвер nvidia 435.21

вот журнал:
https://pastebin.com/zZ7MzreW

«Компилятор» не должен иметь к этому никакого отношения.

@EduardoGodoy Они находятся в префиксе Steam. ~/.local/share/Steam/steamapps/compatdata/244850/pfx/drive_c/users/steamuser/Application Data/SpaceEngineers/SpaceEngineers.log
Чтобы установить и запустить эту штуку, я:

1. Installed winetricks, wine-mono, and bsdiff (Literally never installed Wine before this)

2. Before even running the game for the first time ran `WINEPREFIX="$HOME/.local/share/Steam/steamapps/compatdata/244850/pfx" winetricks --force -q vcrun2015 xact`
   and
   `WINEPREFIX="$HOME/.local/share/Steam/steamapps/compatdata/244850/pfx" msiexec -i "Downloads/wine-mono-4.9.3.msi"`

3. Verify the gamefiles and run
bspatch Sandbox.Game.dll Sandbox.Game.dll $HOME/Downloads/Patches/Sandbox.Game.dll.patch

и

bspatch VRage.Scripting.dll Vrage.Scripting.dll $HOME/Downloads/Patches/VRage.Scripting.dll.patch
1. (Optional) Delete `SpaceEngineers/Content/Videos/ksh.wmv` to prevent a black screen on loading.

Насколько я знаю, это все, что я сделал, чтобы он работал на Arch.
Протон версии 4.11
Версия Wine 4.16
вино-моно 4.9.2
Winetricks 20190912-1
драйвер nvidia 435.21

вот что я запустил, чтобы установить патч:
patch

Протон версии 4.11-6
NVIDIA-SMI 435.21
wine-4.15 (Staging) (хотя вином не пользовался)
winetricks 20190615 (Winetricks тоже не использовал)

из того, что я вижу, единственное отличие моей системы от вашей заключается в том, что я не запускал "vcrun2015 xact", я сделаю это и посмотрю, получу ли я эту ошибку.

ЖУРНАЛ:
https://pastebin.com/zZ7MzreW

Пытался очистить префикс несколько раз, и мой md5 соответствует исправленным файлам.

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

Gentoo с AMDGPU.

Хммм, у вас случайно нет процессора Zen2? Ryzen 3xxx

Это Intel 4-го поколения, которое скоро снова станет 3-м поколением, когда я достану свой ноутбук с загрузкой ядра. У него нет никаких новых проблем с инструкциями процессора.

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

из того, что я вижу, единственное отличие моей системы от вашей заключается в том, что я не запускал "vcrun2015 xact", я сделаю это и посмотрю, получу ли я эту ошибку.

Вам 110% необходимо иметь vcrun2015 et al. Установлены.

NVIDIA-SMI 435.21
wine-4.15 (Staging) (хотя вином не пользовался)
winetricks 20190615 (Winetricks тоже не использовал)

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

@StripedMonkey, я запустил WINEPREFIX="$HOME/.local/share/Steam/steamapps/compatdata/244850/pfx" winetricks --force -q vcrun2015 xact
а потом:
WINEPREFIX="$HOME/.local/share/Steam/steamapps/compatdata/244850/pfx" msiexec -i "Downloads/wine-mono-4.9.3.msi

на этот раз, когда я запустил игру, она не вылетела сразу, однако я застрял в экране загрузки на 15 минут (начал генерировать мир в 01:30 по местному времени), никаких сбоев, но я предполагаю, что игра будет застрял на экране загрузки навсегда
по-прежнему не было звука и все еще не было возможности использовать alt-tab, пришлось покинуть XFCE и убить процесс в терминале.

я не упомянул моно, потому что он должен быть установлен по умолчанию, не так ли? также у меня нет protontricks для проверки моноверсии на префиксе steam (winetricks показывает версию для вина, которую я предлагаю?)

Я обновлю winetricks до последней версии и проверю моно версию.

вот новый журнал:
https://pastebin.com/YNLAK9We
Обновить:
моно версия - «моно-6.0.0.319-1»

Попробуйте эти патчи:
NEWPatches.tar.gz
Вам нужно будет поместить исходную DLL в каталог SE, ​​прежде чем применять эти исправления. IE проверяет целостность файлов игры, если вы не делали резервные копии.

Если это сработает, я обновлю репозиторий этими патчами утром.

я не упомянул моно, потому что он должен быть установлен по умолчанию, не так ли? также у меня нет protontricks для проверки моноверсии на префиксе steam (winetricks показывает версию для вина, которую я предлагаю?)

Моно! = Вино-моно. Вам не нужны установленные protontricks, чтобы проверить это, и (в руководстве Linux74656 это специально упоминалось) он запрашивал 4.9.3

Я могу сказать вам наверняка, что это моно неверно просто потому, что управление версиями не соответствует текущему выпуску wine-mono, который выпустил 4.9.3 неделю назад.

я не упомянул моно, потому что он должен быть установлен по умолчанию, не так ли? также у меня нет protontricks для проверки моноверсии на префиксе steam (winetricks показывает версию для вина, которую я предлагаю?)

Моно! = Вино-моно. Вам не нужны установленные protontricks, чтобы проверить это, и (в руководстве Linux74656 это специально упоминалось) он запрашивал 4.9.3

Я могу сказать вам наверняка, что это моно неверно просто потому, что управление версиями не соответствует текущему выпуску wine-mono, который выпустил 4.9.3 неделю назад.

как проверить вино-моно? при поиске в Google я вижу только вопросы, связанные с ошибками "mono not found".

Попробуйте эти патчи:

Если это сработает, я обновлю репозиторий этими патчами утром.

Что изменилось?

@ Linux74656 С этим новым патчем я получаю сообщение «Пожалуйста, обновите среду выполнения .net с помощью этого исправления: \ nhttps: //support.microsoft.com/kb/3120241 \ n \ nВ противном случае игра не будет работать правильно.

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

Вот несколько журналов, когда я пытаюсь создать новую игру: https://dl.cafe-philo.net/logsse.tar.gz
Я не нашел ничего полезного в этих журналах, но, возможно, я смотрю не в том месте.

Префикс настроен так, как говорится в документе, попробуйте winxp или win7.
Попробуйте добавить другой компонент (crun2003 vcrun2005 vcrun2015 vcrun2017 xact d3dcompiler_43 d3dcompiler_47)

Я заметил небольшую ошибку на VRage и Vrage и повторно применил патч.

Я пытался запустить игру с множеством разных опций (экспериментальные, звуковые, скриптовые и т. Д.).

Я установил mono-devel, но это ничего не меняет.

Я вернусь позже, может я что-то пропустила ...

Я установил mono-devel, но это ничего не меняет.

как упоминалось ранее wine-mono! = mono-devel. вы установили его с https://github.com/madewokherd/wine-mono/releases ?

Я установил mono-devel, но это ничего не меняет.

как упоминалось ранее wine-mono! = mono-devel. вы установили его с https://github.com/madewokherd/wine-mono/releases ?

Да, да, я установил это с помощью wintetricks, как указано в документации.
Но чтобы быть уверенным, что я установил mono-devel, моя игра продолжает вылетать, когда я пытаюсь что-то запустить.

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

SpaceEngineers.log

@jarrard Вы пробовали загружаться на сервер Windows? В журнале четко указано, что таблица MP отключена (проблема, о которой я упоминал ранее)

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

таблица MP выключена (проблема, о которой я упоминал ранее)

Извините, я не понимаю, о чем вы говорите, это был сервер Australia 2, который работал под Windows.

[...] существует фиксированная таблица MP-запросов, которую клиент и сервер создают при запуске. Если вы измените свою игру слишком сильно, вы можете сбросить этот стол на свою сторону, и сервер откажется разрешить вам подключиться
https://github.com/ValveSoftware/Proton/issues/1792#issuecomment -536186685

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

Хорошо. @SpookySkeletons

Что изменилось?

Новые патчи взяты из правильно измененных двоичных файлов. Скажем так, я был TheBigDumb tm и сделал короткий путь при изменении декомпилированного кода, фактически изменив методы кода C # и перекомпилировав его (без полного исходного кода ... я правильно знаю!). На этот раз я просто использовал редактор промежуточного языка для изменения двоичных файлов. Кажется, он устранил многие из возникших зависаний запуска. Я усвоил урок. Больше никаких ярлыков, если я точно не знаю, что делаю!

@StripedMonkey

@ Linux74656 С этим новым патчем я получаю сообщение «Пожалуйста, обновите среду выполнения .net с помощью этого исправления: \ nhttps: //support.microsoft.com/kb/3120241 \ n \ nВ противном случае игра не будет работать правильно.
Вы можете попробовать просто повторно применить патч к Sandbox.Game.dll. Хотя я бы просто повторно применил оба патча к новым оригинальным копиям файлов dll.

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

@jarrard К сожалению, похоже, что многопользовательский режим с компьютерами под управлением Windows в данный момент недоступен. Но я могу подтвердить, что если вы играете с другими компьютерами Linux, на которых есть этот патч, игра будет работать довольно хорошо.

Я обновил репозиторий руководств здесь: https://github.com/Linux74656/SpaceEngineersLinuxPatches, чтобы включить новые патчи. Каждый должен повторно следовать руководству и применить новые исправления. Убедитесь, что вы применили исправления к исходной DLL (IE проверяет целостность игры или копирует сделанные вами резервные копии обратно в каталог Bin64)

Я чуть не перевернул свой стол, пока не понял, что у космических инженеров только что вышло обновление: smile: Если ваша игра обновится до последней версии, патчи работать не будут. Соберу такую ​​новую ПРАВИЛЬНО! и выставить их на репо.
@InflexCZE есть ли способ узнать, какая версия игры установлена ​​на компьютере, не запуская игру? Это поможет убедиться, что люди применяют правильные исправления.

К сожалению, он обновлялся за моей спиной: sweat_smile: Думаю, мне нужно дождаться этих новых патчей.

Боюсь, что версия игры запечена в двоичном файле, и в ней нет лишнего "Version.txt" или чего-то подобного.

@ Linux74656

cat $HOME/.local/share/Steam/steamapps/appmanifest_244850.acf | grep buildid | cut -f 4 | sed -e 's/"//g'

Немного неуклюжий, вероятно, лучший способ сделать это с помощью awk (мне действительно стоит использовать awk !), Но он работает для получения текущего установленного номера сборки. Номер последней сборки можно получить с помощью steamcmd если вы планируете написать сценарий запуска для проверки при каждом запуске или что-то в этом роде, см .: https://steamcommunity.com/app/346110/discussions/0/530646715636738547 /

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

Хорошо, я загрузил новые патчи 1.192.103. Если ваша игра обновилась, вам необходимо применить эти патчи вместо других.
@ Onyx47, как вы думаете, простая проверка контрольной суммы dll будет достаточно эффективной? Я мог бы попробовать написать сценарий для сравнения пользовательских DLL со списком предварительно сгенерированной контрольной суммы, которая теоретически должна соответствовать установленной версии игры. Возможно, тогда он сможет автоматически запустить bspatch и установить правильную версию для пользователя.

Думаю, @ Linux74656 подойдет , но я искренне думал, что может сработать что-нибудь попроще:

  1. Скрипт для генерации патчей, которые:

    • Берет исходную DLL, модифицированную DLL, создает патч и помещает его в архив с именем что-то вроде SE_Linux_$buildnumber.tar.gz

    • Загружает файл куда-нибудь, будь то GitHub или какой-нибудь другой сервер

  2. Скрипт для пользователя, который:

    • Читает текущую установленную версию и проверяет, существует ли файл с именем SE_Linux_$buildnumber.tar.gz на сервере / GitHub.

    • Если это 404, патч еще не существует

    • Если он существует, загрузите его, примените, запишите где-нибудь файл (каталог данных SE, вероятно, будет самым безопасным), который содержит номер последнего загруженного патча. Это можно использовать в будущем, чтобы проверить, нужно ли что-нибудь загружать при следующем запуске.

    • Если все в порядке (или патч не требуется), запускаем игру через Steam

Конечно, некоторая проверка файлов по-прежнему является вариантом где-то во всем процессе, но это кажется наименьшим объемом работы, требуемой для обеих сторон уравнения после написания сценариев. Единственным недостатком этого является то, что он не будет обрабатывать обновления, поэтому, возможно, запускающую часть лучше оставить в Steam, поэтому он обновляется там, и пользователь может просто запустить патчер, если обновление появится.

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

Я, вероятно, смогу найти что-нибудь полезное сегодня вечером, как только верну свою машину в рабочее состояние.

ну, новый патч или нет, моя игра продолжала вылетать ...
Тестирование Debian ... Что ж ... Это печально для меня ....

@LtSich У меня есть
Я проверил страницу steamdb космических инженеров, и vcrun2017 - единственный указанный vcruntime. Он (и многие другие) установлен в моей системе, и сбои происходят очень редко.

есть уже решение для скриптов? Я не могу подключиться ни к одному серверу, на котором выполняются скрипты.
обновление работает очень хорошо. Спасибо

@LtSich У меня есть
Я проверил страницу steamdb космических инженеров, и vcrun2017 - единственный указанный vcruntime. Он (и многие другие) установлен в моей системе, и сбои происходят очень редко.

Спасибо за подсказки, но это ничего не меняет ... Ну, я просто сяду сзади и буду ждать благословения Бога, может, это сработает :)

Я надеюсь, что в какой-то момент может появиться многопользовательский режим с Windows-машинами. Кажется, действительно немного обидно.

Я купил и установил Space Engineers, чтобы посмотреть, заработает ли он наконец. Я выполнил инструкции, чтобы патчить игру.

Я смог попасть в главное меню, как и ожидалось, но не смог запустить сценарий или пользовательскую игру. Игра добралась до экрана загрузки, немного загрузилась, может быть, от 5 до 10 секунд, а затем процесс остановился. Я не уверен, где искать проблему. Вот несколько файлов журналов, но я ничего не могу из них узнать:

SpaceEngineers.log
steam-244850.log

@dsge сделай мне одолжение. Убедитесь в целостности файлов игры.
Сохраните копию этого файла: https://github.com/Linux74656/SpaceEngineersLinuxPatches/blob/master/autopatcher.py на свой рабочий стол или в папку загрузок. Затем откройте терминал / Konsole в том же каталоге и запустите:
python3 autopatcher.py

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

Я немного поработаю над автопатчером, если вы не против @ Linux74656. По крайней мере, я знаю, что могу помочь с питоном: P

Что ж, оказывается, что большая часть того, что было испорчено на старом жестком диске, было материалом Steam, так что я на всякий случай перезагружаю игру. Пока я жду, начал некоторую работу над основными вещами в патчере, мы разберемся с запросами на вытягивание и слияниями, поскольку я вижу, что @StripedMonkey тоже помогает.

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

Ну, у вас наверняка были некоторые из тех же проблем с этим: P, хотя вы пошли по-другому. На самом деле я создам проблему на странице исправлений, чтобы мы могли заняться устранением неполадок SE.

Я приветствую любую помощь, когда дело доходит до этого! У меня очень мало опыта работы с питоном.

@ Linux74656 Я проверил файлы игры и запустил файл py (версия 7f742ac1 ):

$ python3 autopatcher.py
Please insert your install location for Space Engineers. Should look somthing like this /home/USER/.local/share/Steam/steamapps/common/SpaceEngineers/ 
/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/
b6d168be7e38640817f8d7f1de523346
cf4b860b7917fa53d8c95e0c6a377451
VERSION FOUND: 1.192.103
https://raw.github.com/Linux74656/SpaceEngineersLinuxPatches/master/V1.192.103Patches.tar.gz
Program End!

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

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

  • после заставки
  • после нажатия «Нет» в диалоге сбора данных
  • и после экрана загрузки.

Я сделал около 15 попыток и не смог пройти мимо экрана загрузки. Мне вообще не удалось войти в игру, ни разу.

Эти журналы были сделаны, когда мне удалось добраться до экрана загрузки до того, как игра вылетела:
SpaceEngineers.log
steam-244850.log
(Стоит ли публиковать их? Я понятия не имею, что опубликовать, чтобы помочь)

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

Насколько я понимаю, на самом деле все наоборот. Нажатие «да» приводит к сбою. : think: (как тот, кто всегда отбивал «нет»)

@InflexCZE Если я скажу «да», то после этого я получу тот же результат (процесс исчезает после экрана загрузки), однако при следующем запуске игра вылетает на заставке с фактическим сообщением о сбоях:

image

See the end of this message for details on invoking \njust-in-time (JIT) debugging instead of this dialog box.\n\n************** Exception Text **************\nSystem.ComponentModel.Win32Exception (0x80004005): Sikeres.

  at System.Diagnostics.Process.StartWithShellExecuteEx (System.Diagnostics.ProcessStartInfo startInfo) [0x00102] in <f508ff7dc2d3475abfc25b6b60600edf>:0 
  at System.Diagnostics.Process.Start () [0x00032] in <f508ff7dc2d3475abfc25b6b60600edf>:0 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
  at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x0001b] in <f508ff7dc2d3475abfc25b6b60600edf>:0 
  at System.Diagnostics.Process.Start (System.String fileName) [0x00006] in <f508ff7dc2d3475abfc25b6b60600edf>:0 
  at VRage.Platform.Windows.Forms.MyMessageBoxCrashForm.linklblLog_LinkClicked (System.Object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) [0x00010] in <6669c852ae2c4f45a64d6d2ce7411724>:0 
  at System.Windows.Forms.LinkLabel.OnLinkClicked (System.Windows.Forms.LinkLabelLinkClickedEventArgs e) [0x00020] in <2880ee803a384afc84fc95657b396772>:0 
  at System.Windows.Forms.LinkLabel.OnMouseUp (System.Windows.Forms.MouseEventArgs e) [0x000fb] in <2880ee803a384afc84fc95657b396772>:0 
  at System.Windows.Forms.Control.WmMouseUp (System.Windows.Forms.Message& m, System.Windows.Forms.MouseButtons button, System.Int32 clicks) [0x001c3] in <2880ee803a384afc84fc95657b396772>:0 
  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x005a0] in <2880ee803a384afc84fc95657b396772>:0 
  at System.Windows.Forms.Label.WndProc (System.Windows.Forms.Message& m) [0x0005d] in <2880ee803a384afc84fc95657b396772>:0 
  at System.Windows.Forms.LinkLabel.WndProc (System.Windows.Forms.Message& msg) [0x0001b] in <2880ee803a384afc84fc95657b396772>:0 
  at System.Windows.Forms.Control+ControlNativeWindow.OnMessage (System.Windows.Forms.Message& m) [0x00001] in <2880ee803a384afc84fc95657b396772>:0 
  at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x000b3] in <2880ee803a384afc84fc95657b396772>:0 
  at System.Windows.Forms.NativeWindow.Callback (System.IntPtr hWnd, System.Int32 msg, System.IntPtr wparam, System.IntPtr lparam) [0x00030] in <2880ee803a384afc84fc95657b396772>:0 

\n************** Loaded Assemblies **************\nmscorlib\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/4.5/mscorlib.dll\n----------------------------------------\nSpaceEngineers\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/SpaceEngineers.exe\n----------------------------------------\nSandbox.Game\n    Assembly Version: 0.1.1.0\n    Win32 Version: 0.1.1\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/Sandbox.Game.dll\n----------------------------------------\nnetstandard\n    Assembly Version: 2.0.0.0\n    Win32 Version: 4.6.26011.1\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/netstandard.dll\n----------------------------------------\nVRage.Render\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/VRage.Render.dll\n----------------------------------------\nVRage.Steam\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/VRage.Steam.dll\n----------------------------------------\nVRage\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/VRage.dll\n----------------------------------------\nSpaceEngineers.Game\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/SpaceEngineers.Game.dll\n----------------------------------------\nSystem\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System/4.0.0.0__b77a5c561934e089/System.dll\n----------------------------------------\nVRage.Library\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/VRage.Library.dll\n----------------------------------------\nSystem.Xml\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Xml/4.0.0.0__b77a5c561934e089/System.Xml.dll\n----------------------------------------\nVRage.Math\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/VRage.Math.dll\n----------------------------------------\nVRage.Game\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/VRage.Game.dll\n----------------------------------------\nVRage.NativeWrapper\n    Assembly Version: 0.1.1.0\n    Win32 Version: 0.1.1\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/VRage.NativeWrapper.dll\n----------------------------------------\nSandbox.Graphics\n    Assembly Version: 0.1.1.0\n    Win32 Version: 0.1.1\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/Sandbox.Graphics.dll\n----------------------------------------\nSandbox.Common\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/Sandbox.Common.dll\n----------------------------------------\nSystem.Core\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Core/4.0.0.0__b77a5c561934e089/System.Core.dll\n----------------------------------------\nVRage.Platform.Windows\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/VRage.Platform.Windows.dll\n----------------------------------------\nSystem.Windows.Forms\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Windows.Forms/4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll\n----------------------------------------\nSteamworks.NET\n    Assembly Version: 13.0.0.0\n    Win32 Version: 13.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/Steamworks.NET.dll\n----------------------------------------\nSharpDX\n    Assembly Version: 4.2.0.0\n    Win32 Version: 4.2.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/SharpDX.dll\n----------------------------------------\nSharpDX.DXGI\n    Assembly Version: 4.2.0.0\n    Win32 Version: 4.2.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/SharpDX.DXGI.dll\n----------------------------------------\nSystem.Runtime\n    Assembly Version: 4.1.2.0\n    Win32 Version: 4.6.25714.01\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/System.Runtime.dll\n----------------------------------------\nSharpDX.Direct3D11\n    Assembly Version: 4.2.0.0\n    Win32 Version: 4.2.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/SharpDX.Direct3D11.dll\n----------------------------------------\nVRage.Ansel\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/VRage.Ansel.dll\n----------------------------------------\nProtoBuf.Net\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/ProtoBuf.Net.dll\n----------------------------------------\nProtoBuf.Net.Core\n    Assembly Version: 1.0.0.0\n    Win32 Version: 1.0.0.0\n    CodeBase: file:///Z:/media/egyteras/SteamLibrary/steamapps/common/SpaceEngineers/Bin64/ProtoBuf.Net.Core.dll\n----------------------------------------\nSystem.Reflection.Emit.Lightweight\n    Assembly Version: 4.0.1.0\n    Win32 Version: 4.0.0.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/4.5/Facades/System.Reflection.Emit.Lightweight.dll\n----------------------------------------\nSystem.Reflection.Emit.ILGeneration\n    Assembly Version: 4.0.1.0\n    Win32 Version: 4.0.0.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/4.5/Facades/System.Reflection.Emit.ILGeneration.dll\n----------------------------------------\nAnonymously Hosted DynamicMethods Assembly\n    Assembly Version: 0.0.0.0\n    Win32 Version: n/a\n    CodeBase: \n----------------------------------------\nSystem.Drawing\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll\n----------------------------------------\nAccessibility\n    Assembly Version: 4.0.0.0\n    Win32 Version: \n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/Accessibility/4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll\n----------------------------------------\nSystem.Configuration\n    Assembly Version: 4.0.0.0\n    Win32 Version: 4.6.57.0\n    CodeBase: file:///C:/windows/mono/mono-2.0/lib/mono/gac/System.Configuration/4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll\n----------------------------------------\n\n************** JIT Debugging **************\n

Мне пришлось отредактировать поле GDPRConsent моего SpaceEngineers.cfg обратно с True на False чтобы пройти мимо этого.

Или память меня подводит. Не обращай на меня внимания, мне пора спать: upside_down_face:

РЕДАКТИРОВАТЬ:
В любом случае было бы хорошо отслеживать «известные проблемы» где-то вместе с «известными решениями».

Обновление для тех, кто может попасть в игру. установите vcrun2003 поверх рабочего префикса. Это может устранить сбой во время игры. Лучший способ проверить это - создать творческую версию мира Alien planet world, попасть в истребитель сдерживания и начать стрелять ракетами по ближайшим меньшим кораблям. Казалось, что это надежно вызывает сбой на компьютере моей сестры, пока я не установил vcrun2003. Сделайте игру максимально напряженной и, если она не вылетает, загрузитесь в другой мир и попробуйте еще раз. Если он все еще не вылетает, я думаю, проблема в этом.

Что касается людей, которые до сих пор не могут попасть в игровой мир из-за сбоев и зависаний. Давайте попробуем установить все, что есть в моей истории Winetricks, поверх моноверсии в руководстве.
winetricks --force -q vcrun2003 vcrun2005 vcrun2015 vcrun2017 msxml6 xact d3dcompiler_47 corefonts dxvk winxp

Сообщите мне, если что-нибудь изменится!

@ Linux74656
Я снова проверил свои файлы. Тогда я сделал:

$ rm -rf / media / egyteras / SteamLibrary / steamapps / compatdata / 244850 / pfx

$ WINEPREFIX = "/ media / egyteras / SteamLibrary / steamapps / compatdata / 244850 / pfx" winetricks --force -q vcrun2003 vcrun2005 vcrun2015 vcrun2017 msxml6 xact d3dcompiler_47 corefonts dxvk winxp

$ WINEPREFIX = "/ media / egyteras / SteamLibrary / steamapps / compatdata / 244850 / pfx" msiexec -i "./wine-mono-4.9.3.msi"

$ python3 autopatcher.py
bsdiff установлен!
Не удается найти каталог для установки. Введите расположение папки steamapps, в которой установлен Space Engineers.
/ media / egyteras / SteamLibrary / steamapps /
BuildID: 4246126
checkum.json Получено
Патчи получены
Программа завершена!

(версия autopatcher.py из Linux74656 / SpaceEngineersLinuxPatches # 5)

К сожалению, поведение после этого остается таким же, как и в моих предыдущих комментариях: игра вылетает влево и вправо, и я не могу пройти через экран загрузки.
Насколько я могу судить, в файлах журнала изменений нет:
SpaceEngineers.log
steam-244850.log

Тогда я провел быстрый тест, и моя игра вылетела при загрузке, я применил новые патчи для v103, но, возможно, я еще раз проверю и попробую еще раз.

@dsge Спасибо за исправление автопатчеру! Подскажите версию вашей ОС, версию ядра.

@ Linux74656
image

steam_systeminfo.txt

Перенес свою игру на NVMe, переделал патч. В любом случае, вторая попытка сработает.
Я действительно надеюсь, что разработчик Space Engineers сможет заставить эти патчи работать с многопользовательскими серверами Windows, я считаю, что это довольно важная проблема, которую необходимо решить.

@dsge Попробуйте запустить игру с этим файлом конфигурации:
Не меняйте никаких настроек, пока не попытаетесь загрузить пустой мир.

РЕДАКТИРОВАТЬ: используйте это вместо этого, другой был на французском (я на самом деле не говорю по-французски, но я смотрел, вела ли игра по-другому с другой локализацией ... не похоже, что это так).
SpaceEngineers.cfg.zip

Да, мне было интересно, почему французский язык лучше подходит для запуска игры: D

Так пользовательской игры под названием «Empty World» делает нагрузку до :

image

(Я не знал, что существует буквально кастомная игра с таким названием, поскольку я сказал, что купил игру только вчера.)

Другие пользовательские игры , похоже,

Системный монитор, что игра на самом деле ничего не читает и не записывает с моего диска и использует 50% процессора (то есть полностью использует 2 из 4 моих ядер).

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

Вы можете установить разные параметры для моно при загрузке, atm я использую _MONO_GC_PARAMS = питомник-размер = 32 м, второстепенный = простой-par% command% _

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

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

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

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

Хотя я счастлив, что все это дало нам хоть какое-то представление, и я действительно надеюсь, что мы выясним, является ли Mono хотя бы временным жизнеспособным решением, я наполовину склонен просто попробовать вернуться в dotnet и посмотреть, следит ли за журналами Wine может выявить, что именно вызывает сбой сборщика мусора, и посмотреть, сможем ли мы исправить это в Wine ...

Вы можете установить разные параметры для моно при загрузке, atm я использую _MONO_GC_PARAMS = питомник-размер = 32 м, второстепенный = простой-par% command% _

@jarrard Я пробовал это только сейчас. К сожалению, единственное отличие, которое я заметил, заключается в том, что теперь игра возвращается к 100% сбоям после экрана загрузки (что означает, что она не застревает там). «Пустой мир» по-прежнему загружается нормально, без изменений.

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

@ Linux74656 Спасибо и всем, кто тратит на это время. Многие из моих друзей играют в эту игру, и я очень хотел бы попробовать ее, чтобы убедиться, что она хороша. По крайней мере, пока в одиночной игре.

@InflexCZE Как вы думаете, люди могут попробовать установить эти патчи в свои версии игры для Windows? Это позволит некоторым людям играть с пользователями Windows, которые создают свои собственные игры.

РЕДАКТИРОВАТЬ: Также есть способ временно отключить сбор мусора во время работы dotnet? Если его отключение устраняет заикание, мы узнаем, в чем проблема.

@dsge Проверьте файлы игры. Не применяйте патч, а вместо этого создайте новый префикс для запуска игры с помощью следующей команды:
Winetricks --force -q vcrun2015 xact dotnet472

Если вы можете запустить игру в мир с этим, то ваша проблема, скорее всего, связана с wine-mono и патчами.

@ Linux74656 Вы можете попробовать, но я сомневаюсь, что внесенные вами изменения вызовут такую ​​огромную разницу в таблице MP, как я видел в журналах. Для SE существует множество плагинов и проектов сообщества, которые выполняют тысячи небольших исправлений или полностью заменяют целые методы и системы, и он отлично работает с обычными клиентами.

Имхо, это еще одна проблема, связанная с различиями в Mono BCL. К сожалению, исправить это, в отличие от компилятора скриптов, было бы намного сложнее, в основном из-за сериализации.

Что касается GC, это очень важная система, которая отслеживает и восстанавливает память, которая больше не используется игрой, чтобы ее можно было переработать и использовать снова (да, очень экологичная система, мать-природа гордится: stuck_out_tongue :) Я уверен есть способ указать .NET FW GC выделить новую память из ОС вместо того, чтобы пытаться идентифицировать и восстанавливать биты, которые больше не используются (иначе говоря, вместо того, чтобы делать все, что требовало высокой производительности), но имейте в виду, вы смотрите на RAM расход где-то в районе + 500гб просто чтобы попасть в пустую сцену. Так что, если у вас нет действительно перспективного ПК или Linux не знает какой-то чертовски хорошей магии в отношении подкачки, я не думаю, что это хорошая идея. В любом случае попытка вручную настроить его с правильными параметрами, как мы делали с Mono GC, может исправить это.

В качестве альтернативы вы можете попробовать .NET Core. Последнее, что я слышал, он очень хорошо работает в Linux и должен быть очень совместим с .NET FW, даже в BCL. В последний раз, когда мы пробовали, он смог запустить выделенный сервер SE _ почти_ из коробки, так что кто знает, возможно, он может работать даже лучше, чем Mono.

@InflexCZE Я попробую dotnetcore и посмотрю, будет ли он сотрудничать.
Я изучил документацию о том, как работает dotnet GC. Изображение, показанное в этом разделе, говорит о потоковой передаче: https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals#what -happens-during-a-garbage-collection действует аналогично профилированию. выстрелы, которые я пытался получить. Одно ядро ​​переходит на 100% использования, в то время как остальные, похоже, значительно уменьшаются или останавливаются. Может ли это быть совпадением?

@InflexCZE Я больше думал о проверке журналов, чтобы увидеть, какие вызовы собственных библиотек Windows не полностью реализованы в Wine, и просто посмотреть, можно ли их правильно заполнить и поможет ли это. Многие вещи в реализации Windows API в Wine просто заглушены и реализованы ровно настолько, чтобы все работало на начальном этапе, и постепенно заполняются.

Что касается .NET Core, нам все равно нужно запускать его под Wine (по крайней мере, части VRage). Я имею в виду, что сам VRage полагается на WINAPI, верно? И я также с подозрением отношусь к совместимости ABI, поскольку это все-таки приложение для Windows. Кроме того, нам все еще нужно перевести эти вызовы DirectX либо в OpenGL, либо, предпочтительно, в Vulkan. Возможно, это можно сделать независимо от Wine, я не читал об этом.

Возможно, любые ошибки Wine, которые поражают .NET 4.7, также повлияют на Core, поскольку нам все равно придется запускать его версию для Windows. И обратите внимание, текущее использование Mono для SE - это не то, что мы запускаем собственный Linux Mono и просто загружаем ему исполняемый файл SE, это на самом деле сборка, созданная специально для Wine, и на самом деле это приложение Windows.

Кроме того, поскольку я использую .NET Core для разработки под Linux (но я не занимаюсь низкоуровневыми вещами в .NET в достаточной степени, чтобы разбираться в этой части), я могу сказать вам, что да, код в основном будет работать нормально. , но есть много вещей, которые не работают на разных платформах: конечно, нет Windows Forms, некоторые вещи, такие как System.Drawing, теперь существуют как пакет nuget, но не на 100% совместимы ... По сути, что-то вроде службы, которую вы запустить на сервере? Должно сработать. Что-нибудь графическое? На самом деле, нет.

Я уверен, что есть способ проинструктировать .NET FW GC выделять новую память из ОС вместо того, чтобы пытаться идентифицировать и восстанавливать биты, которые больше не используются (иначе говоря, вместо того, чтобы делать все, что требовало высокой производительности), но имейте в виду, что вы ' Смотрим на потребление оперативной памяти где-то в районе + 500 ГБ, чтобы попасть в пустую сцену.

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

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

@ Onyx47 Вы правы, в тот момент я не понимал, что Core на самом деле не защитит нас от потребности в Win API, а запуск Win build поверх Proton, вероятно, будет иметь те же проблемы, что и .NET FW.

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

Я быстро поискал в Интернете, к сожалению, похоже, что .NET FW GC не предлагает никаких параметров конфигурации (по крайней мере, не стоит того, фиксированный размер кучи, размер Gen 0, выделение потоков для коллекций, .. .), так что если у вас в рукаве есть еще несколько трюков, как профилировать / идентифицировать пики, я думаю, нам здесь не повезло :(

@InflexCZE Если я установлю фиксированный размер кучи и / или Gen 0 на что-то нелепое, например, 25 ГБ (одна из моих систем имеет 32 ГБ оперативной памяти), помешает ли это сборщику мусора работать хотя бы на несколько секунд?
Если да, то как бы мне это сделать?

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

Теперь я понимаю. Извините за неразбериху.

@dsge Проверьте файлы игры. Не применяйте патч, а вместо этого создайте новый префикс для запуска игры с помощью следующей команды:
Winetricks --force -q vcrun2015 xact dotnet472

Если вы можете запустить игру в мир с этим, то ваша проблема, скорее всего, связана с wine-mono и патчами.

@ Linux74656 Я так и сделал, вот результаты.

Я получаю это дважды перед заставкой и один раз, если я выхожу из игры через меню (нажатие «да» приведет меня сюда - я полагаю, спасибо Microsoft):

image

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

image

image

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

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

@dsge Да ... именно из-за заикания мы начали использовать wine-mono.
По крайней мере, мы знаем, что проблемы с запуском в мир связаны с wine-mono и патчами.

Да, я знаю, почему обсуждается и сборка мусора. Я просто хотел задокументировать, что, по крайней мере, с помощью dotnet472 я получаю почти такой же результат, как и все остальные. В отличие от патчей wine-mono +, которые по какой-то причине кажутся вам намного лучше, чем мне.

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

В настоящее время процесс упоминается здесь (не супер чистый р - н , хотя, я буду работать над ридми в бите , если Linux не делает). В основном установите vcrun2005, xact, wine-mono и либо используйте инструмент patch, чтобы применить исправления Linux, либо сделайте это вручную с помощью bspatch. В настоящее время не может работать в многопользовательском режиме Linux-Windows, но linux-linux, похоже, работает.

@InflexCZE Что именно делает <gcServer enabled="true"> ? Будет ли это сломать игру, если я не пойму? Я добавил его в некоторые файлы и, похоже, решил проблему заикания dotnet. Это не может быть так просто ... тем не менее, поскольку это как-то связано со сборкой мусора, до тех пор, пока то, что я изменил, не сломало другие части игры, интенсивно использующие ЦП, я предполагаю, что заикание в dotnet было связано с GC все время . Если мне не хватает чего-то еще (учитывая, как поздно, это очень возможно: smile :),

где параметр _gcServer enabled = "true" _? что в конфиге где-то?

Вы тестировали его на серверах windows mp, чтобы узнать, можете ли вы к ним присоединиться (лучший тест на сервере без модов для начала).

MS довольно расплывчато говорит о том, что на самом деле делает пресет серверного GC, но из того, что я могу сказать, он пытается использовать больше ядер (которые обычно присутствуют на серверных машинах) и выделяет большие сегменты памяти, что приведет к менее частым запускам GC, обмен на увеличено общее потребление памяти процессом.
https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals#workstation -and-server-garbage-collection

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

Это действительно интересная находка. Читаю немного сам (вставлено из документации):


For single-processor computers, the default workstation garbage collection
should be the fastest option. Either workstation or server can be used for
two-processor computers. Server garbage collection should be the fastest
option for more than two processors.

Это заставляет меня думать, что, хотя сборщик мусора может быть затронут при работе под Wine, возможно ли, что часть проблемы также связана с планировщиком? IIRC, многие люди сообщают, что игра использует только 50% ЦП, хотя она борется (и я думаю, что это тоже случилось со мной), хотя я уверен, что видел, что она использовала не менее 80% в Windows на моем компьютере. Возможно, проблема заключается в том, что сборщик мусора работает на том же ядре, что и остальная часть игры, хотя это не происходит изначально, потому что планировщик Windows обрабатывает вещи по-разному и / или планировщик Linux не знает, что он безопасен для потоков (возможно, потому что несколько вещей, которые отдельно в реальной системе Windows все могут работать под процессом wineserver в Linux), поэтому он отказывается перемещать его на другое ядро?

Я протестирую это сегодня вечером со своей стороны и сообщу о результатах. Если это сработает, это будет отличной новостью! Тем более, что я не вижу причин для того, чтобы это не было включено в самой игре, учитывая ее требования, я думаю, что мы можем в значительной степени рассчитывать на то, что каждый, кто играет, будет иметь многоядерную систему или, по крайней мере, гиперпоточную, которая все еще должна повысить производительность. Да, я знаю, что в документации упоминается несколько процессоров , но с современными процессорами эта линия все равно размыта, не так ли?

Здравствуйте, у меня есть:
<Runtime> <gcServer enabled = "true" /> </Runtime>

вставлен в конец моего SpaceEngineers.exe.config, и игра теперь работает с .net уже 4 часа без заиканий.
Также в мультиплеере на сервере Windows.

Может кто-нибудь еще попробовать?

@ Onyx47 SE может эффективно использовать от 2,5 до 4 потоков, в зависимости от сложности сцены. Это хорошо известная проблема, связанная со старой архитектурой используемого движка. Если вы не видите, что он хорошо масштабируется с количеством предоставленных кодов, это не _обязательно_ означает, что это какая-то ошибка в вашей установке Linux. Скорее наш технический долг.

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

Я очень рад, что даже кросс-игра с Windows работает нормально. Скрипты и моды тоже работают, верно?

Я только что тестировал скрипты.
работает как в мультиплеере, так и в одиночной игре.
Даже с модами проблем нет

загрузка моего графического процессора немного выше, чем в Windows

Я вижу всплеск каждые 10-20 секунд в моем hud dxvk, даже небольшое падение кадров в секунду, 5-10 кадров в секунду, но в среднем между 50-60 с vsync и высокими настройками (GPU RX580 8 ГБ)

Тогда вы только что установили dotnet472, xact и внесли изменения в конфиг?
Это все ? Можно последнюю протонную версию использовать?

установленные пакеты: protontricks 244850 -q --force vcrun2005 vcrun2015 dotnet472 xact
Настройки запуска steam: DXVK_HUD = full PROTON_NO_ESYNC = 1% COMMAND% -skipintro

Протон: 4,11-6
Ядро: 5.0.0-30-общий Ubuntu 19.04

Обновление: извините, я забыл dotnet472

хорошо, со своей стороны, очевидно, я не могу установить vcrun2015, у меня такая ошибка:
Примечание: команда /home/sich/.steam/steam/steamapps/common/Proton 4.11 / dist / bin / wine vc_redist.x86.exe / q вернула статус 102. Прерывание.

но я установил dotnet472 и добавил <gcServer enabled = "true" /> время выполнения, и теперь он работает очень хорошо :)

Я тестировал 2/3 мода и, видимо, это нормально.

Но добавить это в конец файла .config не получится. :

<Runtime>
  <gcServer enabled = "true" />
</Runtime>

В конце я изменил файл конфигурации следующим образом:

    </assemblyBinding>
  <gcServer enabled = "true" />
  </runtime>

Спасибо за подсказки.
Если вы знаете, как увеличить использование памяти (у меня 32 ГБ), просто скажите мне, возможно, это поможет.

конец моей конфигурации выглядит так:

  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <runtime>  
    <gcServer enabled="true"/>
  </runtime>
</configuration>

хорошо, тогда это внутри конфигурации.
Вероятно, это то же самое, пока мы остаемся внутри конфигурации.

Но без dotnet472 я ничего не мог сделать.

@diKsens Итак, похоже, мне не нужно добавлять его во все файлы конфигурации (Sandbox.Game.dll.config и VRage.Game.dll.Config). Только SpaceEngineers.exe.config. Это хорошо знать.

Я могу подтвердить, что сценарии действительно работают, и что подключение к серверам Windows (keen na) работает без проблем.

Могу я попросить один журнал SE из .NET FW? Просто обычный журнал после успешного запуска игры.

@InflexCZE Вот и все!
SpaceEngineers.log

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

_У игры не было проблем с производительностью, когда я делал то, для чего она была разработана.
Это плохо что ли? 😛

О ... Я думал, что игра ограничивает скорость корабля до 100 м / с из-за проблем с производительностью?

Это зависит. Бросьте это на планету и ожидайте столкновения завтра, в этот раз. Это сильно ускорит симуляцию танка даже на приличных установках.
https://steamcommunity.com/sharedfiles/filedetails/?id=501767620

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

2019-10-03 09:27:06.247 - Thread:   1 ->  GC Memory: 1,857,883,240 B
2019-10-03 09:27:06.251 - Thread:   1 ->  Process Memory:  B

Может быть, стоит изучить вопрос о Wine, может GC использует аналогичный вызов WINAPI и не получает данных?

Этот вызов запрашивает NtQuerySystemInformation ( SystemProcessInformation ):
https://docs.microsoft.com/en-us/windows/win32/api/winternl/nf-winternl-ntquerysysteminformation

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

Что ж, с этим небольшим исправлением конфигурационного файла теперь он работает, на самом деле чертовски хорошо. Даже подключился к MP серверу, никаких проблем.

vcrun2015 у меня тоже не устанавливался, но, возможно, он уже установлен Steam? в любом случае это круто. С трэш-рейтинга на protondb в основном на золото :)

https://source.winehq.org/git/wine.git/blob/a8745d1211033dd38682e2f4e8bc322d47a15e0f : /dlls/ntdll/nt.c#l2373

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

@InflexCZE Для лолза я сделал вот что:

Это зависит. Бросьте это на планету и ожидайте столкновения завтра, в этот раз. Это сильно ускорит симуляцию танка даже на приличных установках.

И я вижу вашу точку зрения: smile:

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

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

@InflexCZE Я был

https://source.winehq.org/git/wine.git/blob/a8745d1211033dd38682e2f4e8bc322d47a15e0f : /dlls/ntdll/nt.c#l2460

Немного посмотрев на документы, я предполагаю, что PrivatePageCount - это соответствующее свойство? Который, похоже, нигде не установлен.

@jarrard Все возможно при

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

(Нет, мы не отказываемся от SE сейчас, мы все еще работаем над этим 😄)

@ Onyx47 Понятно . Это могло бы объяснить некоторые вещи

@InflexCZE : это хороший способ.

Просто если вы можете подумать о нашем маленьком сообществе Linux, когда вы работаете над своей новой игрой, это может быть очень хорошо :)
Просто то, что мы можем играть с Proton без особых проблем, похоже, скоро мы сможем сделать это с Space Engineers :)

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

Теперь, когда в Space Engineers можно играть на Linux, я смогу полностью удалить Windows, незадолго до конца жизни Win7, просто идеально: D

И, кстати, спасибо всем, кто так усердно трудится, чтобы найти решение для космических инженеров!
Спасибо, @InflexCZE, за то, что присоединились к нам здесь, и за всю оказанную помощь!

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

Еще раз спасибо всем за помощь в этом разобраться. Это было интересное путешествие: smile:

@LtSich Решение не обращать особого внимания на Linux очень простое, деньги. Это касается всех студий повсеместно. Либо движок, который использует игра, поддерживает Linux из коробки, в этом случае игра «поддерживает Linux», либо движок не поддерживает его, в этом случае никого не волнует и фокусируется только на основных платформах. Разработчики дорогие, и доля рынка менее 1% говорит о многом.

Что касается VRage, то теперь мы поддерживаем также XBox, поэтому нам пришлось немного реструктурировать движок, чтобы он не зависел от платформы. Это означает, что, реализовав ограниченный интерфейс, игра сможет работать на любой платформе, которая может запускать .NET, поэтому, если у вас возникнут какие-либо проблемы с нашими будущими играми, вы можете просто повторно реализовать этот интерфейс с правильными вызовами Linux и иметь хорошо провести время с новой игрой.

Мы можем быть <1%, но я думаю, что мы довольно громкие для того, чтобы быть такой маленькой группой: P

Мы можем быть <1%, но я думаю, что мы довольно громкие для того, чтобы быть такой маленькой группой: P

И решительно!

Ага, ну что ж, мой обед не будет оплачен, не так ли? 😛

Ага, ну что ж, мой обед не будет оплачен, не так ли? stuck_out_tongue

Я согласен с краудфандингом, чтобы собрать деньги, чтобы внести некоторые изменения в игру, чтобы она лучше работала в Linux ... Я уверен, что многие люди согласятся дать немного денег, чтобы игра в Linux работала более гладко ... .

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

И не забывайте, что скоро появится Google Stadia, и он будет на серверах Linux ...
Возможность запускать игру на Proton / Linux дает возможность продавать игру на Google Stadia ...

А насчет Windows ... Win10 - это чума ... Многие люди хотели бы перейти на Linux, чтобы этого избежать ...
Я работаю с серверами Linux более 10 лет, но сейчас использую его на своем компьютере только 1 год ... Потому что я не хочу использовать Win10 ...

Но не волнуйтесь, я полностью понимаю, почему KSH не поддерживает Linux.
И я очень благодарен вам за помощь :)

Да, и вот хороший пост от Linux-разработчика, интересно читать :)
https://beardedgiant.games/benefits-of-supporting-linux-if-you-are-a-small-indie-developer/

Нас больше 1%. Паровой обзор борется. Я полностью свободен от Windows в течение 10 лет, и я прошел опрос только один раз. Еще один момент - не рассчитывайте на статистику Net Marketshare и т. Д. Многим пользователям Linux по разным причинам все же приходится использовать пользовательский агент Windows.

Привет, ребята! Приятно видеть, что найден обслуживаемый обходной путь, но давайте постараемся, чтобы этот отчет о совместимости был сосредоточен на игре. Не стесняйтесь обсуждать общее состояние игр на Linux на форумах.

Если вы все еще открыты для обсуждения даже возможных соображений относительно поддержки Linux в будущих выпусках Keen, возможно ли иметь какой-то канал на разногласиях Keen (я помню, что он существовал некоторое время назад) для решения этой темы, поэтому мы не сбиваем с пути эту ветку выпусков Протона слишком далеко от намеченной цели, как сказал Кисак? Я думаю, что в этом отношении можно провести интересные дискуссии, особенно с учетом того, что ландшафт графического программирования (vulkan) и dotnet меняется.

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

Проверьте это: https://youtu.be/RBqQAkYWBGA?t=60 : tada:: tada:: tada:

Еще раз спасибо всем, кто помог найти эти обходные пути!

Подтверждаю и успех! Некоторая графика в настоящее время вылетает, но я не уверен, игра ли это или запускается в Proton, так как это иногда случается даже в Windows, к сожалению ...

Могу подтвердить, что вышеупомянутое исправление работает с моей стороны, добавив только следующее в мой файл SpaceEngineers.exe.config, разрешает частые падения производительности, и игра работает для меня со стабильной скоростью 120 кадров в секунду при высоких настройках на моем i7-7700k / GTX 1070. Мультиплеер тоже работает нормально.

Также необходимо установить dotnet472 и xact через winetricks или protontricks.

<runtime> <gcServer enabled="true"/> </runtime>

\для меня уже существует, поэтому мне просто нужно было поставить \

Испытываете ли вы какие-либо проблемы с запуском после возврата на .NET FW с сервером GC, например, на Mono, зависание на экране загрузки, сбои или что-то еще?

Испытываете ли вы какие-либо проблемы с запуском после возврата на .NET FW с сервером GC, например отсутствие Mono, зависание на экране загрузки или что-то еще?

dotnet472 не имеет для меня этой проблемы. Пока в этом отношении все работает, как ожидалось. Я могу надежно запустить игру и запустить любую пользовательскую игру, которую я пробовал.

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

Провел несколько часов, играя в MP-игру в модифицированном мире с 5-6 другими людьми, испортил скрипты, пока был там, и все это было размещено на машине Windows (просто локальный мир на машине друга, а не DS).

Здесь и там были всплески, которые все еще могли быть связаны с GC, но он работал довольно стабильно со скоростью 120 FPS на моем 3GB 1060 и Core i5 4460, и все это при запуске в окне с включенным композитингом в моей среде рабочего стола. Спустился ниже, когда мы начали много строить, что неудивительно, поскольку не было уверенности, какая потеря производительности была связана с каким фактором в тот момент.

CDsvdlb

В целом, я бы назвал его полностью играбельным: +1:

Да, я думаю, это дает ему золотой рейтинг на ProtonDB, который неплохо работает с небольшими изменениями.

Вау, это действительно взорвалось (мое электронное письмо). Поздравляем с поиском исправления / обходного решения, я смог запустить и поиграть с dotnet472 и xact, установить параметр конфигурации gc и в итоге мне понадобился PROTON_NO_ESYNC для предотвращения сбоев при загрузке.
Я отправил в ProtonDB отчет с золотым рейтингом. Спасибо Linux74656 за настойчивость и InflexCZE за проницательность!

Так что, vcrun не нужен или он все еще нужен кому-то?

Я не устанавливал vcrun2015, но Steamplay, возможно, уже установил его, не проверял.

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

Мне не удалось установить vcrun2015, но с dotnet472 и изменением конфигурации все было в порядке.

Я думаю, что vcrun2015 установлен Steam как предварительное условие при первом запуске. Вероятно, он также пытается установить dotnet, но для этого требуется некоторый взлом 64-битных префиксов, которые обрабатываются winetricks, поэтому нам все равно нужно запускать его отдельно. Что касается xact, я думаю, что он может быть предустановлен или входит в состав DirectX или чего-то еще в Windows. Со временем мы, возможно, сможем пропустить и это, но FAudio пока не поддерживает формат файла, используемый SE, поэтому пока мы придерживаемся собственных библиотек Windows.

FAudio предназначен для замены Xact, но, похоже, в этом случае он не работает.

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

Интересно, что поскольку я знаю, что Skyrim использует тот же формат файла, я поискал и нашел следующее:

https://github.com/Kron4ek/FAudio-Builds

Похоже, кто-то построил его с поддержкой WMA, и, как сообщается, он работает в Skyrim. Возможно, стоит попробовать это и для SE, это означает, что мы избавимся от еще одного внутреннего требования.

Стоит попробовать, я когда-нибудь попробую, не знаю, когда, скорее всего, 10 из вас, ребята, опередят меня, если да, дайте нам знать, как это пойдет. (Фаудио с WMA).

В качестве ярлыка я слышал, что у proton-GE уже есть faudio с wma, но могу ошибаться.

@ Onyx47 попробуйте установить d3dcompiler_47 в свой префикс. У меня также были случайные сбои графики, но после установки они, похоже, исчезли (конечно, это было нечасто для начала, это все еще могло произойти).
Также я только что создал новый префикс с помощью winetricks для установки faudio вместо xact. Кажется, проблема с появлением звука. Я изменю руководство, чтобы включить оба из них, если кажется, что оно решит проблемы людей.

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

Похоже, что фактическое воспроизведение файлов .wmv на данный момент маловероятно. вы можете проверить проблему № 1464 для получения дополнительной информации.
Я попытался установить медиа-фундамент и использовать / переопределить различные DLL с ноутбука с Windows 7. Это не повлияло на воспроизведение.
Я не знаю, какие форматы видео может загружать игра, но я попытался преобразовать вступление в несколько десятков различных типов, когда я думал, что заикание может быть связано со звуком и фоновыми видео в главном меню, ничего толком не вышло. Я уверен, что кто-то со временем разберется ... но пока просто отключение вступительного видео - лучший вариант.

Пробовал Proton-GE, и он просто отключился при загрузке мира, так что, похоже, это не работает, если кому-то интересно. Думаю, мне нужно будет скомпилировать свой собственный faudio, также стоит отметить, что сам игровой звук отлично работает без поддержки faudio wma, поддержка wma - это то, что использует MUSIC.

https://github.com/Kron4ek/FAudio-Builds

Я упустил из виду, что есть скомпилированные релизы ... ой, да, компилировать самому - головная боль, нужно установить полдюжины путей зависимостей, которые я не совсем понимаю. (Я могу скомпилировать базовый faudio, но для поддержки wma требуется 5 дополнительных конфигураций пути)

@jarrard Я установил faudio через winetricks (в новом префиксе без xact), и, похоже, он работал нормально.

хорошо, возможно, winetricks / protontricks использует версию с поддержкой wma, что хорошо, поскольку без поддержки ffmpeg это как бы сильно ограничивает faudio.

Подтверждение того, что faudio от winetricks работает для меня: +1:

Хорошо, так что faudio явно работает лучше, но осталась одна вещь, которая меня действительно беспокоит.
Например, когда корабль прибывает к вам, звуки его двигателя будут повторяться и повторяться снова и снова, пока вы не загрузите другую область или не выйдете.
Еще не играл в выживание, но это, по крайней мере, было в кампании. Точно, я помню, как это происходило именно в этот момент: https://youtu.be/6MihPOJUrQ4?t=2623
Конечно, если я правильно помню, постоянные звуки двигателя возникали всякий раз, когда двигатель запускался, но эта сцена должна позволить воспроизвести проблему.

У меня были проблемы с "застреванием" звука в Windows, хотя и не так часто, как вы говорите. Это означает две вещи:

  1. Прежде чем приступить к устранению неполадок, связанных с проблемой Proton, нам нужно создать сценарий, который надежно создает зависающий звук в Proton, но не в Windows
  2. В конечном итоге это может быть не только недостатком Proton, но и небольшая разница во времени, из-за которой состояние гонки будет чаще выполняться. В таком случае устранить неполадки будет практически невозможно, и она исчезнет в одночасье, если Keen удастся исправить исходную ошибку.

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

Возможно, переделайте свой префикс с помощью XACT и протестируйте этот сценарий еще несколько раз и посмотрите, возникает ли он там. Если это происходит только с faudio, тогда это может быть отчет об ошибке, необходимый для этого в этом разделе?

У меня были аналогичные проблемы со звуковыми блоками, звук не заканчивался, а просто повторял начало сэмпла. Например, звук, который должен воспроизводиться в течение 2 секунд, будет воспроизводиться в течение 1,5 секунд, а затем снова будут воспроизводиться первые 0,5 секунды, а не последние 0,5 секунды (числа только для иллюстративных целей, время не учитывается). И это было с xact, еще не успел протестировать с faudio. Кто-нибудь может подтвердить?

Если это происходит и с xact, это может быть ошибка Wine или, возможно, ошибка PulseAudio. Если кто-нибудь все еще использует в системе чистый ALSA, могут ли они попытаться воспроизвести это?

image
Я получаю это сообщение об ошибке при попытке запустить игру или при выполнении команды WINEPREFIX.
Возможно ли это из-за того, что у меня --force запускает команду несколько раз с одним и тем же префиксом как с xact, так и с FAudio.
Я недавно перешел на Linux и не знаком с Wine или любыми связанными с ним программами, такими как Proton или Winetricks. У меня есть приятель по Linux (который наконец заставил меня переключиться), который до сих пор мне помогал.

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

Когда я добавляю "PROTON_NO_ESYNC% command%" к параметрам запуска, он вообще не запускается. Просто говорит «Выполняется», затем «Синхронизация» и обратно ни к чему.

Я попытался установить xact и dotnet472 с помощью winetricks или protontricks. Установка dotNET повреждена, и игре требуется dx11. (ArchLinux парень)

наверное устаревшие винетрики

@CrafterSvK Вы можете попытаться создать префикс, используя dotnet48 (для этого потребуется последняя версия winetricks, winetricks --self-update ). Я использовал его вместо dotnet472, и, похоже, он работает так же. Хотя у меня все еще появляются всплывающие окна rundll32 при запуске, просто нажмите «Нет», когда они всплывают, и игра должна начаться нормально.

вы можете сказать Wine отключить rundll32?

Я попытался отключить его, и, похоже, он работал. Ошибка больше не появляется, и игра работает нормально при ограниченном тестировании.

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

Я попробовал winetricks --self-update ничего не изменилось и установил dotnet48 , теперь версия ОС Windows XP, что странно primusrun %command% мгновенно вылетает, ENABLE_PRIMUS_LAYER=1 optirun %command% кажется, создает окно в течение 1 секунды а графика Intel ничего не делает. : / (У меня 64-битный префикс, это проблема?) Похоже, это проблема, из-за которой я не могу заставить работать Vulkan на моем ноутбуке. Мне удалось запустить его на встроенной графике, но только в меню. После загрузки игры происходит сбой.

Наконец-то вернулся на ПК. @ thorsten-passfeld, когда вы снова воспроизводите бесконечно повторяющиеся звуки, не могли бы вы проверить этот экран (Ctrl + F11), чтобы увидеть, нашли ли вы там звук, который вас беспокоит. Здесь записываются все звуки, которые воспроизводятся в данный момент, по крайней мере, из его PoV.
image

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

Конечно, чем проще сцена, тем лучше для отладки.

@CrafterSvK Не могли бы вы

Также, если вы можете опубликовать спецификации своей системы из Steam «Справка> Информация о системе» в текстовом файле и загрузить его, это может быть полезно.

info.zip
Ну вот. Большое спасибо. (Сейчас я учусь в школе, но сегодня я собираюсь попробовать nvidia-xrun вместо bumblebeed с помощью primus_vk)

Похоже, проблема с видеоплеером. Попробуйте удалить (или переименовать) все видео в "SE_INSTALL_PATH / Content / Videos / *" и посмотрите, что у вас получится.

@CrafterSvK Какую видеокарту nvidia использует ваш ноутбук? А у вас установлены проприетарные драйверы Nvidia?
Ни один из них не указан в информации Steam.
Также игра работает на 64-битной версии, поэтому требуется 64-битный префикс, так что это нормально, если ваш префикс будет 64-битным. Также кажется, что у большинства пользователей больше стабильности, когда в качестве префикса для версии Windows установлено значение winxp, так что это тоже нормально.

Что ж, Steam не должен работать на графике nvidia, когда используется шмель. Установил nvidia-xrun все работает нормально и стабильно. 70 кадров в секунду при минимальных настройках с 950M

@CrafterSvK Приятно слышать! Рад, что он хорошо работает!

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

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

@ Linux74656 Наверное, тоже нужно добавить в руководство

Понял! Обновлен раздел «Проблемы» в руководстве !

Обновление: вещь PULSE MSEC у меня не сработала. Похоже, у меня старая звуковая карта, которая не поддерживает должным образом импульсное воспроизведение без сбоев (TIL!). Я нашел альтернативные инструкции здесь: https://www.reddit.com/r/wine_gaming/comments/83j0mh/wine_and_pulse_audio_latency/dvk60mp/

По сути, измените конфигурацию pulseaudio для загрузки с tsched = 0 и меньшими (кажущимися) фрагментами, чтобы звук был идеальным. Теперь он получает золотой рейтинг по протону. Блестящие материалы. 6 месяцев назад я попробовал, но даже не запустилось. : +1:

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

Тем не менее, буфер обмена ДЕЙСТВИТЕЛЬНО работает, и похоже, что игровые скрипты на 100%.

Как и просили ранее, у нас теперь есть специальный канал, посвященный SE в Linux, на нашем официальном KSH Discord. Не стесняйтесь присоединиться к нам там:
https://discord.gg/keenswh

Просто для информации, у меня гораздо лучший результат с xact против faudio.
В последнем тесте я установил xact и xact_64.
И я внес изменение, упомянутое здесь: https://www.reddit.com/r/wine_gaming/comments/83j0mh/wine_and_pulse_audio_latency/dvk60mp/

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

С faudio у меня какая-то странная задержка звука, это очень раздражает.
И это, похоже, сказывается на производительности.

Может, это зависит от оборудования или системы, я не знаю ...
Но людям, у которых проблемы с faudio, следует попробовать xact.

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

Тем не менее, буфер обмена ДЕЙСТВИТЕЛЬНО работает, и похоже, что игровые скрипты на 100%.

На самом деле это проблема и для Windows, так что ничего особенного для Wine / Proton / Linux.
Есть несколько отчетов об ошибках, связанных с этой проблемой.
Очень приятно, когда я переключаюсь на блокнот или дискорд, чтобы что-то напечатать, и игра тоже начинает запускать кучу действий. / с

Мы обнаружили проблему в Windows, и она будет выпущена в следующем патче игры.
Надеюсь, это также решит проблему в Linux.

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

После использования автопатчера я могу запускать и играть, однако он срабатывает каждые 2 секунды или около того. При использовании полного HUD DXVK он показывает красную линию на графике каждый раз, когда срабатывает. В остальном я получаю около 70-90 кадров в секунду на Земле.

i7 6700k, 1080ti, 32 ГБ DDR4 3200 МГц

Это было похоже на это?

Это было похоже на это?

Да, где это установить?

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

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

Да, извините, это было скрыто (https://github.com/ValveSoftware/Proton/issues/1792#issuecomment-536643269)

Установите мои параметры запуска на: MONO_GC_PARAMS = размер детской = 32 м, второстепенный = простой параметр DXVK_HUD = полный PULSE_LATENCY_MSEC = 60% команда%

Вот как выглядит график:

image

Я думаю, что это полезно только с моно: MONO_GC_PARAMS = размер детской = 32 м, второстепенный = простой номинал
Вы пытались построить свой префикс с xact вместо faudio?
У меня гораздо лучшая производительность с xact ... Faudio У меня такая же проблема, что и у вас ...

Да это только для моно.

@ matty-r, пожалуйста, проверьте, правильно ли autopatcher выполнил шаги 3 и 4 (например, сервер GC присутствует в вашей конфигурации) https://github.com/Linux74656/SpaceEngineersLinuxPatches/blob/master/README.md#step -3

Да это только для моно.

@ matty-r, пожалуйста, проверьте, правильно ли autopatcher выполнил шаги 3 и 4 (например, сервер GC присутствует в вашей конфигурации) https://github.com/Linux74656/SpaceEngineersLinuxPatches/blob/master/README.md#step -3

Вот что это сделало. Просто нужно было добавить gcServer enabled = "true" в файл .config. Теперь работает отлично. Удивительный.

Благодарю.

@ matty-r Если автопатчер отказал по какой-либо причине, было бы хорошо знать, почему, чтобы это можно было исправить для других. Есть сообщения об ошибках, когда вы его применили? Кроме того, не могли бы вы сообщить нам полный путь к файлу конфигурации в вашей системе? Видимо путь в некоторых системах отличается.

@ matty-r Если автопатчер отказал по какой-либо причине, было бы хорошо знать, почему, чтобы это можно было исправить для других. Есть сообщения об ошибках, когда вы его применили? Кроме того, не могли бы вы сообщить нам полный путь к файлу конфигурации в вашей системе? Видимо путь в некоторых системах отличается.

Я попытался перезапустить его, но похоже, что теперь он применяет настройку gcServer - немного странно. Однако он полностью перестал работать после того, как я повторно запустил его, и просто показывал диалоговое окно отчета о сбое после экрана-заставки. Мне пришлось вручную повторно добавить gcServer и удалить KSH.wmv.

Поэтому не совсем уверен, почему он сломался в первый раз - путь соответствует объединенной строке в файле сценария Python.

Я только что успешно заставил Space Engineers довольно легко работать с Linux, используя небольшой сценарий bash, основанный на сценарии Python

Я использую Fedora 30 в системе с графическим процессором AMD RX 580.

Следует отметить, что я действительно не мог заставить его работать, если я _didn't_ установил vcrun2015 .

Вот что вы делаете:

  1. В своей библиотеке Steam щелкните правой кнопкой мыши Space Engineers -> свойства -> установите флажок «Принудительное использование определенного инструмента совместимости Steam Play» и выберите «Proton 4.11-7», затем нажмите «Закрыть».
  2. Установите SE.
  3. Запускаем SE, ждем ошибки об устаревшей библиотеке, нажимаем ОК. При этом SE должен создать префикс вина.
  4. Перейдите в оболочку Bash и выполните команду ниже.
  5. Если все в шаге 3 прошло успешно, запустите SE. Теперь он должен работать.

Команда Bash для шага 3:

export WINEPREFIX=~/.steam/steam/steamapps/compatdata/244850/pfx && winetricks --force -q d3dcompiler_47 && winetricks --force -q faudio && winetricks --force -q dotnet48 && winetricks --force -q winxp && sed -i 's/<runtime>\r\?$/<runtime> <gcServer enabled = "true"\/>/' ~/.local/share/Steam/steamapps/common/SpaceEngineers/Bin64/SpaceEngineers.exe.config && mv ~/.local/share/Steam/steamapps/common/SpaceEngineers/Content/Videos/KSH.wmv{,.bak}

Это кажется излишним.

Следует отметить, что это не работало с Proton 4.2, но я все равно хотел использовать 4.11 по умолчанию.

Погодите, вы специально пытаетесь использовать FAudio, не так ли? Я пропустил это. d3dcompiler_47 или winxp не обязательны. (Честно говоря, я удивлен, что winxp не ломает игру.)

Для запуска игры требуется Windows XP. Мне не удалось заставить его работать в Windows 7 или выше.

Привет @duckinator , я рад, что игра у тебя хорошо работает.

В настоящее время у нас есть еще один пользователь в Discord, у которого проблемы с winetricks в Fedora (строка 443):
https://pastebin.com/5Y1s7xjG

Не могли бы вы рассказать нам, какую версию winetricks вы используете?

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

Оказывается, этого достаточно, чтобы у меня все заработало:

WINEPREFIX=~/.steam/steam/steamapps/compatdata/244850/pfx winetricks -q dotnet48 xact && sed -i 's/<runtime>\r\?$/<runtime> <gcServer enabled = "true"\/>/' ~/.local/share/Steam/steamapps/common/SpaceEngineers/Bin64/SpaceEngineers.exe.config

Добавление опции запуска -skipintro в Space Engineers не требуется, но позволяет пропускать стартовое видео, которое не воспроизводится. Если вы не установите эту опцию, появится черный экран, и вам нужно будет щелкнуть или нажать клавишу, чтобы продолжить.


@InflexCZE вот информация о версии wine + winetricks:

~$ wine --version
wine-4.17 (Staging)
~$ winetricks --version
20190912 - sha256sum: 31d37bf18f1503ec46cedf8889e447901e746454e9c3de465f9cc57193e0c90b
~$

Мой упрощенный вариант выше может работать лучше, просто из-за меньшего количества вещей. Кроме того, они, вероятно, захотят запустить rm -rf ~/.steam/steam/steamapps/compatdata/244850/ а затем повторно запустить игру один раз (чтобы она восстановила префикс вина) перед повторной попыткой.

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

РЕДАКТИРОВАТЬ: он отлично работает после повторного запуска.

Вот некоторая информация о моей системе, если она актуальна:

  • Ryzen 7 2700
  • AMD Radeon RX 580
  • 16 ГБ оперативной памяти
  • Запуск Fedora 30
  • Steam устанавливается из репозиториев RPM Fusion

Кто-то, кого я знаю с аналогичным оборудованием (Ryzen 7 1700, Radeon RX 580), успешно заставил его работать на ArchLinux, используя мой последний комментарий, но я не уверен, нужно ли им делать что-то еще, кроме этого.

@duckinator Ваш один лайнер выше полностью работал у меня на F30. Игра проходит почти безупречно. Я использую 2700X с RTX 2070

Возникли проблемы с копированием координат GPS в буфер обмена. Я могу сделать это один раз, но в любое время после этого, когда я нажимаю кнопку «Копировать в буфер обмена», он блокируется на пару секунд и не копирует координаты в буфер обмена.

Это про Вэйланд Мэтти?

Это про Вэйланд Мэтти?

Нет, х11.

У меня две другие проблемы:

  1. После выхода из игры из главного меню она зависает в фоновом режиме и фактически не закрывается. Steam продолжает сообщать, что Space Engineers работает.

  2. Примерно через 30 минут игры любое движение мыши становится нервным. Я могу нормально перемещать персонажа с помощью клавиш и не испытываю никаких проблем, но как только я оглядываюсь с помощью мыши, он снова начинает нервничать. Выход из игры и перезапуск временно решают проблему.

Привет @ matty-r, вторая часть читается как # 3316, см. Https://github.com/ValveSoftware/Proton/issues/3316#issuecomment -565734041 для обходного пути.

Привет @ matty-r, вторая часть читается как # 3316, см. # 3316 (комментарий) для обходного пути.

Спасибо, дружище, завтра попробую и посмотрю, как пойдет.

Привет @ matty-r, вторая часть читается как # 3316, см. # 3316 (комментарий) для обходного пути.

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

Единственная проблема, которую я заметил сейчас, - это https://github.com/ValveSoftware/Proton/issues/1792#issuecomment -565758685 - Невозможно скопировать кооперативы GPS в буфер обмена после первой попытки.

После выхода из Space Engineers процесс остается открытым в фоновом режиме, и Steam сообщает, что игра все еще запущена.
Протон 4.11-11

После выхода из Space Engineers процесс остается открытым в фоновом режиме, и Steam сообщает, что игра все еще запущена.
Протон 4.11-11

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

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

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

Убить процессы - не проблема.
но он пришел с обновлением 4.11-10 и все еще там.

Убийство процесса будет решить эту проблему. Что-то, будь то SE
сам или один из различных фиктивных процессов зависает.

Имейте в виду, что это не решает основную причину, но работает

2 января 2020 г., 10:32 diKsens [email protected] написал:

Убить процессы - не проблема.
но он пришел с обновлением 4.11-10 и все еще там.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ValveSoftware/Proton/issues/1792?email_source=notifications&email_token=AB5DMRGXZSSVUSETAH4RG6LQ3YCHTA5CNFSM4F6IMNRKYY3PNVWWK3TUL52HS4DFVREXG63
или отписаться
https://github.com/notifications/unsubscribe-auth/AB5DMRAEVHS5P3XPDP2QZN3Q3YCHTANCNFSM4F6IMNRA
.

Изначально я не мог запустить игру, чтобы она работала с Proton версии 4.11-11, мне пришлось установить последнюю версию winetricks с помощью команды wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks && chmod +x winetricks && sudo mv -v winetricks /usr/local/bin затем выполнить скрипт wget https://raw.githubusercontent.com/Linux74656/SpaceEngineersLinuxPatches/master/autoprefix-patcher.py && python3 autoprefix-patcher.py

Системная информация:

System:    Host: asimov-MacBookPro Kernel: 5.4.6-050406-generic x86_64 bits: 64 compiler: gcc 
           v: 9.2.1 Desktop: Cinnamon 4.4.6 wm: muffin dm: LightDM Distro: Linux Mint 19.3 Tricia 
           base: Ubuntu 18.04 bionic 
Machine:   Type: Laptop System: Apple product: MacBookPro13,3 v: 1.0 serial: <filter> Chassis: 
           type: 9 v: Mac-A5C67F76ED83108C serial: <filter> 
           Mobo: Apple model: Mac-A5C67F76ED83108C v: MacBookPro13,3 serial: <filter> UEFI: Apple 
           v: 263.0.0.0.0 date: 10/30/2019 
Battery:   ID-1: BAT0 charge: 52.4 Wh condition: 53.3/76.7 Wh (70%) volts: 12.7/11.5 
           model: SMP bq20z451 serial: N/A status: Full 
           Device-1: hidpp_battery_0 model: Logitech Wireless Keyboard serial: <filter> 
           charge: 55% status: Discharging 
CPU:       Topology: Quad Core model: Intel Core i7-6920HQ bits: 64 type: MT MCP arch: Skylake-S 
           rev: 3 L2 cache: 8192 KiB 
           flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 46398 
           Speed: 3363 MHz min/max: 800/3800 MHz Core speeds (MHz): 1: 900 2: 900 3: 900 4: 900 
           5: 900 6: 900 7: 900 8: 900 
Graphics:  Device-1: AMD Baffin [Radeon RX 460/560D / Pro 450/455/460/555/560] vendor: Apple 
           driver: amdgpu v: kernel bus ID: 01:00.0 chip ID: 1002:67ef 
           Display: x11 server: X.Org 1.20.4 driver: amdgpu,ati unloaded: fbdev,modesetting,vesa 
           resolution: 1920x1080~60Hz, 1920x1080~60Hz 
           OpenGL: 
           renderer: AMD Radeon RX Graphics (POLARIS11 DRM 3.35.0 5.4.6-050406-generic LLVM 7.1.0) 
           v: 4.5 Mesa 18.3.0-rc4 direct render: Yes 
Audio:     Device-1: Intel 100 Series/C230 Series Family HD Audio driver: snd_hda_intel v: kernel 
           bus ID: 00:1f.3 chip ID: 8086:a170 
           Device-2: AMD driver: snd_hda_intel v: kernel bus ID: 01:00.1 chip ID: 1002:aae0 
           Sound Server: ALSA v: k5.4.6-050406-generic 
Network:   Device-1: Broadcom and subsidiaries BCM43602 802.11ac Wireless LAN SoC vendor: Apple 
           driver: brcmfmac v: kernel port: 3000 bus ID: 03:00.0 chip ID: 14e4:43ba 
           IF: wlp3s0 state: up mac: <filter> 
           IF-ID-1: docker0 state: down mac: <filter> 
Drives:    Local Storage: total: 465.92 GiB used: 104.53 GiB (22.4%) 
           ID-1: /dev/nvme0n1 vendor: Apple model: SSD SM0512L size: 465.92 GiB speed: 31.6 Gb/s 
           lanes: 4 serial: <filter> 
Partition: ID-1: / size: 455.46 GiB used: 52.10 GiB (11.4%) fs: ext4 dev: /dev/dm-1 
           ID-2: /boot size: 704.5 MiB used: 319.2 MiB (45.3%) fs: ext4 dev: /dev/nvme0n1p2 
           ID-3: swap-1 size: 979.5 MiB used: 25.0 MiB (2.6%) fs: swap dev: /dev/dm-3 
Sensors:   System Temperatures: cpu: 76.0 C mobo: N/A 
           Fan Speeds (RPM): N/A 
Repos:     No active apt repos in: /etc/apt/sources.list 
           Active apt repos in: /etc/apt/sources.list.d/additional-repositories.list 
           1: deb [arch=amd64] https: //download.docker.com/linux/ubuntu bionic stable
           Active apt repos in: /etc/apt/sources.list.d/amdgpu-pro-local.list 
           1: deb [ trusted=yes ] file: /var/opt/amdgpu-pro-local/ ./
           Active apt repos in: /etc/apt/sources.list.d/graphics-drivers-ppa-bionic.list 
           1: deb http: //ppa.launchpad.net/graphics-drivers/ppa/ubuntu bionic main
           Active apt repos in: /etc/apt/sources.list.d/kubernetes.list 
           1: deb https: //apt.kubernetes.io/ kubernetes-xenial main
           Active apt repos in: /etc/apt/sources.list.d/lutris-team-lutris-bionic.list 
           1: deb http: //ppa.launchpad.net/lutris-team/lutris/ubuntu bionic main
           Active apt repos in: /etc/apt/sources.list.d/nodesource.list 
           1: deb https: //deb.nodesource.com/node_10.x bionic main
           2: deb-src https: //deb.nodesource.com/node_10.x bionic main
           Active apt repos in: /etc/apt/sources.list.d/official-package-repositories.list 
           1: deb http: //ftp.acc.umu.se/mirror/linuxmint.com/packages tricia main upstream import backport
           2: deb http: //archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
           3: deb http: //archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse
           4: deb http: //archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse
           5: deb http: //security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
           6: deb http: //archive.canonical.com/ubuntu/ bionic partner
           Active apt repos in: /etc/apt/sources.list.d/skype-stable.list 
           1: deb [arch=amd64] https: //repo.skype.com/deb stable main
Info:      Processes: 307 Uptime: 2h 31m Memory: 15.54 GiB used: 2.85 GiB (18.4%) Init: systemd 
           v: 237 runlevel: 5 Compilers: gcc: 7.4.0 alt: 7 Client: Unknown python3.6 client 
           inxi: 3.0.32 

Игра не запускается с графическим процессором NVIDIA с использованием проприетарных драйверов (проверено на 435 и 440), но запускается с использованием встроенного графического процессора AMD (плохо).
У меня постоянно появляется диалоговое окно «Обновить окна или драйверы графического процессора».

  • винная версия 5.0-rc3 (также пробовал с 4.0.3)
  • winetricks версия 20191224-следующая
  • протон версия 4.11.11

Журналы:
SpaceEngineers.log
VRageRender-DirectX11.log
steam-244850.log

Попробуйте выпуск proton-tkg и посмотрите, что произойдет. Я думаю, что карты NVIDIA обычно подделываются как карты AMD, но, возможно, этого больше не происходит, вы можете вручную подменить свой графический процессор AMD.

Я не уверен, работает ли этот метод для протона, но он для AMD (просто найдите значения).

dxvk.conf в каталоге игры:
dxgi.customDeviceId = E366
dxgi.customVendorId = 1002

Я просто пробовал использовать proton_tkg_5.0rc5.r0 , но он не работает даже с файлом dxvk.conf.

Скоро проведу тест-драйв на ткг.

Использование Proton GloriousEggrolls 4.15-ge-1, похоже, заставляет игру распознавать мой настоящий графический процессор, но VRageRender продолжает давать сбой:
VRageRender-DirectX11.log
SpaceEngineers.log

ОБНОВЛЕНИЕ: Моя проблема была исправлена ​​благодаря @ Linux74656 :

  • Wineprefix содержит faudio vcrun2015 dotnet48 и d3dcompiler_47.
  • Протон 4.11.12
  • Параметры игры Steam: DXVK_FILTER_DEVICE_NAME = "GeForce"

Кажется, я не могу запустить его со всеми исправлениями и рекомендациями, и я не могу сказать почему даже с информацией журнала:
steam-244850.log

Может кто-нибудь мне помочь?
Системная информация

Привет @MajorLunaC , err:module:fixup_imports_ilonly mscoree.dll not found, IL-only binary L"SpaceEngineers.exe" cannot be loaded выглядит как интересующая вас строка из вашего журнала. Похоже, что где-то у вас сломалась поддержка .NET.

Система:
AMD 2700X с водяным охлаждением
32 ГБ DDR4 3200 МГц CL18 RAM
RX VEGA64 с водяным охлаждением
Игра на SSD

Ядро OS Manjaro 5.5 Mesa 20 git (с RADV_PERTEST = aco при запуске игры), Wine 5 RC4
по сравнению с Win10 1909

Игра запущена, но случайным образом вылетает, журнал протонов генерирует 50-150+ МБ при каждом запуске, рендеринг игры кажется заиканием, пока он не работает со скоростью 120 FPS. и при тех же настройках игра работает значительно медленнее (70+ FPS на Win, 28 на Linux. 4k High settings preset. В том же месте в том же мировом сохранении.) (После повторной загрузки он дал мне счетчик fps 60 кадров в секунду, но игра чувствовала заикание, как и раньше. В таком случае рендеринг будет работать нормально, но игровой движок находится в плохом состоянии.)
Windows-VRageRender-DirectX11.log
Windows-SpaceEngineers.log
LINUX-VRageRender-DirectX11.log
Linux-SpaceEngineers.log

протонный журнал (50 МБ)
Гугл Диск

Да, я помню ощущение заикания даже при высоком FPS. Я не могу точно вспомнить, исправил я это или нет, но вы можете попробовать включить vsync.

Привет @ kisak-valve, на самом деле я ничего не настраивал, кроме SpaceEngineersLinuxPatches . Я пробовал исправления Steam по умолчанию, которые не работают точно так же, затем команды, перечисленные в этом разговоре о проблемах, а также SpaceEngineersLinuxPatches. Из того, что я собрал, похоже, что .NET не устанавливается должным образом - см. Как установить .NET 4.5 на 64-битные префиксы , и я даже не понимаю, когда во время установки следует включать режим WinXP или режим Win7. и запустить (видимо это имеет значение). Я думаю, что проблема может быть в разных версиях Winetricks, которые получают установщики из разных источников.
У меня Winetricks 20191224-next, и я очистил /HOME/.cache/winetricks/, чтобы загружались новые версии. Предполагается, что .NET должен предоставить новую версию mscoree.dll размером более 100 КБ, если она установлена ​​правильно, но, похоже, она никогда не изменится. Один из полу-обходных путей заключается в том, что я загружаю новейшую версию mscoree.dll (версия 10 что-то) из <Link removed by moderator> и помещаю ее прямо в SpaceEngineers / Bin64 / (а также ucrtbase_clr0400.dll и vcruntime140_clr0400.dll, которые он запрашивает для после), и игра запускается, и я могу перемещаться по игровым меню. Иногда происходит сбой игры при загрузке новой игры со следующим в SpaceEngineer.log:
2020-01-23 15:28:50.210 - Thread: 1 -> ERROR Entity init!: System.IO.IOException: Too many open files.

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

Пока я занимаюсь этим, @ plasticbomb1986 , для возможного повышения производительности вы можете попробовать настроить реестр (сделайте резервную копию каталога pfx перед тем, как это сделать), в частности, изменив ключ VideoMemorySize на ваш фактический, ключ GLSL и ключ DirectDrawRenderer, а также все что угодно в Direct3D и связанных с текстурами или шейдерами. Попробуйте по одному, отменив все изменения, прежде чем пробовать новый, затем вы можете попробовать объединить.

@MajorLunaC , хотя я не собираюсь комментировать обходные пути, которые вы пытаетесь использовать, возможно, стоит дважды проверить, что ulimit -Hn выдает высокое значение, а не 4096.

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

@ kisak-valve Упс, извините за ссылку, я этого не понял. Я слишком привык пытаться выяснить, что не так и что требуется, любыми средствами.

Результат ulimit -Hn - 4096. Что я могу с этим сделать? Могу ли я безопасно увеличить его и до какой степени?

Proton по умолчанию использует esync (или fsync с совместимыми ядрами), поэтому, вероятно, это способствовало тому, с чем вы столкнулись. Первый раздел https://github.com/zfigura/wine/blob/esync/README.esync должен быть полезным.

@ kisak-valve Вау, заработало, отлично играю! Спасибо тебе за помощь!
Я все еще хотел бы выяснить, как убедиться, что все устанавливается правильно с помощью установщиков, предоставленных через winetricks, чтобы получить некоторую согласованность, поскольку установщики, похоже, действительно не проверяют, правильно ли они сделали свою работу. Я думаю, что .NET Framework Repair Tool может работать через вино. Непрактично для всех копировать библиотеки DLL из своей версии Windows или использовать «юридически проблемный» способ поиска DLL в Интернете.

просто используйте protontricks для простоты установки dotnet.

Я думаю, Dotnet можно установить до 472 (или сейчас 492?), Но многие из его функций могут работать некорректно. Windows Mono - альтернатива, но, опять же, многие функции могут не совпадать.

Джаррад

Да, я помню ощущение заикания даже при высоком FPS. Я не могу точно вспомнить, исправил я это или нет, но вы можете попробовать включить vsync.

Проверьте. Он чувствует себя немного лучше, меньше заиканий, но fps все еще не близок к тому, что должен быть. Плюс иногда все еще вылетает.

MajorLunaC

Пока я занимаюсь этим, @ plasticbomb1986 , для возможного повышения производительности вы можете попробовать настроить реестр (сделайте резервную копию каталога pfx перед тем, как это сделать), в частности, изменив ключ VideoMemorySize на ваш фактический, ключ GLSL и ключ DirectDrawRenderer, а также все что угодно в Direct3D и связанных с текстурами или шейдерами. Попробуйте по одному, отменив все изменения, прежде чем пробовать новый, затем вы можете попробовать объединить.

Собираюсь проверить! Спасибо за совет!

Ох, и еще кое-что. Кто-нибудь из вас может использовать Alt + F10?

Кто-нибудь получает ошибку file not found при запуске?

Screenshot from 2020-01-26 15-28-13

@BeauBouchard Вы используете специальную версию протона ... Я получаю это сообщение при использовании последней версии пользовательского протона Glorious Eggrolls.
Если да, то попробуйте с последней официальной версией протона. Примечание: возможно, вам придется удалить и воссоздать свой префикс, поскольку GE уничтожила мой префикс Space Engineers даже после переключения на 4.11-12.

Сегодня proton получил обновление на моем компьютере (с proton 5 до 5.0.2?), И с тех пор игра закрывается с ошибкой нехватки памяти, даже когда она просто находится в главном меню.
SpaceEngineers.log
VRageRender-DirectX11.log
steam-244850.log

Происходит куча вещей: в среднем за 2-3 часовую игровую сессию протонный журнал легко составляет 400-500 МБ.

Сегодня proton получил обновление на моем компьютере (с proton 5 до 5.0.2?), И с тех пор игра закрывается с ошибкой нехватки памяти, даже когда она просто находится в главном меню.
SpaceEngineers.log
VRageRender-DirectX11.log
steam-244850.log

Происходит куча вещей: в среднем за 2-3 часовую игровую сессию протонный журнал легко составляет 400-500 МБ.

После воссоздания префикса он по-прежнему делает то же самое.

SpaceEngineers.log
VRageRender-DirectX11.log
steam-244850.log
Screenshot from 2020-02-15 15-14-39cut

Забыл спецификацию системы: Ryzen 2700X 32GB DDR4 VEGA64 и несколько SSD (замена на nvme ssd).

ядро 5.5 меса 20git Manjaro Gnome DE

тоже самое.
SpaceEngineers.log

steam-244850.log
Вот мой последний журнал на случай, если это поможет, я не пропустил заставку.

Та же ошибка, но я не использую Proton (lutris-5.0), и моя игра внезапно вылетела сегодня после месяца игры без проблем.
Переустановил винную приставку / игру, отключил steam cloud, никакого эффекта.
Я загрузился в Windows 10 и впервые вижу уведомление: Default Radeon WattMan settings restored due to unexpected system failure .

Может играть под Windows, но после перезагрузки / холодной загрузки такая же ошибка под Linux.

Конфигурация: Ryzen 5 2600, AMD RX470, 16 ГБ ОЗУ, SSD / Lutris-5.0 / ArchLinux

Это действительно странная ошибка. Это полностью вне SE где-то глубоко в библиотеке .NET.
Из трассировки стека это похоже на сетевое взаимодействие, возможно, аналитику или что-то в этом роде.

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

Это действительно странная ошибка. Это полностью вне SE где-то глубоко в библиотеке .NET.
Из трассировки стека это похоже на сетевое взаимодействие, возможно, аналитику или что-то в этом роде.

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

Попробуйте переустановить сейчас. Здесь остановка сценария Linux74656: 01a0: err: ole : ifproxy_release_public_refs Ошибка IRemUnknown_RemRelease с ошибкой 0x800706be

Без подключения к Интернету SE можно запустить, как и раньше.
Как только соединение с Интернетом установлено и серверы опрашиваются, он сразу вылетает.
SpaceEngineers.log

У меня он с Proton 5.0-2 и dontnet472, а также с dotnet48.
также пробовал с Proton 4.11-12 и dotnet472.

@ plasticbomb1986 Для установки вам все еще необходимо подключение к Интернету, чтобы можно было скачать установщики.

@ plasticbomb1986 Для установки вам все еще необходимо подключение к Интернету, чтобы можно было скачать установщики.

Это был бы момент фейспалма, но нет, в то время была включена сетка.

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

Я также могу подтвердить, что отключение подключения к Интернету предотвращает ошибку.

Я также могу подтвердить, что отключение подключения к Интернету предотвращает ошибку.

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

Ребята из Keen SWH в Discord (https://discord.gg/keenswh) тем временем нашли решение.
Игра отправляет аналитику на 81.0.234.196 и 88.146.207.227 (серверы аналитики Keen SWH), которые, по-видимому, отправляют обратно некоторый мусор, который вызывает проблему (непреднамеренно).

Решение - заблокировать эту услугу через:
sudo iptables -A INPUT -s 88.146.207.227 -j DROP

Вся заслуга Релли: +1:

Решение - заблокировать эту услугу через:
sudo iptables -A INPUT -s 88.146.207.227 -j DROP

Здорово, спасибо! Это прекрасно работает!

Кажется, здесь несколько разных людей получают несколько разных ошибок, и ни одна из них не похожа на мою. У меня также на короткое время появляется заставка, а затем происходит сбой, но мой журнал выглядит иначе, чем самые последние, загруженные другими. Для меня самая интересная строка
[000000000000003C:] EXCEPTION handling: System.TypeInitializationException: The type initializer for 'GameAnalyticsSDK.Net.Logging.GALogger' threw an exception.

Это на чистый префикс (удален steamapps/compatdata/244850 ), протестирован с и без изменения файлов из здесь .

Приведенная выше команда iptables мне не помогает.

steam-244850.log

@captaincrutches Случайно вы согласились с диалогом с информацией о соглашении GDPR при запуске игры? Он может быть активным и быть источником проблемы.
Вы можете проверить здесь: ... / 244850 / pfx / drive_c / users / steamuser / Application Data / SpaceEngineers / SpaceEngineers.cfg

и измените:

<item>
        <Key>GDPRConsent</Key>
        <Value>
          <Value xsi:type="xsd:string">True</Value>
        </Value>
</item>

Кому:

<item>
        <Key>GDPRConsent</Key>
        <Value>
          <Value xsi:type="xsd:string">False</Value>
        </Value>
</item>

@ Linux74656 У меня никогда не было диалогового окна GDPR, и у меня вообще нет этого файла. Фактически, я не могу найти SpaceEngineers.cfg в своей системе.

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

SpaceEngineers.log

Вы запускаете игру через Mono вместо .NET framework. Возможно неправильно установленная приставка.

Какой дистрибутив и версию winetricks вы используете?

Я использую Gentoo, использую последние версии winetricks (20191224) и protontricks (1.4.1) в portage.

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

Ах, ну угадайте что? Раньше я пытался выполнить исправление через командную строку с помощью protontricks / winetricks ... но я просто попробовал с PatcherGUI.jar и о чудо, игра теперь запускается! Спасибо за толчок ~

Не уверен, следует ли мне публиковать сообщения в этой теме или нет, но когда я приказываю Space Engineers выйти, она на самом деле не закрывает темы должным образом. Плюс нажатие «Стоп» в STEAM тоже не убивает его. Мне нужно убить процессы вручную.

У меня такая же проблема. Что меня озадачивает, так это то, что даже если я убью все процессы, связанные с SE, Wine или Proton, он все равно откажется видеть SE как завершенный в Steam. Я действительно должен убить Steam, чтобы потом перезапустить SE. Довольно неприятно. Я не слишком много разбирался в этой проблеме, кроме уничтожения всех связанных с SE / Proton процессов в Steam, но это то, на что, вероятно, нужно обратить внимание.

У меня такая же проблема. Что меня озадачивает, так это то, что даже если я убью _все_ процессы, связанные с SE, Wine или Proton, он все равно откажется видеть SE в Steam. Я действительно должен убить Steam, чтобы потом перезапустить SE. Довольно неприятно. Я не слишком много разбирался в этой проблеме, кроме уничтожения всех связанных с SE / Proton процессов в Steam, но это то, на что, вероятно, нужно обратить внимание.

У меня есть для тебя совет. Я использую Ubuntu, так что это может или не может соответствовать вашей ситуации.

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

Затем я ищу области, в которых запущен "Steam", и ищу конкретно "SteamChildMonit" и дерево из него. Если их несколько (вероятно, только один), найдите тот, у которого есть дочерний элемент SpaceZEngineers. и куча вина.

Затем я сначала нажимаю «SteamChildMonit», чтобы выделить его, удерживая нажатой клавишу Shift, нажимаю на последний дочерний элемент в этом дереве (часто «winedevice.exe»). Затем щелкните правой кнопкой мыши на выделении, иди убей, и он убьет всех.

Это позволяет мне перезапустить игру (или запустить другие игры), не убивая весь STEAM.

Я действительно обнаружил, что если я выхожу из SE "в обычном режиме", мне нужно вручную убить кучу процессов, как описано выше ... но если я kill -9 $(pgrep SpaceEngineers) с терминала вместо обычного выхода из игры, все соответствующие процессы умереть по желанию.

Проблема с процессом зомби - это не проблема Wine / Proton, у меня она также возникает в Windows.

Смотрите это: https://github.com/Linux74656/SpaceEngineersLinuxPatches#issue -8

Впервые с тех пор, как я приобрел игру, я могу заставить ее проходить мимо заставки с помощью Proton 5.0-8rc, понятия не имею, что я делаю в игре, но, по крайней мере, я наконец-то могу в нее поиграть. :)

Я столкнулся с аварией после достаточно долгих сеансов. В steam-244850.log 900 МБ, но журнал игры меньше. Мне придется немного подождать, пока загрузка не завершится.

Журнал игры:
SpaceEngineers_20200626_220158938.log

Журнал Steam (сжатый): https://mega.nz/file/gxxAnKzS#gunhdGQRfYJLIbnEGadOWQ6PNC2j4eMYgssjh -IJHPg

Технические характеристики системы: https://gist.github.com/FurretUber/e105309ff4c58e197c3b2f65318cd8e1

Да, Space Engineers вылетает у меня через случайный промежуток времени, и, просматривая журналы, я ничего не вижу, поэтому не уверен, что с этим делать :( Это случается довольно часто.

Можем ли мы исправить ситуацию, когда протон для космических инженеров фактически не выходит при выходе из игры, пожалуйста?

«Игра не запускается в песочнице Proton и может видеть обычную структуру каталогов Linux» - резюмирует один из многих действительно грамотных в программировании людей, которые помогли мне сегодня. С моей точки зрения, я вижу экран-заставку на секунду или две, затем все возвращается в состояние, как если бы я никогда не нажимал кнопку воспроизведения. Журнал прилагается.
SpaceEngineers_20200708_180142615.log

Системная информация

  • Графический процессор: X.Org Radeon RX 570 Series (POLARIS10, DRM 3.33.0, 5.3.0-62-generic, LLVM 9.0.0)
  • Версия драйвера / LLVM: 4.5 (профиль совместимости) Mesa 19.2.8
  • Версия ядра: 5.3.0-62-generic
  • Ссылка на полный отчет о системе: https://gist.github.com/HalberdGuard/c623a4f14676e77e6f401b3c62a2e9b7
  • Версия протона: 5.0-9

Вы пробовали установить файл jar? Я обнаружил, что это довольно надежно, но да, этот материал наверняка должен быть превращен в протон.

На самом деле это было результатом использования как автоматизированной, так и более поздней ручной версии с помощью вышеупомянутых дружелюбных и знающих (и терпеливых!) Людей ... Предположим, я должен был упомянуть об этом. : п
Из-за других, вероятно, не связанных обстоятельств, мне, скорее всего, скоро придется переустановить Steam с нуля, может, это уже не будет странным? Посмотрим!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

shaphanpena1 picture shaphanpena1  ·  3Комментарии

Dakunier picture Dakunier  ·  3Комментарии

shanefagan picture shanefagan  ·  3Комментарии

lucifertdark picture lucifertdark  ·  3Комментарии

AwesamLinux picture AwesamLinux  ·  3Комментарии