為什麼現在的遊戲未完全下載也可以運行?

幾十G的遊戲在下載了十幾G之後就可以運行了,那麼剩下的都是什麼內容?高清材質么?程序本身又是怎麼做到這一點的?


你不可能一開始就同時玩所有的關吧。程序本身不大,很快能下完。然後就一關一關的資源下載。只要保證在你玩完第一關之前,只要能把第二關的資源下好就不會讓你玩不下去了。即便在一關之內,你也不可能同事看到所有的東西,所以只要按照你的視野,把需要的優先下下來就行了。再說了,即便有些你看到的還沒下好,也只要放個佔位符,比如粗糙的模型、小圖。玩著玩著出高精的給你個驚喜。有的是法。


打飛機,一般我都是邊下邊打的。

很可能這款遊戲打完一把了,還沒下載好


這個技術,目前來看比較好實現了,因為遊戲的絕大部分體積容量,是被美術資源佔據的,在美術資源還沒有完全下載好時,完全可以使用相對模糊的替代品進行遊戲,或是只允許玩家進行完全載入完成的關卡部分。

舉個例子,光環1代和光環:士官長合集中的光環1,雖然兩者在遊戲內容上差別很小,但是兩個程序包的體積相差卻很大。實際上驅動遊戲的數據框架,在同為3D遊戲,類似的玩法上,體積變化並不是很大的。然而當今的遊戲相較於以前的遊戲,容量卻是呈數十倍的增長態勢,其原因便是在於高清美術資源的堆積。最好的例子便是COD系列,從4代現代戰爭,到現在系列上的第12作黑色行動3,遊戲內容上改進不多,數據爆炸的原因便是美術資源。

這種下載了一部分數據就可運行的技術,我們稱之PlayGo,在PC平台上,目前暴雪的遊戲較多的運用了這種方式。在主機遊戲上,這種運行方式幾乎是必備的。比如,Final Fantasy X/X-2 這款遊戲,玩家可以在很早的時候就到達遊戲中幾乎所有的場景,還能夠在剛能進入遊戲時就讀取以前的存檔開啟二周目,擁有遊戲內大部分的物品和技能。可以說遊戲主題上的內容很早就裝在遊戲里了,餘下的部分,只是在填充美術資源。

這種技術比較容易適用於關卡類,線性的遊戲上,然而沙盒類遊戲就比較麻煩。比如Batman: Arkham Knight這種遊戲,如果玩家熟練的話,完全可以快速推進到超過遊戲安裝速度的地方,這時候,就很明顯的看到遊戲阻止你在安裝完成之前繼續玩下去了。

起先這種技術要求玩家在安裝了很少部分的數據後就能進行遊戲,然而在現在遊戲開放式地圖和高清數據的壓力下,這種要求已經被迫放開很多了。

其實並不是所有遊戲都能實現這種遊戲方式。像GTA5,完全開放的世界使得遊戲需要全部數據才能正常進行,因此如果你進入GTA5的PlayGo,會發現它並不真的讓你進行遊戲


1.更正問題:提問中包含有一種假設,即以前的遊戲不可以這樣做。其實,以前的遊戲其實也可以這樣做的,只是因為其他的原因(隨便舉一個例子1.網速不好;2.遊戲本身以光碟的形式發售)沒有這麼做。

2.實現原理:

只要遊戲是分關卡或等級的,開發者就可以預測出玩家在玩遊戲前5鍾、10分鐘、……使用到哪些資源。遊戲引擎就像是一個電影的導演,他知道這部電影前10分鐘拍哪一場戲,沒有必要將拍攝整部電影的所有演員都叫到片廠,所有道具都帶到拍攝地。拍一個戲,只叫相關人到現場就行。其中電影拍攝中所有的演員與道具即對應著遊戲中的那個十幾個G。十幾個G對應著整個遊戲的音頻、材質、貼圖等等,3D遊戲裡面這些Assets佔用很大空間,而實際遊戲運行的「靈魂」程序本身佔用的空間是很小的,與Assets佔用空間比起來,幾乎可以忽略不計了。現實中類似的例子其實有許多,比如在線視頻播放,只要在本地緩存一點數據,播放就開始播放了,並非必須等到整個視頻全部下載完才能開始播放。還有,額,我懶得舉了。

3.DLC(Download Content)的好處

