Microidvania DB#4 Двигающиеся платформы и ловушки

Тема: Куда же в метроидвании (да и почти в любом 2д платформере) без двигющихся элементов)?

Как я писал ранее: до этого проекта я не делал сложных платформеров. Все они были разработаны на джеме - где не то что про инструменты некогда думать, а даже поесть можно забыть! Но вдумчивая разработка это совсем другое.

Последнее время играю в платформеры (и в метроидвании в особенности) чаще и больше и с ужасом представляю объем работ по левел дизайну даже для небольшой игры с контентом на 1-2 часа. Поэтому решил - "лучше пол часа потерять, зато потом за 5 минут долететь"!
Начать решил с движущихся платформ и ловушек.

Платформы состоят из 3-х разных тайлов (левый, центральный и правый)
Но часто нужны платформы пошире или поуже. Поэтому заложил функциональность где можно просто менять число центральных сегментов и получать платформу нужной ширины. Коллайдер будет автоматически подстраиваться.

Как выглядит составная платформа c 2-мя центральными тайлами в редакторе. 
Как выглядит составная платформа c 2-мя центральными тайлами в редакторе. 
А так с 0-ем центральных тайлов.
А так с 0-ем центральных тайлов.

Расстановка платформ при проектировании уровней заметно ускоряется и для изменения ширины нужно просто поменять число сегментов.
А что же делать с движением?
В Godot (как думаю и во многих других игровых движках) есть замечательная функция - Engine.is_editor_hint()!
С ее помощью можно реализовывать отрисовку вспомогательных элементов, которые будут видны только в редакторе.
Поэтому я для каждого элемента, который будет смещаться, реализовал отрисовку его граничных состояний. Теперь когда я добавляю и настраиваю такие элементы в уровне я сразу вижу как они будут вести себя относительно времени. Вот так это выглядит в редакторе.

Синяя фигура - начальное состояние, красная конечное.
Синяя фигура - начальное состояние, красная конечное.

Каждый такой элемент поддерживает 3 типа движения:

- Статичный (не перемещается)
- Пинг Понг (перемещается туда обратно по одной и той же траетории)
- Зацикленный (при достижении конечной точки мгновенно перемещается к начальной)
Также траекторию движения можно задавать как простое смещение по X и/или Y, так и задавать путь для перемещения по массиву точек.

В редакторе все выглядит довольно просто.
В редакторе все выглядит довольно просто.

Тут же настраиваю тайминги по перемещению, паузы в конечных точках и стартовое смещение по времени.
Получилось очень наглядно и удобно. Но возможно когда начну проектировать уровни, то что-то еще придется переделать или доработать.
Что еще можете посоветоать улучшить/добавить/поменять в таком подходе?
И какие подобные подходы вы применяли?

4