Гибрид 2D и 3D в Flame через flame_flutter3d
Гибрид 2D и 3D в Flame через flame_flutter3d В статье показан способ добавить 3D в игру на Flame, не переписывая игровую логику. Связка flame_flutter3d соединяет Flame и flutter3d, а пример опирается на версии flame 1.38.2, flame_flutter3d 0.8.1, flutter3d 0.8.1, flutter3d_game 0.8.0 и flutter3d_sim 0.8.0. Схема строится как Stack: снизу SceneSurface из flutter3d, сверху GameWidget Flame. Для вывода 3D нужно включить Flutter GPU и Impeller; без этого 3D не рисуется. В гибридной игре используется один тикер Flame, который передаёт dt в flutter3d, а симуляция и мир столкновений шагают один раз за кадр одним компонентом. Ввод из Flame — клавиатура, drag и виртуальный джойстик — пишется в общий InputState. Подход удобен там, где 3D нужен как окружение, физика или визуализация, а HUD, ввод и логика остаются во Flame. При этом Flame всегда выше 3D-слоя, а не все 3D-события доступны напрямую: часть данных остаётся на стороне flutter3d. Для практики это означает, что такую схему стоит брать для гибридных прототипов и игр, где интерфейс важнее глубины сцены, а не для проектов, где 3D должен перекрывать 2D. Источник: Habr Game Development RU — https://habr.com/ru/articles/1087246/