這麼做的好處:這類似於超市舉行的試嘗,防止玩家花費許多時間(現在大家時間都寶貴)下載一個遊戲,當遊戲下載下來,玩了一兩關,發現遊戲不好玩,棄坑了。

這樣無論是對玩家(浪費玩家1.時間;2.流量(即便是有線,雖不花錢,也是佔用寬頻的)),還是遊戲開發商都不好。對開發商來說,他的1.下載伺服器是每天給伺服器提供商錢的;2.他的每個用戶是從大的平台買過來的(很多年前,一個下載激活用戶是8元);玩家玩了一下,沒有充值或者消費就跑了,對他來說是一種損失。

怎樣解決這個問題?就是題主提到的方法了!

4.補充一點

觸控公司(cocos2dx)可以提供一個試玩機制,本質上就是工作人員先下載下來玩一下你的遊戲,然後玩這一波段時間遊戲使用到的資源(相對於整個遊戲資源來說,很小很小的一部分)給記錄下來,如果有玩家想試玩某個遊戲,它只提供前面很小一部分資源的下載,這大大方便了玩家。


特別是星際,沒下載完就開始完,單位和地圖都會長得丑一點。還有很多東西是按需下載的,譬如地圖和coop。


你玩過網頁遊戲嗎?


遊戲最核心的就是代碼啦,代碼發布出去之後,只要代碼能夠分析出資源之間的引用關係,同時也支持非同步記載的話,就可以在不阻塞主線程的同時把相關的資源下下來後,再真正執行載入的命令。當然這個過程中可以用個跟代碼一起發布出去的簡單資源作為替代,等真正的資源下下來後替代就可以了。

不過這裡面有一些跟應用相關的各種各樣時序問題需要考慮。


下載的都是框架代碼,剩下的都是圖片文件。下了一半就能玩了,你進遊戲會發現全是空白頂著一個名字。就像你切換地圖,地圖數據需要載入,這種是地圖數據需要下載。


MC的地圖還是邊玩遍生成的呢


這個技術是因為國產頁游圈子給做出的貢獻(一臉認真)


視遊戲而定,一般網遊都有這種功能,尤其是暴雪的那幾款網遊。其實道理很簡單,跟遊戲的架構有直接關係,拿魔獸世界和暗黑3來說,容量佔比最大的是畫面材質,而可運行程序相對來說佔比較小,所以暴雪只需要在下載器里植入一個下載優先順序的程序即可實現邊下邊玩,事實上暴雪也是這麼做的,把遊戲可運行程序的優先順序提到最前端,用戶只需要花費幾十分鐘便可下載完成這款遊戲的最低運行程序,然後以一個較低的畫質進行遊玩,但是很多畫質選項沒法調節,需要等你把遊戲的整個客戶端全部下載好才行。並不是什麼先進的技術,幾年前就有了。


現在的遊戲把貼圖數據去掉還有多大


遊戲開發的時候,在測試階段可以記錄下哪些文件使用最頻繁,然後在發售後可以優先下載這些文件。

我猜的,不知道實際會不會這樣做…


很早以前就可以了好吧

ps2時代有的遊戲一張光碟裝不下

比如戰國無雙2猛將傳的光碟上只有新增加的內容

那要拿著新武器新人物玩以前的內容怎麼辦?

先把猛將傳的碟放進去,選擇聯動本傳,然後放本傳的碟


程序不大,策劃配置不大,大的是美術資源,音頻,某些邏輯數據,這些都是可以按需載入的


這叫程序的局部性原理


有高清材質之類的,代表是風暴英雄和星際。

也有的遊戲因為太大了,讓你邊玩邊下解解饞。

比如戰地1,你玩完單人戰役,聯機就差不多下好了。


新地圖,新人物,新任務,新裝備,可以想像一輛只有引擎和底盤的車,當然也能跑起來


你知道偶(jia)像(zai)大師這款手游嗎?就是邊玩邊載入……


暗黑破壞神3

專業邊玩邊下

應該說是戰網上的遊戲都這樣。

除了爐石。


推薦閱讀:

絕地求生霧天的吃雞技巧是什麼?
如何評價中國的遊戲漢化?
遊戲開發人員是不是首先遊戲一定要打得特別好呢?
《龍騰世紀》系列各代為什麼不使用同一個主角?
有哪些冒險類(AVG)遊戲能稱得上殿堂級?

TAG:遊戲 | 軟體 | 下載 |