中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
游戲中的網(wǎng)絡(luò)同步機(jī)制

0x00 前言

每個(gè)人或多或少都接觸過網(wǎng)游,那個(gè)虛擬的世界給予了我們無窮的樂趣,而這個(gè)虛擬世界是如何完美的將身處天南地北的玩家連接在一起的呢?我們每個(gè)人的電腦配置都不一樣,網(wǎng)絡(luò)延遲也不同,但是在玩FPS(第一人稱射擊)游戲時(shí),戰(zhàn)斗感受與真實(shí)世界并無二致,網(wǎng)游是如何做到這一點(diǎn)的呢?

本文將介紹和分析早期廣泛在RTS(即時(shí)策略)游戲中應(yīng)用的同步機(jī)制——Lockstep

RTS游戲有很多,比如我們都玩過的的Warcraft III(大家耳熟能詳?shù)?code>Dota是它的一張地圖)和StarCraft,還有EA的代表作命令與征服系列(Command & Conquer)等等,以及現(xiàn)在非常流行的Dota2LOL

那么為什么要強(qiáng)調(diào)早期呢?因?yàn)?code>Dota2和LOL等新興的游戲使用的同步機(jī)制不再是傳統(tǒng)的Lockstep了。嚴(yán)格來說,Warcraft和現(xiàn)在意義上的網(wǎng)游有很大區(qū)別,因?yàn)樗^的網(wǎng)是局域網(wǎng)(LAN)。早期RTS游戲出現(xiàn)時(shí)互聯(lián)網(wǎng)還沒有現(xiàn)在那么普及,網(wǎng)速也很慢,更沒有什么像樣的網(wǎng)游,能夠支持局域網(wǎng)對(duì)戰(zhàn)已經(jīng)很不錯(cuò)了。

有人可能會(huì)有疑問,我們平時(shí)經(jīng)常在對(duì)戰(zhàn)平臺(tái)上和全國各地的人打Dota,你為什么說Warcraft III只支持局域網(wǎng)呢?這又是一個(gè)很有意思的話題,實(shí)際上,對(duì)戰(zhàn)平臺(tái)使用了虛擬局域網(wǎng)(VLAN)技術(shù),通過進(jìn)程注入,HOOK WinSock函數(shù)調(diào)用,將數(shù)據(jù)包發(fā)送到對(duì)戰(zhàn)平臺(tái)服務(wù)器上,由服務(wù)器分配虛擬IP,這里還能夠進(jìn)行天梯匹配等等,在隨后的游戲過程中游戲數(shù)據(jù)包都是通過對(duì)戰(zhàn)平臺(tái)的服務(wù)器進(jìn)行轉(zhuǎn)發(fā),但是這一切對(duì)Warcraft III進(jìn)程本身來說是透明的,它依然感覺自己在一個(gè)局域網(wǎng)環(huán)境中。

0x01 為什么要有同步機(jī)制

一致性

在虛擬世界中,保證游戲的一致性是一個(gè)基本前提。什么是一致性?通俗的說就是虛擬世界中的事實(shí),比如在一個(gè)FPS游戲中,大家的延遲都很高,A、B兩個(gè)玩家同時(shí)發(fā)現(xiàn)了對(duì)方,并向?qū)Ψ缴鋼?,如果沒有很好的同步機(jī)制,那么A的屏幕上顯示B還沒有開槍就被擊殺,而B的屏幕上顯示A還沒有開槍就被擊殺,這就出現(xiàn)了不一致的問題,那么這個(gè)游戲還怎么愉快的進(jìn)行下去?

可以這么說,延遲是造成不一致問題的主要原因。如果延遲都為0(即A玩家作出行動(dòng)的同時(shí)B玩家就能看到),那么也就不存在不一致的問題了,就像在真實(shí)世界中一樣。而同步機(jī)制除了基本的通信作用外,最重要的任務(wù)就是解決不一致問題,即保證游戲的一致性。同步機(jī)制有許多種,根據(jù)游戲類型、技術(shù)條件甚至?xí)r代背景的不同,選擇的同步機(jī)制也會(huì)不同。

分類

