例如
暗黑、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端不該看到的資料,像是敵人的位置等等
不過我沒寫過這種程式,不確定這種作法可不可行
或是,想請問業界中確切的作法是怎麼樣呢?