Unity, аналіз crash лога

Приівт.

Крашиться гра на рушії Unity, розробники її напевно вже не підтримують.

Є краш логи. Чи не міг хтось мені будь-ласка пояснити як його аналізувати?

Для початку я хотів би дізнатись причину краша.

pastebin.com/raw/jP5HfMrM

SOLVED1?
Схоже вирішив проблему,
Перевірив гру з під 7кі, там старші версії відеодров та Afterburner+RTSS ніж тут на 10ці,
на 7ці гра працює без крашів,
Став думати...
На 10тці вимкнув Afterburner+RTSS — результат, гра більше не вилітає на цьому місці де вилітала постійно раніше.

UPD

дивно, зараз знову через іншу потребу поверув Afterburner+RTSS і перевірив на цій грі у проблемному місці, але гра працює нормально без вильотів, дивно, що відбулося через що зараз краша немає?

UPD2

SOLVED2!
add game exe to RTSS and set fps limit maximum at 120
RTSS 7.3.4
RTSS 7.3.6
i.ibb.co/...​ipboard-07-06-2025-01.png
i.ibb.co/...​ipboard-07-06-2025-02.png

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Copilot каже, що є проблеми у коді гри про які тут писали, хочу розібрати код з копілотом і можливо зробимо фікс/патч

патч “готовий”, лінк на вирішення вручну (лінк на готовий файл нижче) copilot.microsoft.com/...​res/8RZRBTLNPL3rPaQkmeEkm
скрін в dnSpy

== лінк на готовий файл Assembly-CSharp.dll drive.google.com/...​yrHYRhXVAHNzHvEZKgV7dFARV

невже ші так легко зрозумів як і що саме треба виправити?

>Тепер гра не вилітає на цьому моменті. Якщо з’являться нові баги — пишіть, розберемося

Так, дякую, але питання чому гра перестала вилітати навіть без патча?

Дякую, перевірив «патч» від копілота,
Балабол Ваш копілот, бо так само усе крашиться)

Насправді він згадував, що можуть бути й інші проблеми, і надавав більше фіксів — але це був «основний». Я не ліплю всі патчі одразу, якщо в цьому немає потреби. Отже, варіант № 2: обмазатись патчами :)

**Що робити:**

* Замінити увесь код у класі `C_ShipAnimTrigger` згідно з інструкцією: pastebin.com/bBWR6U4E
* Готовий скомпільований `.dll` тут: drive.google.com/...​yrHYRhXVAHNzHvEZKgV7dFARV

---

**P.S.** Дай сейв і логи — без них важко зробити нормальний аналіз.

Дякую)
А можна питання чому Ви витрачаєте свй час на моє питання?)

Ось папка уся налаштування+сейв, та скрін місця краша
c:\Users\Procenko\AppData\LocalLow\Big Robot Ltd\
drive.google.com/...​5HS4fDM8WdgvJ?usp=sharing

Дякую,
Ви точно саме у цю тему хотіли відповісти?)
Який рівень довіри до ші у даному випадку?

Я використовую його для власних скриптів, рівень довіри високий — але він не вгадує по кавовій гущі. У грі явно є проблема з рейкастами: вони виконуються не в той момент, коли потрібно. Наприклад, об’єкт може вже бути видалений, а код усе ще вважає, що з ним можна працювати. Проблема в тому, що в самій грі немає валідації того, що робить код. Складається враження, що або хтось був надто самовпевнений у своїй реалізації, або просто не розуміє, що таке захист і безпечне поводження з об’єктами в динамічному середовищі гри.

Круто, Дякую, дуже цікаво)

Так і взагалі гра дуже погано оптимізована, при такому ніби невисокому рівні графіки вона дуже навантажує пк і фпс низький, таких скарг багато від гравців.

Тоді є ще маленьке питання якщо можна.

1. я намагався використовувати dxvk wrapper який транслює dx11>vulkan, так продуктивність трішки збільшилась але виліз цей краш на тому місці,
тільки не подумайте що че саме через транслятор краш, бо у Стимі багато скарг саме на це місце де у багатьох також виліт але напевно вони використовували dx11.
АЛЕ! якщо повернути dx11 і додати гру у rtss то гра більше не вилітає? Питання до знатоків, чому?