游戲的網(wǎng)絡(luò)同步機(jī)制有很多,國外也有這方面的論文,拋開具體實(shí)現(xiàn)細(xì)節(jié),總體來看可以分為下面幾類

  • Peer-to-Peer,在這類方法中,沒有服務(wù)器,游戲參與者的身份是對(duì)等的,依靠參與游戲的玩家電腦自行解決同步問題的,最為典型的就是Lockstep
  • Client-Server,在這類方法中,Server端是絕對(duì)的權(quán)威,所有計(jì)算基本在Server上完成。例如,在游戲中向前移動(dòng)一步,要等待服務(wù)器確認(rèn)“你向前移動(dòng)了一步”之后,才可以在客戶端上進(jìn)行這個(gè)行為。(延遲較低的時(shí)候是察覺不到這個(gè)過程的,延遲高時(shí)會(huì)有明顯的卡頓現(xiàn)象)
  • Client-Side Prediction,嚴(yán)格來說這并不是一類方法,而是對(duì)第二類方法的改進(jìn)。試想如果所有的操作都必須在得到服務(wù)器的確認(rèn),然后才在客戶端上進(jìn)行,在延遲較高時(shí)用戶體驗(yàn)會(huì)非常的差。這時(shí)可以把常用一部分計(jì)算轉(zhuǎn)移到客戶端進(jìn)行,服務(wù)器輔助校正即可。

0x02 什么是Lockstep

Lockstep最初是軍隊(duì)行進(jìn)中使用的,后來在19世紀(jì)的時(shí)候廣泛在美國監(jiān)獄使用,成為那個(gè)時(shí)期美國監(jiān)獄的一個(gè)標(biāo)識(shí)。就像這樣

或者這樣

意思就是大家同步的走,誰超前了要等待,落后了的要趕上。后來就引申到游戲的網(wǎng)絡(luò)同步機(jī)制上了

上一章節(jié)中我們說到Lockstep是Peer-to-Peer架構(gòu)中的一種同步方式,而我們平時(shí)在局域網(wǎng)中玩Dota時(shí),也的確沒有大型的游戲服務(wù)器,只有一臺(tái)所謂的主機(jī),那么你可能會(huì)想,是不是所有的計(jì)算都是在那臺(tái)主機(jī)上完成的呢?也就是說其他玩家的機(jī)器只發(fā)送施放了某某技能這樣的數(shù)據(jù)包給主機(jī),而造成多少傷害、某某效果是由主機(jī)計(jì)算并返回的。

但事實(shí)并不是這樣的,玩Dota時(shí)所有的一切都是在本地計(jì)算完成的。包括技能傷害、效果,命中與否,隨機(jī)刷新野怪等等。也就是說每個(gè)玩家的電腦都完整計(jì)算了整盤游戲的全過程,且計(jì)算過程與計(jì)算結(jié)果都一模一樣。而主機(jī)只是負(fù)責(zé)把每個(gè)玩家的操作指令(鼠標(biāo)點(diǎn)擊、鍵盤按鍵等等)廣播給其他玩家。

是不是感到難以理解?

想要理解Lockstep的機(jī)制,先看看下面三個(gè)問題。

  • 什么是動(dòng)畫?是會(huì)動(dòng)的畫嗎?當(dāng)然不是,人眼的記憶時(shí)間為0.1s,也就是大約100ms,只要把一幀一幀的靜態(tài)圖像快速播放一遍,我們就會(huì)感覺畫面就動(dòng)了起來,比如下面這樣

  • 最容易實(shí)現(xiàn)同步的游戲類型是什么?當(dāng)然是回合制游戲,比如棋類游戲和卡牌游戲,它們有嚴(yán)格的先后順序,不容易出現(xiàn)邏輯錯(cuò)誤,更不會(huì)出現(xiàn)不一致的情況;而且回合時(shí)間較長,能夠容忍高延遲。

  • 什么是狀態(tài)機(jī)?狀態(tài)機(jī)是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型。給定一個(gè)狀態(tài)機(jī)模型F,處在某一個(gè)狀態(tài)S1,這時(shí)給定一個(gè)輸入I,此時(shí)狀態(tài)機(jī)會(huì)轉(zhuǎn)移到一個(gè)新的狀態(tài)S2。在這個(gè)過程中,只要F、S1I是確定的,那么S2就是確定的。

其實(shí)把以上三點(diǎn)結(jié)合起來,就是Lockstep的基本思路

我們來看下面這張圖

