單一世界架構(gòu)初探(17)世界地圖

和其他網(wǎng)游不同的是,單一世界具有龐大的地圖,比如一個(gè)地球,這種情況和導(dǎo)致地圖的數(shù)據(jù)量很大,幾個(gè)G都是正常的事情。在這種情況下,處理策略有很大的不同。

以魔獸世界為例,所有的客戶端和服務(wù)端都有相同的地圖,這樣保證在設(shè)計(jì)地圖的計(jì)算時(shí),不需要從服務(wù)端得到地圖數(shù)據(jù),減少數(shù)據(jù)傳輸量。在第二人生和激戰(zhàn)中,有些不同,本地沒有全部的地圖。激戰(zhàn)在跳躍到新的地方時(shí),需要有個(gè)很長的延時(shí),似乎是從服務(wù)端讀取地圖數(shù)據(jù)。

但是單一世界一個(gè)顯著特征就是地圖龐大,顯然不可能完全將地圖放在本地。不過我們也應(yīng)該看到,在單一世界中,本地也沒有必要放置全部的地圖數(shù)據(jù)。就像你人在亞洲,歐洲和美洲的地圖只要你要去的時(shí)候才需要。而且,即使你在亞洲,日本的地圖也是你要去的時(shí)候才需要。多數(shù)情況下,你是從新手村開始,逐步探索各個(gè)地方。我的一個(gè)策略就是逐步下載。比如你在新手村的時(shí)候,我可以通過富裕帶寬,幫你下載附近城鎮(zhèn)的地圖,然后保存在本地。至于不需要的地圖,完成可以忽略不記。

以上提到的是世界地圖的下載策略。世界地圖還有涉及到生成的問題。和下載一樣的問題,就是大。我們不可能一下生成全部的地圖。世界地圖完全可以采取2個(gè)策略來生成,一個(gè)策略是聯(lián)邦制,就是由不同的人或者組織生成標(biāo)準(zhǔn)格式的地方來掛接到世界地圖中,另外一個(gè)策略是逐步生成,因?yàn)殚_始的時(shí)候,人一般會(huì)比較少,所以生成的地圖會(huì)比較小。隨著人數(shù)增多,逐步開發(fā)更多的地圖,就像魔獸世界這樣,逐步開放外域等其他地域。這2個(gè)策略沒有矛盾,完全可以同時(shí)采用。但使用聯(lián)邦制會(huì)涉及到利潤分成的問題,還需要商業(yè)層面來解決。

我曾經(jīng)有個(gè)想法,和魔獸爭霸以及CS相似,讓用戶來生成地圖,然后掛接到世界地圖,但涉及到資源需要審核,不然就亂套了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,084評論 25 708
  • 一直想記錄那些已經(jīng)離我越來越遠(yuǎn)的故事,曾經(jīng)提起筆來,寫過幾句就放下了,腦袋里一片空洞,可是和妹妹一起聊起往事...
    遇見更好的py閱讀 145評論 1 0
  • 前言 根據(jù)web.xml的配置,我們可以知道springMVC的主體控制器部分就是DispatcherServle...
    谷和阿秋閱讀 433評論 0 0
  • 大娃是個(gè)傻子。 村里的人都這樣喊他,飯后茶余的時(shí)光里,村子里的大人和小孩都喜歡逗他玩。因?yàn)樗闹巧膛c身高和年齡的強(qiáng)...
    蛋炒飯要加肉閱讀 431評論 0 0