假如沒有載入畫面遮掩,在進入遊戲或者關卡時玩家會看到什麼樣的場景?

最好有圖,多圖~


記得以前魔獸世界有個快速刷蛋刀的BUG:先在最終BOSS的房間門口下線,然後重新連接,在載入畫面時按下NumLock鍵(自動前進),這樣玩家就有很大幾率穿過本來存在的地圖阻擋(這裡是一扇關閉的門),跳過之前的各種BOSS直接挑戰伊利丹(如果按正常流程,需要擊殺其他BOSS與特定NPC對話才能打開最後的那扇門)。

所謂的穿過阻擋,其實也只是趁地圖阻擋尚未載入出來的時候移動人物,以進入本來不應該進入的區域,如此而已。

在配置較差的電腦上玩遊戲,當地圖切換時你會看到,魔獸世界是分層次逐級載入各項元素的:先是基本地形,然後是裝飾物或者布景道具(桌椅、掛畫之類),最後是各種怪物與NPC。

根據本人的工作經驗,當MMORPG處於讀取畫面時,實際的流程大體是這樣的:

1.首先獲取基礎的地圖資源文件(xxx.map),該文件包含了基礎地形、紋理貼圖等等

2.讀取與該地圖文件相關的各類表格,獲取綁定在該地圖上的其他資源文件,例如地圖初始化腳本、NPC信息(NPC的ID,坐標)等等

3.以地圖初始化腳本為例,該腳本將副本所需的各項資源與邏輯整合進基礎的地圖之上,表現為調用諸如SummonMonster(MonsterID,PosX,PosY)之類的函數,並通過副本變數與計時器控制著地圖阻擋的開啟與關閉,從而干涉玩家的遊戲流程

4.更微觀層面的怪物AI則在怪物被添加到地圖的時刻開始生效,這一AI腳本文件也是通過表格的形式與怪物ID唯一綁定的

其他遊戲原理也都類似,總之載入畫面的作用主要還是將各種遊戲文件從外存讀入內存。過去由於機能限制遊戲多以關卡為單位,一關一關載入資源,遊戲體驗是章節式的,而現今的開放世界沙盒遊戲等更傾向於以超大地圖無縫銜接提供的流暢體驗作為賣點,除了遊戲理念的發展之外,技術的革新也是至關重要的。DOOM之父卡馬克就是憑藉他超強的個人能力,在當時性能孱弱的PC上率先實現了能夠平滑過渡的橫版捲軸遊戲。憑藉這項技術,他成功移植了《超級馬里奧3》,並開發出了《指揮官基恩》,成為id software的第一款廣受好評的作品。

(好像有點跑題...)


黑屏。

從遊戲開發的角度解釋一下。

讀數據時同時顯示不斷更新場景,其實是一個頗複雜的技術,需要處理渲染和資源上傳顯存的同步,以及使用漸進式的數據格式(如先載入較低LOD的網格、紋理等),而且要令這個過程在觀感上不太兀突也是有難度的。這種技術通常只用於無縫地圖。

不支持這種形式的過關遊戲,在載入時就是簡單地阻塞形式讀數據。這樣也較少額外消耗,縮短讀入時間。不顯示載入畫面的話,就是黑屏。不過,家用遊戲機廠商常會規定黑屏或靜止畫面不能超過指定時間,有時開發者要加入簡單動畫,或把關卡切成更細的粒度。

另外,有時候前幾幀會出現明顯的頓卡,通常會渲染但不顯示結果。

我覺得像《Bayonetta》在載入關卡時供玩家練習出招還真是個不錯的做法,畢竟主角的模型和動畫是在遊戲開始時已讀入的長駐數據。


極品飛車12,當時買的盜版碟,不知道是電腦的事還是遊戲的事。深深地記得開著福特gt往前竄的時候會自動開啟慢動作特效,畫面靜止,然後一點點出現樓房、跑道、雜物、陰影、光影。對於當時家裡那個連極品飛車9都不能全特效的時候(這個是用親戚家電腦玩的)面對如此酷炫的鏡頭

哇~21世紀的高科技特效哎~

當然到最後也沒通關哪有開著開著變出一個急彎的(沒錯那時候連小地圖都沒畫出前面的線路)