圖中是A、B、C三個(gè)玩家的時(shí)間軸,這個(gè)時(shí)間軸不是電腦上的本地時(shí)間,而是A、B、C聯(lián)機(jī)時(shí)定義的一個(gè)時(shí)間軸。虛線分隔出來時(shí)間片稱為turn,可以理解成一個(gè)回合。箭頭表示該玩家將自己的操作指令廣播給其他玩家。我們把一盤游戲看成一個(gè)大型的狀態(tài)機(jī),因?yàn)榇蠹彝娴氖峭豢畹挠螒?,因?code>F是相同的,初始狀態(tài)S0也是相同的。在第一個(gè)turn結(jié)束時(shí),所有玩家都接收到了完全一樣的輸入I,注意這里的I不是一個(gè)值,而是包含了當(dāng)前游戲中所有玩家的操作指令集合。t1時(shí)刻所有玩家的電腦自行計(jì)算結(jié)果。由于F、S0I是固定的,所以每個(gè)玩家電腦上計(jì)算出的下一個(gè)狀態(tài)S1一定是相同的。

同理,第二個(gè)turn也是如此

可以看出,Lockstep其實(shí)也是“回合制”的,當(dāng)然這個(gè)所謂的回合與我們理解的棋類、卡牌游戲的回合是不太一樣的。Lockstep的回合(也就是turn)中,所有玩家都可以采取行動(dòng),最終結(jié)果是在回合結(jié)束時(shí)統(tǒng)一計(jì)算的。在同一個(gè)turn接收到的操作指令,是不分行動(dòng)先后順序的,只要是在同一個(gè)turn里,就認(rèn)為是同時(shí)發(fā)生的。

舉個(gè)例子,假設(shè)A、B、C是游戲中3個(gè)互相敵對(duì)的單位,攻擊力都為100。在某一個(gè)turn內(nèi),A和B都右鍵點(diǎn)擊了C(warcraft這類游戲好像都是右鍵普攻),C右鍵點(diǎn)擊了A,這些操作指令都廣播到了其他玩家電腦上,則該turn的輸入為“A攻擊C、B攻擊C、C攻擊A”。那么該turn結(jié)束后,每個(gè)人的電腦都開始計(jì)算,且計(jì)算結(jié)果是相同的,即“A損失100生命值,B不變,C損失200生命值”。

這就是Lockstep同步機(jī)制,其實(shí)也沒有多復(fù)雜是吧~這里還有幾點(diǎn)需要注意:

  • Lockstep把游戲過程劃分成了一個(gè)個(gè)turn,為什么游戲不會(huì)出現(xiàn)卡頓的現(xiàn)象呢?回到前面動(dòng)畫的那個(gè)問題,人眼是容易被欺騙的,人的反應(yīng)其實(shí)也是很慢的(相對(duì)電腦來說)。人眼的記憶時(shí)間為0.1s,只要每秒進(jìn)行10turn,我們是感覺不出卡頓的。而通常游戲的幀數(shù)為60fps,即每秒60幅圖像在屏幕上顯示,你會(huì)感覺游戲非常流暢~當(dāng)然“幀”和Lockstep中的“turn”并不是一一對(duì)應(yīng)的,這里只是想說明一個(gè)turn的時(shí)間是非常短的,至少比我們的反應(yīng)要快的多。

  • Lockstep對(duì)網(wǎng)絡(luò)延遲的要求是非常高的,因?yàn)槊總€(gè)turn要向所有玩家廣播操作,同時(shí)也要接收來自其他玩家的操作。只有當(dāng)每個(gè)turn集齊了所有玩家的操作指令,也就是輸入確定了之后,才可以進(jìn)行計(jì)算,進(jìn)入下一個(gè)turn,否則就要等待最慢的玩家。當(dāng)然局域網(wǎng)可以很好的滿足這個(gè)要求,延遲基本都在1ms左右。

  • Lockstep中會(huì)不會(huì)出現(xiàn)延遲導(dǎo)致的不一致問題?顯然不會(huì),從上面的分析可以知道,使用Lockstep的游戲是嚴(yán)格按照turn向前推進(jìn)的,如果有人延遲比較高,其他玩家必須等待該玩家跟上之后再繼續(xù)計(jì)算,不存在某個(gè)玩家領(lǐng)先或落后其他玩家若干個(gè)turn的情況。使用Lockstep同步機(jī)制的游戲中,每個(gè)玩家的延遲都等于延遲最高的那個(gè)人。(當(dāng)然這個(gè)說法還有待討論,后面還會(huì)說到這個(gè)問題)

  • Lockstep是非常嚴(yán)格的,要求每一步的的計(jì)算結(jié)果都完全一樣,任何計(jì)算錯(cuò)誤都有可能導(dǎo)致蝴蝶效應(yīng),產(chǎn)生嚴(yán)重的后果,因?yàn)闋顟B(tài)不能同步的話游戲根本就沒有辦法進(jìn)行下去,最終將崩潰退出。

  • 《Algorithms and Networking for Computer Games》這本書中關(guān)于Lockstep的部分與本文的說法有些不同,我覺得也沒有誰對(duì)誰錯(cuò)之分,Lockstep更多的是一種思想,算是不一樣的理解吧,感興趣的同學(xué)也可以看看書中的章節(jié)。書中將Lockstep分為commit和reveal兩個(gè)階段,并且采用了流水線的方式。如下圖所示

