@alprog Салют,
если говорить о пошаговых десктопных бродилках со сложной игровой моделью на C#, стоит ли сильно запариваться по поводу использования динамической памяти?
А именно:
1. почти для всего игрового состояния использовать только плотно утрамбованные в массивах struct-ы (с ECS это весьма терпимо и не отвратно по коду, но без этого было бы проще)
2. работать с ними через
ref везде где только можно (а вот это уже причиняет много неудобств). заметный ли на практике оказывается оверхед от частого копирования?
Если все таки отказываемся от такого подхода в пользу обычных объектов,то
3. стоит ли заморачиваться с пуллингом объектов, аллоцируемых каждый ход? нормально ли десктопный GC (допустим, рантайм - Unity) справляется с подобным мусором?
Интуитивно кажется, что нагрузка на проц в пошаговках смешная, и можно на все озвученные выше проблемы забить (конкретные дорогие задачи вроде подсветки видимости оставим за кадром, т.к. там все с оптимизацией понятно).
Но интересно как оно на практике выходит. Окупается ли подобное задротство в итоге на таких проектах?
(Александру адресовал, т.к. он точно работал с проектами такой специфики, но опрос в общем-то ко всем, кто имеет опыт разработки больших пошаговых игр).