J'ai pas encore fini de regarder mais pour réduire la taille des paquets ils utilisent la technique du regroupement, je ne connaissais pas cette technique (cela vient surement de leur de background C++). Tout ce que je sais c'est qu'on peut en réduire le poids en utilisant les tableaux typés comme en C plutôt que du JSON.
La présence box2d fait qu'il est bien plus compliqué de maintenir les clients synchronisés. Cela nécessitera beaucoup plus de paquets (avec des nombres flottants en plus surement), car il y a plus que 4 directions possibles. Ca utilise pas mal de bande passante.
Par exemple un paquet avec un moteur de collision pourrait ressembler à :
et avec un système à la RPG Maker
@atra27 à la fin cette vidéo il y a une question sur les websockets, TCP vs UDP et les paquets perdus
La présence box2d fait qu'il est bien plus compliqué de maintenir les clients synchronisés. Cela nécessitera beaucoup plus de paquets (avec des nombres flottants en plus surement), car il y a plus que 4 directions possibles. Ca utilise pas mal de bande passante.
Par exemple un paquet avec un moteur de collision pourrait ressembler à :
var state = [{
id: 0,
transform: {
position: {
x: 15.290663048624992,
y: 2.0000000004989023,
z: -24.90756910131313
},
rotation: {
x: 0.32514392007855847,
y: -0.8798439564294107,
z: 0.32514392007855847,
w: 0.12015604357058937
}
}
}, {
id: 1,
transform: {
position: {
x: 7.490254936274141,
y: 2.0000000004989023,
z: -14.188117316225544
},
rotation: {
x: 0,
y: 0.018308020720336753,
z: 0.1830802072033675,
w: 0.9829274917854702
}
}
}];
et avec un système à la RPG Maker
var state = [{
id:0,
direction:1
},
{
id:1,
direction:2
}];
@atra27 à la fin cette vidéo il y a une question sur les websockets, TCP vs UDP et les paquets perdus