我正在制作一个简单的html5游戏用于学习。我想通过线路发送尽可能少的数据以保持同步。当我在客户端和服务器之间发送游戏状态时,我只想发送自上次更新以来在游戏状态中发生的更改,以节省带宽/延迟。
要做到这一点,唯一的方法是在从远程源接收到的每个更新上创建游戏状态对象的“快照”或副本,然后在本地操作游戏状态并需要通过游戏状态对象将每个值与tempory游戏状态进行比较并仅发送差异后,将其发送到远程源循环。
这是最有效的方法吗?
/****************************/
/**** Current game state ****/
gameState = {
playerOneID: 'XXX-XXX-XXX-XXX',
playerTwoID: 'YYY-YYY-YYY-YYY',
elapsedTime: 00007,
myVariable: 'abcd1234'
}
/*******************************************/
/**** saves game state from last update recieved ****/
tmpGameState = {
playerOneID: 'XXX-XXX-XXX-XXX',
playerTwoID: 'YYY-YYY-YYY-YYY',
elapsedTime: 00003,
myVariable: 'abc123'
}
发布于 2012-10-05 09:53:27
大多数网络至少将数据发送到至多1024字节分组中,且至少在其被调度离开时发送数据。
https://stackoverflow.com/questions/12738433
复制相似问题