0x03 與Lockstep無關(guān)的細(xì)節(jié)問題

為什么要討論與Lockstep無關(guān)的問題呢?因?yàn)檫@些問題雖然與Lockstep無關(guān),但卻與游戲本身有關(guān),而且很多問題是由Lockstep引起的

野怪刷新與暴擊

我們都知道,Dota中有許多問題是與概率相關(guān)的,比如整點(diǎn)時(shí)野怪是隨機(jī)刷新的,出了水晶劍之后是有概率暴擊的。那么按照Lockstep同步機(jī)制,計(jì)算都是在每個(gè)玩家自己電腦上完成的,那么在有概率存在的情況下,怎么可能保證每臺(tái)電腦的計(jì)算結(jié)果一致呢?!

這時(shí)就輪到偽隨機(jī)數(shù)派上用場了,我們來看下面這個(gè)Java程序

import java.util.Random;public class PseudoRandom {    public static void main(String[] args) {        Random r1 = new Random(10);//這里的10就是隨機(jī)種子(Random Seed)        for (int i = 0; i < 10; i++) {            System.out.print(r1.nextInt(100) + "\t");        }        System.out.println();        Random r2 = new Random(10);        for (int i = 0; i < 10; i++) {            System.out.print(r2.nextInt(100) + "\t");        }    }}//Output//13	80	93	90	46	56	97	88	81	14	//13	80	93	90	46	56	97	88	81	14

如果你的jdk版本沒有什么問題的話,那么你看到的結(jié)果一定也是上面那樣,而且無論你運(yùn)行多少次都是這個(gè)結(jié)果。大部分編程語言內(nèi)置庫里的隨機(jī)數(shù)都是利用線性同余發(fā)生器產(chǎn)生的,如果不指定隨機(jī)種子(Random Seed),默認(rèn)以當(dāng)前系統(tǒng)時(shí)間戳作為隨機(jī)種子。一旦指定了隨機(jī)種子,那么產(chǎn)生的隨機(jī)數(shù)序列就是確定的。

所以,游戲開始前,參與游戲的玩家電腦協(xié)商確定一個(gè)隨機(jī)種子,就可以保證在游戲進(jìn)行過程中大家產(chǎn)生的隨機(jī)數(shù)序列是相同的,也就可以保證計(jì)算結(jié)果一致。

例如一個(gè)英雄的暴擊率為30%,對(duì)某個(gè)目標(biāo)持續(xù)普攻,如果隨機(jī)數(shù)序列為12 32 90 25,小于等于30判定暴擊,大于30判定不暴擊,那么每個(gè)玩家電腦的計(jì)算結(jié)果都是暴擊 不暴擊 不暴擊 暴擊。(這里只是舉例說明原理,游戲中的實(shí)現(xiàn)細(xì)節(jié)不一定是這樣)

外掛問題

在對(duì)戰(zhàn)平臺(tái)打Dota的人都見識(shí)過全圖掛,而且屢禁不止,那么為什么Warcraft III中會(huì)有全圖掛,而沒有其他游戲中的變態(tài)掛(如加強(qiáng)攻擊力,瞬間移動(dòng)等等)呢?為什么無法從根本上杜絕全圖掛呢?

前面已經(jīng)說過了,使用Lockstep同步機(jī)制,所有計(jì)算都是在本地完成的,每輪turn都必須接收來自其他所有玩家的操作指令才能完成計(jì)算,也就是說其他玩家的一舉一動(dòng)你的電腦其實(shí)是知道的,只不過沒有在你的屏幕上展現(xiàn)出來罷了(被戰(zhàn)爭迷霧遮擋了)。因此,全圖掛只要修改Warcraft III的內(nèi)存數(shù)據(jù),就可以去除戰(zhàn)爭迷霧,達(dá)到開全圖的效果。而對(duì)戰(zhàn)平臺(tái)不可能改變Lockstep這種同步機(jī)制,只能在本地檢測(cè)是否有其他程序修改Warcraft III的內(nèi)存數(shù)據(jù)(就像病毒查殺一樣),而外掛程序總有辦法繞過檢測(cè),所以全圖掛總是層出不窮。

而另一方面,恰恰因?yàn)長ockstep同步機(jī)制,其他比較變態(tài)的外掛根本不可能在Warcraft III上存在。比如強(qiáng)化攻擊力,我們同樣可以利用修改內(nèi)存的方式將增加自己的攻擊力,可以直接秒殺其他任何單位,但是別忘了其他玩家電腦也在同步的進(jìn)行計(jì)算,而我們的攻擊力在其他玩家電腦上仍然是不變的,這就造成了狀態(tài)不一致。前面說過了,Lockstep中出現(xiàn)狀態(tài)不同步的情況時(shí)很容易產(chǎn)生蝴蝶效應(yīng),最終崩潰退出。

斷線重連

這個(gè)問題一直被廣大玩家詬病,因?yàn)槠渌W(wǎng)游從來沒有斷線之后連不回去的情況,為什么Warcraft III不支持?jǐn)嗑€重連呢?

