Предварительно свернутая библиотека была бы хороша, но концепции, которые вы описываете, вам нужно знать, если вы собираетесь заниматься программированием в любом случае:
Простой способ заставить одного актера следовать за другим - заставить ведущего актера сохранять свою позицию при каждом движении. Подайте эти позиции конечному действующему лицу с задержкой в несколько значений - чем больше задержка, тем дальше они движутся. Просто, но не обрабатывает динамическое столкновение (другие актеры перемещают столкновение блоков.)
Обнаружение столкновений в 2D может быть просто ограничивающими прямоугольниками (AA). Ищите это, и вы увидите 4 или около того, которые необходимы.
Гравитация - это просто добавление фиксированной скорости (обычно вниз) к каждому объекту в каждом игровом цикле. Это постоянное ускорение, и именно так работает гравитация.