Re: [閒聊] 一秒多攻之攻防研究

看板travian作者 (真肉)時間15年前 (2009/06/19 01:13), 編輯推噓0(005)
留言5則, 3人參與, 最新討論串16/18 (看更多)
基本上在這討論串剛開始的時候 我也有想過 這server是如何運作的 所有的事件都是從client傳到server 都有先後順序, 先到先處理 不過先發的事件並不一定是最早完成的 所以處理資料的結構, 不一定是由序列這種先進先出的結構 再來是時間問題, client的發送時間對server來說是沒有太大意義 server只會從他接到那一刻開始計時間 時間是很重要的, 是一定會紀錄, 不過是紀錄資料送到server的那一刻 我現在假設幾種資料處理方式 假設 逐一進入"玩家"的資料 再檢查是否 有軍隊移動 再判斷時間是否到達 很直觀的 可以把每個玩家的每一動作逐一執行再到下位玩家 標準的暴力解題法 但是先開的玩家一定有絕對的優勢 現在好像沒這種狀況 而且這設計應該也不太可能 另一點我是考慮到串列的資料結構 用一個雙向串列 連接上一個事件跟下一個事件 那資料在最後處理時 就可以從最近的一筆處理 執行動作到時間還沒到事件為止 由於資料已經先排序好了 所以處理起來是算最有效率的 另一方面則是資料送進來要如何進行排序 先計算行軍到達的時間 然後再去插進串列當中 這種設計如果時間精準到ms 就會有所有所謂的同秒插防的狀況 就發生頻率來說 應該會經常性的看到 同秒到達以1秒25波來換算 也就是平均每隔40ms收到一個命令 (當然1ms內 發100個命令也是可以, 不過這絕對不是手動的狀況) A攻擊在n秒 40ms 80ms 120ms 160ms 200ms 25波 B攻擊在n秒 50ms 90ms 130ms 170ms 210ms 24波 那顯示結果應該會是 A B A B A B A B 而不是 AAAAA... BBBBB... 或 BBBBB... AAAAA... 這去實驗一下應該很快會知道結果 如果只有精準到sec 就是出發時間早的會先完成 如果這結構是我設計 那我會用雙向串列,連接以"秒"為單位的序列結構 同一秒到達的都丟進同秒的序列中 先進先出 over.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.104.45.114

06/19 01:15, , 1F
每個都說實驗一下就知道了 就是沒人拿個實驗照來看
06/19 01:15, 1F

06/19 09:17, , 2F
照相可以修圖阿... 連戰報都可以偽造了= =!
06/19 09:17, 2F

06/19 09:18, , 3F
而且要怎麼照才能10幾波擺在一起? 五波照個貂QQ?
06/19 09:18, 3F

06/19 09:21, , 4F
這實驗又不是有多難,同秒五波也是可以測呀= =
06/19 09:21, 4F

06/21 18:22, , 5F
不可能插毫秒的,無論攻擊援軍同秒到達永遠是先出先到。
06/21 18:22, 5F
文章代碼(AID): #1AEdM_9S (travian)
討論串 (同標題文章)
文章代碼(AID): #1AEdM_9S (travian)