Lockstep同步機(jī)制是非常嚴(yán)格的,中途加入游戲是從技術(shù)上來講是非常困難的。首先中途加入的玩家要進(jìn)行狀態(tài)同步,而狀態(tài)同步本身包含的內(nèi)容太多了,其中包括時(shí)間戳、偽隨機(jī)數(shù)序列、所有單位的位置屬性信息等等,不是簡單的復(fù)制粘貼就能同步的。這說起來容易,要具體實(shí)現(xiàn)起來沒那么簡單,而且在局域網(wǎng)中掉線情況并不常見,因此早期暴雪的開發(fā)人員可能也就忽略這個(gè)問題了。

事實(shí)上使用對(duì)戰(zhàn)平臺(tái)的人才會(huì)經(jīng)常遇到這個(gè)問題,在互聯(lián)網(wǎng)中,延遲高、掉線的情況時(shí)有發(fā)生。那么11平臺(tái)的掉線重連功能是怎么來的呢?個(gè)人觀點(diǎn),那并不是真的掉線重連,只是我們的丟包情況比較嚴(yán)重,暫時(shí)卡了而已。11平臺(tái)可能做了一些優(yōu)化,將其他玩家的操作指令保存起來,等延遲穩(wěn)定的時(shí)候再發(fā)送給我們。但由于此時(shí)我們電腦所處的turn可能落后了其他玩家,所以此時(shí)游戲就會(huì)像快放一樣趕上其他玩家的進(jìn)度。如果是真的掉線,如停電、程序崩潰等直接退出的情況,我們是無法重新加入游戲的。

Warcraft III是不是使用嚴(yán)格的Lockstep機(jī)制?

接上一個(gè)問題,如果Warcraft III是嚴(yán)格的Lockstep同步機(jī)制,那么一定會(huì)出現(xiàn)一人卡、大家都卡的情況,而事實(shí)上只有當(dāng)我們是主機(jī)時(shí)才會(huì)出現(xiàn)這種情況,其他情況下我們延遲高甚至掉線都不影響其他玩家的操作。

因此,Lockstep實(shí)際是一種理想的模型,如果在實(shí)際中使用會(huì)造成非常差的用戶體驗(yàn)。那么Warcraft III使用的到底是什么同步機(jī)制呢?參考What every programmer needs to know about game networking這篇文章后面一個(gè)評(píng)論的說法

TOADCOP

FEBRUARY 10, 2010 AT 9:15 AM

btw afaik StarCraft don’t use peer-to-peer it uses client-server model with lockstep (at least warcraft 3 does so). It has the advantage what theoreticaly laggers will not affect gameplay/response latency at all (but to not let them fall behind server do timeouts so the lagger can catch up, also doing temporary local game speed increasing) and imo it’s the only and true way to do sync in RTS like games. (and for some reasons this technic isn’t good covered in the web)

然后是作者的回復(fù)

GLENN FIEDLER

FEBRUARY 10, 2010 AT 10:20 AM

You are correct. Also something cool is that in a C/S RTS model the server could also theoretically arbitrate to ignore turns from lagging players, and kick them if they don’t catch up – removing various exploits where you can time-shift your packets and lag out other players.

