Структура сущностей (GameObjects), основанная на компонентах, дает много преимуществ: подталкивает пользователей отдавать предпочтение композиции, а не наследованию, сохраняет классы небольшими, чистыми и сосредоточенными на одной ответственности, а также способствует модульности. Но это в идеальном мире.
Проблемы с выделением памяти и Garbage Collection
Как по мне, нет здесь никакой проблемы, вопрос того, как вы будете управлять объектами и памятью.
Если сильно захотеть, можно взять контроль в свои руки и вызывать Garbage Collector руками и тогда у вас не будет проблем с тем, что он совпадет с каким-то активным игровым моментом.
Моя идея была в том, что Garbage collector скрывает управление памятью от разработчика и он расслабляется. Конечно можно использовать ручные методы для вызова Garbage Collector в ненагруженные моменты в игре, но тогда это уже будет больше похоже на ручную очистку в стиле C++. Большинство разработчиков не запариваются с этим.
incremental gc не решает? Я забил на всякие NonAlloc версии методов и всё равно никаких заиканий не вижу.