Как правильно реализовать работу искусственного интеллекта в игре, чтобы не проседал FPS?

Создаю игру. В ней есть игрок и довольно много монстров (от 10 штук). Для монстров необходимо прописать элементарный ИИ, чтобы они могли бегать, прыгать и т.д. У меня получилось это сделать в отдельном классе:

public static class MonsterAI
{
    private static Timer actionTimer = new Timer() { Interval = 100 };
    public static void IdleMove(Monster monster)
    {
        actionTimer.Tick += (s, e) =>
        {
            if (monster.OnGround)
                monster.Jump();
        };
        actionTimer.Start();
    }
}

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

public static class MonsterAI
{
    private static Timer actionTimer = new Timer() { Interval = 100 };
    public static void IdleMove(Monster monster)
    {
        actionTimer.Tick += async (s, e) =>
        {
            if (monster.OnGround)
                await Task.Run(() => { monster.Jump(); } );
        };
        actionTimer.Start();
    }
}

Ответы (0 шт):