Я думаю, что хорошей идеей было бы сделать один из хостов сервером. Потому что, если вы создадите соединение для каждого, у вас будет N * (N-1) соединений и (N-1) соединений для каждого хоста. Если вы используете сервер, у вас будет только N-1 соединение для сервера и только 1 соединение для каждого клиента. Таким образом, вам придется выполнить полное моделирование на каждом из хостов, а затем синхронизировать эти данные с сервером. Симуляция, синхронизированная через равные промежутки времени, будет работать одинаково на всех компьютерах. Это означает, что только небольшие и редкие настройки будут необходимы, чтобы сохранить его одинаковым для всех пользователей.
edit: вы также должны подумать о минимизации трафика, поэтому отправка NSDictionary будет слишком большой. Вы можете отправить небольшую структуру, как
typedef struct {
short obj_id;
float pos;
float vel;
float angle;
} obj_inf;
edit2:
obj_info obj1_inf;
//set the values here ...
NSData* packet = [NSData dataWithBytes: &obj1_inf length: sizeof(obj_info)];
//if you have an array of obj info (e.g. 20 objects):
obj_info* oinf_arr = calloc(20, sizeof(obj_info));
for(int i=0; i<20; ++i) [{
//fill each oinf_arr[i]
}
NSData* packet = [NSData dataWithBytes: oinf_arr length: 20*sizeof(obj_info)];
Возможно, вы хотите добавить заголовок в пакет и поместить туда количество объектов и т. Д.