直到上了大學網路發達了才明白

這他媽就是卡死了!!!

別人玩的時候一點這毛病都沒有!!!

關鍵是!!!

關鍵是!!!

卡的時候用了一個極品飛車特有的子彈時間特效!!!

忽悠了我多少年!!!

我他媽還以為製作組這麼dio突然隨機閃現一個複雜地形讓我隨機應變!!

之後再看見刺客信條那個漸變過度特效無比親切。

當然我他媽是不會去玩的。


曾經由於BUG看到過《Ballance》讀條畫面的載入過程。

讀條完成之前攝像機的視角似乎在場景正中央原位(視角比遊戲開始之後還要低一些,可以看得比較遠)。

當時使用的設備還沒達到Ballance要求的最低配置……(配置似乎是CPU 800MHz 96MB SDRAM VIA晶元組)。

顯存只有8MB……遊戲里的文字沒法顯示……(TGA格式的圖片字體)。

載入過程:

大約0%~20%:

開始時是純黑的。

大約20%~80%:

接著出現了遊戲里靜態的模型(石頭路面、木板路面 、鋼軌之類的)

同時還出現了一些未初始化的,稍後將會轉換成動態物件的模型(火焰粒子發射器的位置是個圓錐體,風扇是個大柱子)。

這時候模型都是灰色的,有光影(這個遊戲沒有「陰影」,只有球的「投影」)。

此時可能還會載入一些與遊戲相關的數值之類的(稍後物理引擎會用到這個)。

大約80%~100%:

然後出現箱子、擋板等動態的模型,物理引擎開始工作,箱子下落,火焰噴射口開始出現火焰粒子。

100%:

讀條完畢後不到半秒,「當」的一聲,遊戲就開始了。

這時候才能看到紋理貼圖,Skybox,攝像機是瞬間回到正確的位置上的。

和之前的畫面之間沒有任何過渡。

然後遊戲就開始了,之後一切正常……


就像是刺客信條,跑的快點有時候就能看見前面的長凳上有個人正在坐下,如果附近有很多長凳,那你就能看到很多人一起坐下的場景,同步率極高。


如果用純粹的渲染引擎而且不做優化的話(比如OGRE),表現是突然切入空的天空盒場景,然後慢慢依次出現各個entity。如果在遊戲中有新模型加入,加入的瞬間往往還會再卡一下。

如果是比較完整的引擎(比如U3D),表現是先卡一下,然後黑屏,然後突然切入一個完整的場景。



《我的世界》 不就經常這樣嘛…


暴雪大大已經在爐石傳說中就此問題作出了回答:

正在把燈光調暗

正在往軟泥怪體內填東西

正在練習邪惡的大笑

正在投擲作弊的硬幣。

而聰明的你,可以在此期間練習「抱歉」的發音


玩極品飛車18出過bug,載入畫面的時候進入了場景,大概鏡頭在車輪左右看著車輛和場景一點點載入好。


可能會看見有一群小人把場景里的道具搬進搬出,NPC們在找自己的位置站立。

大學時候看話劇,幕間突然燈亮了一下,看見了劇務的同學們在搬道具。

差不多一個意思


哈哈哈哈你要看這種東西找現在的PC遊戲是不行的

PC再慢硬碟速度也算極快了

得找90年代的遊戲機遊戲

那時候讀滿1M內存至少要4秒!!這還是連續數據,算上尋軌就更慢了。

遊戲進入戰鬥讀個5,6秒是小意思

因為大家是在等不了這麼長時間,所以廠商採用了一些比較有技巧的方式。

排除格鬥遊戲和生化這種用讀盤畫面過渡的

FF7為例。

進入戰鬥時屏幕一花出現溶解特效,大約2秒。這段時間是讀取場景貼圖的,先出地板。

然後進入畫面鏡頭開始旋轉,讀取主角的數據,給主角們特寫。

鏡頭慢慢拉遠,讀取敵人的數據,敵人出現。

最後把場景外圍的貼圖都讀全了。

如果戰鬥途中發個大招比如召喚獸什麼的,所有角色數據都要清除,讀召喚獸模型,發完招再讀角色數據。

