VoxelEngine-Cpp icon indicating copy to clipboard operation
VoxelEngine-Cpp copied to clipboard

Feature/111/smart pointers [WIP]

Open AlexXZero opened this issue 1 year ago • 6 comments

The main purpose of the PR is to replace raw pointers and manual memory management with modern C++ style and smart pointers.

It looks like this PR might be too big, so maybe we can split the ticket task in a few PR? It also might introduce lots of conflicts as it introduce changes in lots of files.

AlexXZero avatar Jan 16 '24 08:01 AlexXZero

Знаешь, еще было бы лучше если этот проект был на расте написан. К сожалению это пока что только влажные фантазии.

suprohub avatar Jan 30 '24 04:01 suprohub

Знаешь, еще было бы лучше если этот проект был на расте написан. К сожалению это пока что только влажные фантазии.

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

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

AlexXZero avatar Jan 30 '24 08:01 AlexXZero

image Come on, мы тут память мегабайтами теряем, Rust не такой уж и плохой. И не такой уж он и медленный.

InfiniteCoder01 avatar Mar 08 '24 19:03 InfiniteCoder01

Знаешь, еще было бы лучше если этот проект был на расте написан. К сожалению это пока что только влажные фантазии.

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

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

Так в этом и проблема: люди не хотят на расте потому, что другие люди не хотят на расте. Насчет следования рекомендациям C++ это понятно, но люди не роботы и могут совершать ошибки, которые приводят к UB. Насчет скорости не правда: он довольно быстрый, если ты умеешь хорошо кодить. Ограничения можно обойти используя unsafe { }, но важно оставлять коментарии почему это безопасно. (Комментарий по типу //SAFETY: bruh i think its safe не подойдет) Меня так же бесит когда вылетают игры, так что как помоему такое наплевательское отношение к своим игрокам это плохо.

suprohub avatar Mar 08 '24 19:03 suprohub

image Come on, мы тут память мегабайтами теряем, Rust не такой уж и плохой. И не такой уж он и медленный.

Кстати эти 70 мегабайт из LMPacker'а, всего-то перенести код из деструктора в clean

InfiniteCoder01 avatar Mar 08 '24 19:03 InfiniteCoder01

Кстати ребята, на заметку по поводу раста: "Чисто не там где убирают, а там где не мусорят". :nerd:

suprohub avatar Mar 08 '24 19:03 suprohub