Хочу внести несколько пожеланий для улучшения сетевой игры в инете, может пригодятся в процессе написания патча.
1. Следить за толщиной канала клиента, если у него канал становится уже чем передает сервер, то сервер должен автоматически уменьшать кол-во передаваемой информации (может реже передавать координаты или еще как нибудь, это уже не мне советовать). И наоборот когда канал расширится сервер должен увеличить поток информации до нормальных размеров. Это для модемной связи очень актуально, так как например вместо установленных 56кб модем может скинуть из-за помех в линии скорость на 28800, а то и еще меньше. Делать это можно отслеживая размер непереданного буфера для клиента например.
2. После ретрейна на модеме, который сопровождается прекращением передачи/приема данных на десяток секунд сервер локона события которые проходили за эти 10 секунд пытается допередать, судя по ощущениям, в результате канал связи переполняется на некоторое время и самолеты начинают прыгать/елозить по карте. Хорошобы если за 10 секунд связи небыло с клиентам, не передавать все что накопилось, а сбрасывать и делать глобальную "пересинхронизацию".
3. Надо бы поправить алгоритм предугадывания (апроксимации?) положений самолетов, поскольку часто в игре они со сверхзуковой скоростью скачут по экрану, чего физически делать не в состоянии, и это очень плохо потому что все выпущенные по такой "цели" ракеты уходят в молоко, не сумев навестись. Кажется в текущем алгоритме вообще не учитывается текущая скорость самолтеа, а только его вектор и ускорение. Надо всетаки учитывать что если скорость например 10 км/ч а максимальное ускорение например 5g то за секунду самолет на километр поменять положение не в силах. А сейчас даже самолеты на стоянке только начав движение могут скакать в радиусе нескольких километров :(
Надеюсь написал не полную лабуду, и надеюсь что эти соображения помогут сделать игру в сети интернет более стабильной.