2. яка може бути аномалія на тому місці? (ха-ха, бо гру робили надихаючись Сталкером, доречі який також у технічному плані не ідеальний)

2. Чому саме використовуєте копілот?

Судячи з того, що ти показав, основна проблема, схоже, пов’язана не стільки з самим DXVK, скільки з тим, як він змінює таймінги рендерингу та FPS, що, в свою чергу, провокує баг в рушії Unity 2017.4.6f1.

Коли ти ввімкнув DXVK, FPS зріс, але також змінився порядок виконання коду в кадрі: деякі події, пов’язані з Animator, могли почати викликатися до того, як виконалась Start() або OnEnable(). Це створює ситуацію, де об’єкти або компоненти (animator, audio) ще не ініціалізовані, але гра вже намагається їх викликати — і відбувається краш через Access Violation.

Як писав Copilot: «Unity 2017.4.6f1 (c24f30193bac) дійсно має відомі проблеми з Access Violation (0xC0000005), зокрема в UnityPlayer.dll.. І що цікаво — Unity офіційно виправила одну з таких помилок у версії 2017.4.10f1.»

Тобто, у 2017.4.6f1 справді є вразливість, пов’язана з порядком ініціалізації та доступом до обʼєктів, але без високого FPS або Vulkan вона могла не проявлятись.

До речі, така сама проблема була у старій грі Legendary — сцена з ліфтом, де при FPS вище 60 гравець провалювався крізь підлогу. Там рішенням було залочити FPS вручну через конфіг. youtube.com/watch?v=C64Y0C7Tug0?t=632

Висновок: ти підвищив продуктивність, але водночас вивів на поверхню глибший рушієвий баг, який на низькому FPS або при DX11 ховався. А цікаво, що додавання гри до RTSS (і, відповідно, стабілізація кадрів) наче «лікує» проблему — бо синхронізація подій стає передбачуванішою.

P.S. А ще Copilot допоміг написати цей текст ;)

Дуже тобі дякую, що ти стільки накопала і витратила часу на моє питання)
Можна ще спитати?

Коли ти ввімкнув DXVK, FPS зріс, але також змінився порядок виконання коду в кадрі: деякі події, пов’язані з Animator, могли почати викликатися до того, як виконалась Start() або OnEnable(). Це створює ситуацію, де об’єкти або компоненти (animator, audio) ще не ініціалізовані, але гра вже намагається їх викликати — і відбувається краш через Access Violation

але й на рідному dx11 вилазить теж саме, не тільки в мене але й у гравців у стимі
як костиль це на dx11 додати гру у RTSS

Як писав Copilot: "Unity 2017.4.6f1 (c24f30193bac) дійсно має відомі проблеми з Access Violation (0xC0000005), зокрема в UnityPlayer.dll

а це можна спробувати виправити патчами які ти робила?

UPD

Висновок: ти підвищив продуктивність, але водночас вивів на поверхню глибший рушієвий баг, який на низькому FPS або при DX11 ховався

This!^^^
Bingo!
Ти Геній!)
Зараз запустив гру у dx11 та без RTSS, але у грі виставив опцію ліміт кадрів яка лочить фпс на 60фпс і затестив — на тому місці краша немає!)))

Привіт,
Схоже що десь йде звернення до null обʼєкта (тобто він ще не існує або вже був знищений). В консолі редактора немає помилок? Зазвичай там шось повинно вискакувати.
Це як одна з причин

Дуже Вам дякую за відгук.

В консолі редактора немає помилок? Зазвичай там шось повинно вискакувати

а як це подивитись?

ще знайшов такий лог
pastebin.com/raw/F5qUNTVU

і дамп
pastebin.com/raw/F5qUNTVU

Консоль редактора можна відкрити через Window -> General -> Console.

Судячи з логу, який ви скинули, то у вас виклик null обʼєкту (скоріш за все) в методі C_ShipAnimTrigger.EventE(). І ще якась непонятна фігня з рейкастом в методі RVOController.Update().

Дивіться логи в самому редакторі, там відразу пишуться ці всі косяки, навіть вказує вам рядки в яких помилки.

Дуже Вам дякую, за корисну інформацію!

Справа ще у тому шо я не розробник)
Гру більше не підтримують, але баги є,
Ось я просто тут хотів дізнатися причину.

Підписатись на коментарі