例如
暗黑、RO、LOL、WOW、世纪帝国等等
像这种,即使,有单位,有位置,有技能的状况
要怎么设计多人连线的同步?
我自己的想法是
将地图分格子,用座标去处理位置问题。
然后时间的话,则固定以0.1~0.5秒为一个单位(frame),去计算各单位的动作
client端下达命令或是使用技能时,都会用frame为单位下去做计算跟同步
传递讯息时用tcp传递每个frame的重要讯息
EX
frame 1{
a使用技能重击攻击b造成130伤害,变动后b还剩500hp
a消耗5单位魔力,变动后还剩95。
......
}
其他像是持续性伤害,自然生命力恢复
理论上只要一开始有给定速率跟起始值,client端应该能自己算出现在的hp值
然后,传输的时候,再过滤掉那个client端不该看到的资料,像是敌人的位置等等
不过我没写过这种程式,不确定这种作法可不可行
或是,想请问业界中确切的作法是怎么样呢?