Не знаю как в Final Fantasy реализовано, но предлагаю сделать так:
Создать переменную, отвечающую за текущее состояние - то, какой игрок ходит.
turn=1
В GUI-е делать проверку на текущее состояние, если ход первого игрока, то естественно передвигать юнит первого игрока.
Вроде все просто, с чем возникают проблемы?
Нее, там ни герои ни монстры ни боссы не двигаются. (ну по крайней мере до 12 части). Если по старым частям (1, 2 например) то бой таков-4 персонажа, и начиная с верхнего выбираешь действие, когда действия у всех выбраны начинается бой, и т.д.