Это, вероятно, G C.
Java к сожалению, не самый лучший язык для игр благодаря G C и отсутствию каких-либо структур, которые можно выделить в стеке, из языков, подобных Java - c#, часто является лучшим выбором благодаря гораздо большему количеству инструментов для управления памятью, таких как стек allo c и просто структуры в целом. Поэтому при написании игры на языках с G C вы должны убедиться, что ваша игра l oop не выделяет слишком много объектов, во многих случаях на других языках люди часто пытаются go для 0 или около 0 выделений в l oop.
Вы можете создавать пулы объектов для ваших сущностей / спрайтов, поэтому вы не выделяете новые, просто повторно используете существующие.
А если это простая 2D-игра, то, вероятно, достаточно просто избегать выделения объектов, когда в этом нет необходимости (например, пропускать всего два целых вместо места размещения объекта на 2-й карте).
И вы должны использовать профилировщик, чтобы подтвердить, какие изменения того стоят.
Существуют и более хитрые решения, такие как использование памяти, выделенной без кучи, для хранения некоторых данных без накладных расходов на объект, но я не думаю, что Для простой игры понадобятся такие решения. Достаточно просто типичных решений для разработчиков игр, таких как объединение в пул и обход ненужных объектов.