金慶的專欄
C++博客
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
::
423 隨筆 :: 0 文章 :: 454 評(píng)論 :: 0 Trackbacks
公告
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(12)
給我留言
查看公開留言
查看私人留言
隨筆分類
(502)
1. C/C++(166)
(rss)
2. 網(wǎng)游開發(fā)(108)
(rss)
3. Golang(20)
(rss)
4. Linux/Unix(30)
(rss)
5. 軟工與管理(44)
(rss)
6. Python(23)
(rss)
7. Erlang(18)
(rss)
8. Rust(16)
(rss)
9. 其它(77)
(rss)
隨筆檔案
(423)
2023年1月 (1)
2022年11月 (1)
2022年10月 (2)
2022年9月 (1)
2022年4月 (6)
2022年1月 (2)
2021年12月 (4)
2021年11月 (6)
2021年10月 (2)
2021年9月 (2)
2021年8月 (7)
2021年7月 (2)
2021年5月 (2)
2021年3月 (1)
2021年2月 (2)
2021年1月 (1)
2020年12月 (1)
2020年10月 (1)
2020年9月 (5)
2020年8月 (1)
2020年7月 (1)
2020年6月 (1)
2020年4月 (2)
2020年3月 (3)
2020年2月 (3)
2020年1月 (1)
2019年12月 (1)
2019年9月 (2)
2019年4月 (2)
2019年1月 (1)
2018年12月 (1)
2018年11月 (3)
2018年10月 (1)
2018年9月 (3)
2018年8月 (3)
2018年7月 (2)
2018年6月 (4)
2018年5月 (4)
2018年4月 (4)
2018年3月 (1)
2018年1月 (2)
2017年12月 (2)
2017年11月 (3)
2017年10月 (3)
2017年8月 (7)
2017年7月 (1)
2017年6月 (1)
2017年5月 (3)
2017年4月 (3)
2017年3月 (3)
2017年2月 (2)
2017年1月 (2)
2016年12月 (5)
2016年11月 (2)
2016年10月 (2)
2016年9月 (1)
2016年8月 (6)
2016年7月 (3)
2016年6月 (2)
2016年5月 (4)
2016年4月 (2)
2016年3月 (2)
2016年1月 (3)
2015年12月 (2)
2015年11月 (2)
2015年10月 (1)
2015年8月 (2)
2015年7月 (1)
2015年6月 (1)
2015年5月 (4)
2015年4月 (3)
2015年3月 (4)
2015年2月 (5)
2015年1月 (4)
2014年12月 (3)
2014年11月 (3)
2014年10月 (2)
2014年9月 (3)
2014年8月 (1)
2014年4月 (4)
2014年3月 (1)
2014年2月 (4)
2014年1月 (5)
2013年12月 (5)
2013年11月 (5)
2013年9月 (2)
2013年8月 (2)
2013年7月 (2)
2013年6月 (2)
2013年5月 (1)
2013年1月 (2)
2012年12月 (1)
2012年11月 (1)
2012年9月 (1)
2012年8月 (3)
2012年7月 (2)
2012年6月 (1)
2012年4月 (3)
2012年3月 (2)
2012年2月 (3)
2012年1月 (2)
2011年11月 (2)
2011年10月 (3)
2011年9月 (2)
2011年8月 (2)
2011年7月 (3)
2011年6月 (2)
2011年5月 (3)
2011年1月 (2)
2010年12月 (1)
2010年11月 (2)
2010年10月 (2)
2010年9月 (3)
2010年8月 (2)
2010年7月 (3)
2010年6月 (1)
2010年5月 (3)
2010年4月 (3)
2010年3月 (5)
2010年2月 (4)
2010年1月 (4)
2009年12月 (2)
2009年11月 (3)
2009年10月 (4)
2009年9月 (3)
2009年8月 (2)
2009年7月 (4)
2009年6月 (1)
2009年5月 (3)
2009年4月 (4)
2009年3月 (2)
2009年2月 (5)
2009年1月 (1)
2008年12月 (7)
2008年11月 (4)
2008年10月 (1)
2008年9月 (3)
2008年8月 (4)
2008年7月 (3)
2008年6月 (4)
2008年5月 (6)
2008年4月 (7)
2008年3月 (6)
2008年1月 (5)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (6)
2007年8月 (8)
2007年7月 (5)
相冊(cè)
公告照片
搜索
積分與排名
積分 - 656590
排名 - 25
最新評(píng)論
1.?re: boost::asio::spawn 將一統(tǒng)C++網(wǎng)絡(luò)庫
asio 成為C++首選網(wǎng)絡(luò)庫
--linda
2.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--金慶
3.?re: mingw編譯OrzNet
能發(fā)送一個(gè)mingw編譯好的OrzNet庫給我嗎? liuweiqcxy@163.com
謝謝!
--劉威
4.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--bigbad
5.?re: log4cxx中文輸出錯(cuò)誤補(bǔ)丁
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--bigbad
閱讀排行榜
1.?"multiple definition of" 錯(cuò)誤(11032)
2.?SVN中邪惡的replace(10955)
3.?VS2005編譯libevent(10413)
4.?混音算法的學(xué)習(xí)與研究(10203)
5.?C調(diào)用lua腳本的效率測(cè)試(9007)
評(píng)論排行榜
1.?VC6正在被拋棄(35)
2.?VS2005編譯libevent(21)
3.?"multiple definition of" 錯(cuò)誤(18)
4.?C++引用優(yōu)于指針(17)
5.?ACE與ASIO之間關(guān)于Socket編程的比較(16)
幀同步是否允許客戶端指定命令幀號(hào)
幀同步是否允許客戶端指定命令幀號(hào)
(金慶的專欄 2020.10)
幀同步服務(wù)器以固定的幀率收集每個(gè)客戶端的輸入命令,每幀打包一個(gè)命令幀,打上服務(wù)器當(dāng)前幀號(hào),
然后廣播該命令幀到每個(gè)客戶端,由客戶端執(zhí)行。
如果沒有客戶端輸入命令,則該命令幀可能只有一個(gè)幀號(hào)。
客戶端的輸入命令分2種模式:不指定幀號(hào)和指定幀號(hào)。
客戶端不指定幀號(hào)的模式下,客戶端僅告訴服務(wù)器自己的動(dòng)作,由服務(wù)器為該動(dòng)作打上當(dāng)前的服務(wù)器幀號(hào),然后再廣播。
服務(wù)器實(shí)現(xiàn)較簡(jiǎn)單,只需要緩存當(dāng)前幀的所有客戶端輸入,下一幀時(shí)全部打包廣播。
指定幀號(hào)的模式下,客戶端要求該命令在指定幀(服務(wù)器幀)才生效。
服務(wù)器需要緩存該命令,運(yùn)行到指定幀號(hào)時(shí),才將該命令打包到命令幀并廣播所有客戶端。
指定幀號(hào)在客戶端有預(yù)測(cè)回滾時(shí)較為有利,因?yàn)榭蛻舳酥雷约旱拿顚⒃诖_定的幀執(zhí)行,即對(duì)自己的預(yù)測(cè)總是成功的。
而如果不指定幀號(hào),客戶端需要預(yù)測(cè)自己的命令會(huì)在哪個(gè)服務(wù)器幀到達(dá)服務(wù)器,而這在網(wǎng)絡(luò)抖動(dòng)較大時(shí)會(huì)預(yù)測(cè)失敗。
指定幀號(hào)會(huì)造成命令的延時(shí)時(shí)間較長(zhǎng)。而不指定幀號(hào)將會(huì)立即執(zhí)行。
如果網(wǎng)絡(luò)堵塞了一會(huì)兒,客戶端發(fā)送的命令延時(shí)了較長(zhǎng)時(shí)間才到達(dá)服務(wù)器,
指定的幀號(hào)可能小于服務(wù)器當(dāng)前幀號(hào),這時(shí)服務(wù)器對(duì)該命令有2種處理方式.
一種是直接忽略該命令,因?yàn)樵撁钜褵o法實(shí)現(xiàn)。
一種是盡量實(shí)現(xiàn)該命令,即在當(dāng)前幀執(zhí)行。
考慮到客戶端預(yù)測(cè),2種都是預(yù)測(cè)失敗,同樣需要回滾,但是在當(dāng)前幀執(zhí)行可能回滾造成的抖動(dòng)會(huì)小一點(diǎn)。
如起跳命令,一種是已經(jīng)跳起來了被拉回地面,因?yàn)槠鹛畋蝗∠?,一種是跳在空中停頓了一下,因?yàn)槠鹛臅r(shí)間點(diǎn)被延后了。
盡量實(shí)現(xiàn)命令應(yīng)該比丟棄命令更好一點(diǎn)。
如果是在當(dāng)前服務(wù)器幀執(zhí)行過期幀號(hào)的命令,那么這2種模式可以合并成一種,即所有命令都是指定幀號(hào),
只是有的幀號(hào)是0,表示讓服務(wù)器在當(dāng)前幀執(zhí)行。
通用的幀同步服務(wù)器應(yīng)該讓客戶端指定幀號(hào)。
指定幀號(hào)的命令可以實(shí)現(xiàn)嚴(yán)格時(shí)間間隔的命令序列,
客戶端可以一次性發(fā)送整個(gè)命令序列,指定每個(gè)命令為不同的幀號(hào)。
還應(yīng)該允許客戶端指定命令序列的幀間隔,但是首命令是立即執(zhí)行的。
命令序列的幀號(hào)應(yīng)該是相對(duì)于首命令的。
如果命令序列的首命令延后執(zhí)行,那么整個(gè)序列全部將同樣延后。
客戶端是否需要知道自己的指定幀號(hào)命令被延后執(zhí)行了?這樣可以讓客戶端有更好的表現(xiàn)?
那么成功執(zhí)行的指定幀號(hào)命令是否也應(yīng)該讓客戶端知道?
服務(wù)器僅僅是將客戶端命令原樣廣播,客戶端命令中可以加入命令序號(hào),自行判斷命令是否延后了。
是否將一個(gè)玩家的提前發(fā)送的指定幀命令提前廣播給其他玩家?
這樣其他玩家不僅對(duì)自己預(yù)測(cè)成功,對(duì)該玩家的預(yù)測(cè)也成功。
但是泄露了自己將要執(zhí)行的動(dòng)作會(huì)被其他玩家利用。
所以提前量不能太大,指定幀號(hào)應(yīng)該盡量接近服務(wù)器幀號(hào)。
服務(wù)器就不用緩存客戶端指令了,直接收到后廣播即可。
這樣服務(wù)器廣播的命令幀中有服務(wù)器幀號(hào),也有客戶端的指定幀號(hào)。
服務(wù)器也就不用管客戶端是否指定幀號(hào)了。
指定幀號(hào)和解析成為純客戶端邏輯。
posted on 2020-10-08 11:39
金慶
閱讀(406)
評(píng)論(0)
編輯
收藏
引用
所屬分類:
2. 網(wǎng)游開發(fā)
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
How are dtLinks created in NavMesh
UE4 Blueprint Multiple Event BeginPlay
第9代游戲主機(jī)
Canvas Scaler 的3種模式
幀同步是否允許客戶端指定命令幀號(hào)
rpc應(yīng)答太快造成請(qǐng)求超時(shí)
測(cè)試 tolua 例子 TestErrorStack
lua變量缺少local造成unity死鎖
C# tolua 之間互傳 byte[]
Unity使用異步grpc
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © 金慶
中文国产成人精品久久不卡
|
思思久久99热只有频精品66
|
丰满少妇人妻久久久久久
|
久久综合亚洲鲁鲁五月天
|
尹人香蕉久久99天天拍
|
香蕉久久夜色精品升级完成
|
久久久久久精品久久久久
|
久久精品亚洲一区二区三区浴池
|
久久久久久亚洲精品影院
|
久久无码人妻精品一区二区三区
|
亚洲国产成人精品91久久久
|
久久久久久综合网天天
|
久久久久国产一级毛片高清版
|
久久国产成人
|
99久久中文字幕
|
久久亚洲国产精品123区
|
久久精品国产亚洲精品2020
|
国产免费福利体检区久久
|
77777亚洲午夜久久多喷
|
久久综合狠狠综合久久激情
|
亚洲精品美女久久久久99小说
|
国产亚洲综合久久系列
|
亚洲国产小视频精品久久久三级
|
久久久久99精品成人片欧美
|
国产免费久久精品99re丫y
|
日本一区精品久久久久影院
|
亚洲色婷婷综合久久
|
欧美综合天天夜夜久久
|
久久人人爽人人爽人人片AV不
|
亚洲伊人久久综合中文成人网
|
人人狠狠综合久久亚洲88
|
少妇人妻综合久久中文字幕
|
久久久久亚洲AV无码专区网站
|
久久久久久久久久久久中文字幕
|
久久精品国产亚洲AV久
|
青青青青久久精品国产h久久精品五福影院1421
|
日本久久久久亚洲中字幕
|
久久久久av无码免费网
|
精品国产婷婷久久久
|
国内精品伊人久久久久影院对白
|
久久久久亚洲AV综合波多野结衣
|