金慶的專欄
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 © 金慶
少妇被又大又粗又爽毛片久久黑人
|
无码人妻久久一区二区三区蜜桃
|
色狠狠久久综合网
|
7777久久久国产精品消防器材
|
色综合久久综合中文综合网
|
久久99中文字幕久久
|
久久综合给合综合久久
|
久久精品国产亚洲av麻豆蜜芽
|
精品国产一区二区三区久久久狼
|
91性高湖久久久久
|
99久久国产宗和精品1上映
|
99久久无码一区人妻
|
国产偷久久久精品专区
|
国产日韩久久久精品影院首页
|
亚洲国产小视频精品久久久三级
|
久久亚洲精品无码AV红樱桃
|
久久久久亚洲AV成人网人人网站
|
久久精品国产清自在天天线
|
久久婷婷五月综合97色直播
|
久久青青草原综合伊人
|
亚洲精品乱码久久久久久蜜桃图片
|
久久久精品视频免费观看
|
www.久久热.com
|
久久无码人妻一区二区三区午夜
|
人妻无码久久精品
|
久久精品无码av
|
国产精品久久久久久久久久免费
|
AV狠狠色丁香婷婷综合久久
|
色综合久久久久无码专区
|
久久中文字幕人妻丝袜
|
国产一区二区久久久
|
色综合久久夜色精品国产
|
亚洲精品99久久久久中文字幕
|
成人精品一区二区久久久
|
久久精品国产99久久久
|
色婷婷综合久久久久中文
|
伊人久久大香线蕉av不变影院
|
国内精品九九久久精品
|
日韩精品久久无码中文字幕
|
久久久久久亚洲精品成人
|
国产精品久久久久国产A级
|