當然最牛逼的還是NEOGEO CD上的遊戲了,要知道它的光碟機只有可憐的128K,讀1M數據也要8秒,而正常來說一次戰鬥要讀至少32秒。

於是就出現了下面的情況,可以看到每次只讀畫面一部分,顯示完後馬上清空,讀下一部分。

NEOGEOCD主機LOADING動畫

也就是說這遊戲每玩3分鐘,至少要讀盤1分30秒。

不過最符合題主要求的,應該是PS版的豪血寺一族2.

這個遊戲在對戰時有的角色可以變身,由於PS沒那麼大內存,所以就要扔掉原本的數據,重新讀變身後的數據。讀取的時候強制死機。

是的,你沒有看錯,在讀取數據的時候,緩存被鎖死了,整個遊戲就維持死機瞬間的畫面整整2秒。

所以大部分遊戲,如果你在LOADING狀態進去,看到的應該也是讀盤前的最後一個畫面或者一片黑,如果沒有廠商特別設計過,數據讀取完整前是不會給你顯示任何東西的


少女祈禱中?。。。

別開玩笑了,只有滿屏的數字,並沒有少女。


實際上現在做得不太好的一些沙盒遊戲也常有。

比如血源詛咒早期的版本,如果你跑得快,在某些場景就會出現場景貼圖沒載入過來的情況。那時候就是四面都是虛空,有時會帶有遠處的背景貼圖。

有時候連碰撞體積都還沒載入,就有可能直接跑到牆裡面,過一會兒載入好了就蛋疼了……

像黑道聖徒3,就是比較粗暴的做法,如果跑到邊界了還沒載入好的話人物就會直接卡在原地,而四周已經載入了的建築物還在,只是所有行人和車都消失了。所以如果你是開車過去的話就會看到角色非常神奇地坐在空中。


我下的刺客信條大革命 就是不知道出了什麼問題(關於大革命你們懂得),讀取遊戲的時候沒有讀取界面 而是在巴黎模型裡面選了一塊建築群 一開始出現的是粗糙的模型 然後慢慢變細緻,一點點增磚添瓦, 在之後 遠處的天空出現雲彩 山上的樹也能看到了 最後城市渲染完畢 進遊戲了


用顯存、內存較小的電腦跑那種無縫載入的沙盒類遊戲的話,很容易產生類似的效果,具體表現為:某個物體,比如NPC,突然無中生有、從天而降地落到你視野範圍內。那就是因為你的遊戲角色本來已經走到了(物理上實際)看得見該物體的位置,但是該物體尚未載入好,等完成載入之後就突然從天而降。

面對這種問題,遊戲設計師們最為常用的解決方法之一就是,在遠處加一層霧,使得物體「無中生有」的過程在霧中進行,等你走得足夠近,能夠清晰看見它時,時間已經足夠它載入好了。

Minecraft里非常容易重現這種現象,特別是在剛剛啟動或者採用任何傳送類功能時。這甚至已經成為了一個小技巧,玩家可以透過尚未載入好的地表看見地下究竟有沒有自己需要的礦物。

圖例:

1.剛進遊戲,我所裝的人物模組尚未完成載入

2.創建一個新的世界,遊戲世界正在載入,可以看到很大一塊區域缺失

3.載入完畢後的世界

4.飛到空中,可以看到遠處為了遮擋未載入區塊而特意造出的霧氣效果


神秘海域中的無限樓梯……


大家都刷過無雙吧,突然出現一堆小兵在你面前就是這狀況。


WARNING: deprecated method xxx_xxx().


如果是有Loading界面那種載入的話,遊戲畫面的渲染根本是不執行的,所以沒有loading界面也是什麼都看不到的。如果是動態載入的話,就跟呂貓說的差不多。


推薦閱讀:

python2.7.9卸載和安裝提示there is a problem....該怎麼解決?
一名計算機大專學生的困惑?
為何有些程序的文件操作對話框不能輸入地址?
作為一個普通211大學的非王牌專業的學生,學習地理信息科學,是否能夠重點轉向為編程?
你遇到的最高效率的程序員是怎樣的?

TAG:遊戲 | 遊戲設計 | 編程 | 遊戲編程 |