也就是說Warcraft III使用的是基于Client-Server的Lockstep模型。這就是為什么Warcraft III中有主機(jī)這個(gè)概念,當(dāng)然這里主機(jī)的作用并不是完成所有計(jì)算。

(以下為個(gè)人觀點(diǎn))

Warcraft III中的主機(jī)的主要功能是廣播并設(shè)置timeout,也就是說在每個(gè)turn內(nèi),游戲玩家并非直接將自己的操作指令廣播給其他玩家,而是先發(fā)送給主機(jī),由主機(jī)負(fù)責(zé)廣播,且每個(gè)turn都有timeout,如果超過了timeout仍然沒有收到某個(gè)掉線玩家的操作指令,則忽略該玩家在該turn的行為,即認(rèn)定他什么都沒有做,并與其他延遲正常的玩家同步進(jìn)入下一個(gè)turn。而當(dāng)?shù)艟€玩家網(wǎng)絡(luò)恢復(fù)時(shí),主機(jī)會(huì)將之前保存的turn中操作指令集合發(fā)送給該名玩家,而該名玩家為了趕上進(jìn)度,就會(huì)出現(xiàn)游戲快放的情況。

所以Warcraft III中只有在主機(jī)延遲高或掉線時(shí),其他玩家才會(huì)受影響,否則不受影響。在局域網(wǎng)中,如果主機(jī)是正常退出的,那么會(huì)選定另一玩家電腦作為主機(jī),如果是崩潰退出的,則所有人都會(huì)直接掉線。至于在對(duì)戰(zhàn)平臺(tái)上是否有優(yōu)化就不太清楚了。

0x04 總結(jié)

Lockstep是出現(xiàn)較早的一種同步機(jī)制,不過現(xiàn)在很多RTS游戲中依然能夠看到它的影子,當(dāng)然都對(duì)它進(jìn)行了一定程度的改進(jìn)。

國內(nèi)關(guān)于游戲編程和網(wǎng)絡(luò)同步的教材、文獻(xiàn)寥寥無幾,不知道是文化因素還是什么其他原因,難道與游戲相關(guān)的技術(shù)都是玩物喪志、不學(xué)無術(shù)?

在我查詢資料的過程中,發(fā)現(xiàn)國外不僅有游戲編程和網(wǎng)絡(luò)同步的理論教材,還有大學(xué)開設(shè)的游戲課程,甚至還有碩士論文是關(guān)于設(shè)計(jì)一個(gè)MMORPG游戲的……看看國外繁榮的游戲(使命召喚、刺客信條、魔獸世界),再看看國內(nèi)繁榮的游戲市場(頁游?手游?),看看國外知名的游戲公司(Blizzard、EA、UBISOFT),再看看國內(nèi)知名的游戲公司(……企鵝?)

這里不是想黑什么,而是覺得計(jì)算機(jī)作為一門多樣化的學(xué)科,我們不能固步自封,排斥其中的一些東西。有人說研究游戲有什么用?真的沒用嗎?看看下面這些應(yīng)用

  • 網(wǎng)絡(luò)游戲中廣泛應(yīng)用的航位推測(cè)法(Dead Reckoning)美國軍方也在使用
  • 游戲中的自動(dòng)尋路算法,在機(jī)器人和自動(dòng)駕駛中也有應(yīng)用
  • 游戲中的決策與博弈論也有關(guān)聯(lián)
  • 游戲服務(wù)器集群之間的負(fù)載均衡與一致性,和現(xiàn)在熱門的大數(shù)據(jù)息息相關(guān)

雖然不一定是由游戲本身推動(dòng)的,但是這些研究之間是相輔相成的,不會(huì)做無用功的,何況游戲本身就是增加GDP的一個(gè)好手段╮( ̄▽ ̄)╭

本文計(jì)劃寫成一個(gè)系列,后續(xù)還會(huì)介紹其他同步機(jī)制~

0x05 相關(guān)資料

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
21年前的一款游戲,整整一代人的青春與熱血,如今,他又回來了!
dota2怎么暫停
dota2荒獄卓爾游俠專精加點(diǎn)攻略
專欄丨淺析道具付費(fèi)、抽卡氪金后的第三種游戲收費(fèi)模式:游戲通行證的設(shè)計(jì)邏輯
從《大逃殺》到“大逃殺”,這是一類怎樣的游戲?
DOTA2為何沒有投降?
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服