@half-life: Если sourse типа List, то скрипт будет работать намного медленнее, чем если бы он был Dict. В вашем примере какой используется тип не понятно, поэтому убедитесь, что загружаете данные в Dict.
Кстати sourCe, а не sourSe.
@SvetlyiAkaPro: временная метка, которую нужно учитывать, но в секундах никто не считает такие вещи, считают в тиках. Игрок выстрелил через секунду после начала, информация о выстреле отправляется с tick = 30, сервер принимает, подстраивает под свои тики, находит попадание через пол секунды и отправляет на клиент информацию о попадании с tick = 45.
@SvetlyiAkaPro: явно что-то не то, проверяйте скорости мира и скорости пуль на клиенте и сервере. У каждого события есть свой tick - такой id фрейма. Сделайте себе утилиту, которая бы рисовала мир используя только данные с сервера.
@SvetlyiAkaPro: чего? Игрок нажимает курок, информация отправляется на сервер, пуля вылетает на клиенте, на сервере пуля летит и попадает в кого-нибудь, информация отсылается с сервера на клиент, отображается попадание, но пуля ещё не долетела? Как так?
А вообще нужно и лаг учитывать, и предсказание на клиенте производить.
@SvetlyiAkaPro: пули не управляемы, не нужно их пересылать по сто раз. На сервер отсылаете "игрок 1 произвёл выстрел, вектор такой-то". На сервере в физическом движке создаётся пуля, начинает лететь и сталкивается с другим игроком - попадание засчитывается. Отсылать координаты пули на клиент тоже не нужно.
Интересная статья про использование Go, QML и OpenGL.