Вы говорите о 2D-игре, верно?
Мне нравится ваша архитектура, потому что она разделяет создание сущностей с их инициализацией и использованием.Я думаю, что он чистый и расширяемый.
В игре, которую я написал, у меня был похожий подход, но мой движок рендеринга упростил для меня и поддержал DisplayGroups
, который автоматически отображал объекты в правильном порядке.Я не знаю, какую технологию вы используете, но, вообще говоря, если вы используете аппаратный рендеринг с OpenGL / DirectX, вы можете использовать значения Z для достижения эффекта (буквально поместите фоновые объекты позади ).
В случае, если вы используете программный рендеринг, я думаю, что нет другого выбора, кроме как упорядочить объекты, прежде чем нарисовать их на поверхности.
HTH