- 64
- 3
Давно интересно как же работает бэкэнд сампа как на клиентке так и на сервере.
Представим машины, тут все вполне логично:
На сервере есть массив машин примерно такого вида:
На клиенте эти машины расставляются по своим координатам и в них сажаются игроки(если есть).
С синхронизацией тоже более менее понятно, каждый тик с сервера приходит пакет передающий структуру CVehicle, клиент ставит машину и "разгоняет" её по вектору ускорения.
А что насчет игроков? Больше всего интересует как работает аим и синхронизация анимаций.
Неужели состояние каждого кейфрейма анимации передается на сервер а сервер отправляет остальным клиентам пакет с инфой задать тому то педу игрока анимацию с определенным фреймом?
Представим машины, тут все вполне логично:
На сервере есть массив машин примерно такого вида:
Код:
struct CVehicle {
int ID;
int X;
int Y;
int Z;
int Rot;
int XVel;
int YVel;
int ZVel;
bool IsOccupied;
int OccupantID;
}
CVehicle vehicles[MAX_VEHICLES];
С синхронизацией тоже более менее понятно, каждый тик с сервера приходит пакет передающий структуру CVehicle, клиент ставит машину и "разгоняет" её по вектору ускорения.
А что насчет игроков? Больше всего интересует как работает аим и синхронизация анимаций.
Неужели состояние каждого кейфрейма анимации передается на сервер а сервер отправляет остальным клиентам пакет с инфой задать тому то педу игрока анимацию с определенным фреймом?