for (int i = 0; i < 10; ++i) не будет это нихера работать;
Предикт за 1 кадр потому что ты формируешь команду которую отправишь серверу, ты уже знаешь что делает твой игрок т.к. это уже призошло, просто сервер должен одобрить это, но если клиент будет дожидаться сервера, то управление в игре будет казаться заторможенным, поэтому клиент использует данные без одобрения для вида чтобы все выглядело нормально, а если сервер отклонит то он возьмет его данные.
Как видишь предикт не совсем предсказание, твой клиент просто берет самые последние данные, но предикт больше одного тика уже будет вангование, потому что тебе нужно знать что ты будешь делать в будущем, а ксго тебе не машина времени, даже если линейно интерполировать скорость ты все еще не сможешь предсказать нажатия и движения мышью например.
Максимум что ты можешь это симулировать физику игрока как делают например с предиктом гранаты, т.е. прокручивать тики наперед, но это будет недостаточно надежно из-за отстутвия знания о вышеупомянутом вводе.