Управление памятью в Unreal Engine
Управление памятью в Unreal Engine
5252

Кто шарит за UE, объясните, почему им не хватило смарт поинтеров, зачем понадобилось прикручивать сборку мусора?

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

2

На блюпринты плохо ложится, особенно учитывая что блюпринты пишут не только программисты. Плюс с GC можно сделать MarkPendingKill и все жесткие ссылки сами занулятся. В системе со смартпоинтерами нет возможности удалить объект, не вычистив предварительно все жесткие ссылки. Само наличие механизма "убей вот это прямо сейчас" спорный плюс, но в условиях, когда блюпринты пишут не только инженеры, это все же скорее плюс. Отловить пропавший раньше времени объект в сломавшемся блюпринте проще, чем перед релизом игры понять, что он утек и найти все места, где он утекает.
Ну и циклические ссылки, как уже сказали.

1

допустим могут получиться циклические зависимости, которые висят в памяти и никак не относятся к тому, что сейчас нужно игре (Root Set)