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