盤點遊戲中那些“欺騙玩家眼睛的開發技巧”
雖然電子裝置的效能每年都在不斷攀升,但是CPU與記憶體等資源還是供不應求。為了提高效率或者節省資源,幾乎所有遊戲都會採取各種非常取巧的方式來達到某種表現效果,導致遊戲實現的方式可能與玩家的認知大相徑庭。這篇文章,就從開發者的角度給大家扒一扒這些“遊戲障眼法”。
“障眼法”數不勝數,種類繁多,這裡面大體上分為下面幾類。
1.巧妙利用玩家視角
簡單來說,就是“保證玩家看到的內容沒有bug”,我們只關注玩家能看到的內容,而看不到的無論有多麼簡陋與不堪,開發者都完全不去理會。這是遊戲中最為常用的手段,具體的實現方式與技巧也說是五花八門,只有你想不到,沒有開發者玩不了。
例子1:
cs中的角色,我們每次拿著一把衝鋒槍奮勇殺敵的時候,螢幕中心都是這樣的第一人稱視角。
隨著我們利用精湛的槍法不斷地擊殺敵人,心中的自己一定是這樣的,
或者這樣
再不濟也就是這樣了。
但其實真相卻是......
這樣
沒錯,其實你只有一雙手和一把槍,早期的CS甚至連腳都看不到。
那你不禁要問,這是為什麼???
答案當然是——為了省事。沒錯,就是為了省事,做一個完整的模型加動畫可是要耗費不少時間和投入呢。反正玩家第一視角又看不到,做那麼多不是浪費麼?(老闆:3D模型師一個月要不少工資呢,能省則省啊)
當然,還有第二個原因,就是第一人稱視角下做一個完整的模型並應用進去效果其實是很差的,遊戲中第一人稱視角下最合適的比例與實際生活中是有差異的。假如我們做了一個完整的第三人稱角色與換槍的動畫,在第一視角下總會出現模型被遮擋甚至是穿模的問題,因此所有的第一人稱動畫與第三人稱的動畫就完全分開來做。
對於一些喜歡深究的同學,可能還有抱有一絲疑問,為什麼我看到別的玩家就是正常的角色模型呢?
這涉及到網遊的一些常識,你看到的確實是一個普通的第三人稱的模型,但是這是在你的電腦上面,你的電腦上只有自己是一雙手,其他的角色都是完整的,這是遊戲開發者對網路遊戲視覺同步的一種手段。
例子2:
關卡與場景範圍。當我沉浸在《神祕海域》《巫師》《戰神》等3A大作的時候,當我們眺望遠處看著波瀾壯闊的場景而感慨人生無常的時候,你一定不由得讚歎開發者竟能做出如此廣袤又充滿細節的場景。
但你一定沒有想到,當你再次把攝像機從玩家的視角向遠方移動的時候,所見之處的外面會是這個樣子,到處是空蕩蕩的場景,遠處白茫茫一片什麼都沒有。
雖然有點失望,但事實就是這樣,為了效能我們不得不刪點哪些玩家看不太到的東西。簡單科普一點遊戲開發常識,場景中的所有物體都是需要佔用電腦記憶體空間的,同時場景裡面的物物體越多,對渲染的壓力也就越大。對於玩家看不到的場景,確實沒有必要去做任何處理。
神祕海域裡面,在火車戰鬥的那個關卡中,經常會把玩家的視角鎖定在一個很小的密閉空間裡,而這個時候很可能是場景在進行切換而並不想讓你發現。
例子3:
2D遊戲中的視覺誤差。其實我們都知道2D遊戲角色都是一張“紙片”,但是有的時候這個紙看起來好像還有點立體。比如下面這個版本的熱血足球,裡面的角色還真是一張張“立體的紙”。這種手法在遊戲裡面也是數不勝數。
其實寬泛一點說,電影、電視劇等也都是如此,而且相比遊戲有過之而無不及,因為很多遊戲中玩家都可以隨意的調整視角,所見所聽也就更為自由,而電影裡面你只能看到“導演想讓你看到的”場景。
2.隱藏與替換
遊戲中常用的手段之二,當然大部分情況也是為了效能。
例子1:
超級瑪麗中的草和雲,玩了這麼多年估計還沒有多少玩家發現他們其實是一個圖片,只不過是換了個顏色。早期的紅白機裡面,機器的效能與可利用的資源少得可憐,都是儘可能的利用好每一個畫素的。
例子2:
巫師的分屍,我們看到像巫師這類的遊戲有碎屍的效果。但是給模型按照刀砍的方向去分離又保證屍體的效果其實是比較困難的,同時如果各種屍體都是不同的模型對遊戲效能造成一定影響,所以在玩家砍中的一瞬間會被替換成一個通用的血人模型。
例子3:
還有很多遊戲裡面的AOE的範圍攻擊(包括魔獸、dota等),很多遊戲裡面傷害監測並不是視覺上上的那個特效,而是隱藏在場景裡面的一個物理碰撞盒。這裡以英雄聯盟女槍為例,當開啟大招的時候,其實生成一個不可視的碰撞球,然後把這個球體不斷的推向前方,這個過程中可能會擴大,達到錐形的效果。
例子4:
最後一個例子是FPS中的子彈,很多射擊遊戲的槍都是沒有子彈的。你開槍的瞬間,立刻就用“射線檢測”到是否打到對方,打到就立刻計算傷害,這個過程中不存在任何實體子彈。
在FPS遊戲中,槍有兩種,一種是hitcan射線槍,一種叫projectile實彈槍。如果你能看到子彈的飛行過程,同時有一定延遲和受到重力產生的向下偏移,那麼這種情況下才是實彈槍,戰地裡面的槍就是projectile的。
3.其他技巧
例子1:
地震效果,基本上都是攝像機在震動,而不會去真正的改變場景中物體的位置。
例子2:
某些動態關卡,是整個場景在動,而玩家其實根本沒有產生位移,我當年和同學做的第一款跑酷手遊就是如此(下圖)。我還記得騰訊的面試官問我為什麼這樣設計,我當時竟然沒有回答出來???簡單來說,可以節省關卡設計的複雜性,節省關卡佔用的記憶體資源,對於與玩家相關的物理等處理也比較方便。
例子3:
遊戲的水面真的只是個“水面”。遊戲裡面真正的水只是上面波動的那一層,下面其實什麼都沒有,你覺得潛入水中有水的效果其實只是加了個後處理(可以理解為濾鏡)。
而水面看起來水錶面看起來波光粼粼,其實可能只是給他貼了個特殊的2D圖片(法線貼圖),只不過這個圖片自帶陰影效果,造成視覺錯覺。當然,想實現逼真的水面效果還需要非常多的技術與技巧,由於渲染這塊涉及到的內容比較複雜,就不詳細描述了。
總的來說,類似的“障眼法”還有很多很多,知乎上有一個問題就是專門討論這個的,有興趣的朋友可以進一步檢視。
https://www.zhihu.com/question/41720683/answer/92652575
作者:Jerish
來源:遊戲開發那些事
原地址:https://mp.weixin.qq.com/s/tV6ekFtIWlbP_mkiDwZ3MQ
相關文章
- 玩家的第三隻眼睛——遊戲中的“相機”與UI遊戲UI
- 你踩過幾個?盤點微信H5小遊戲開發中的那些坑H5遊戲開發
- 初探堆疊欺騙之靜態欺騙
- 再探堆疊欺騙之動態欺騙
- 盤點Excel中的那些有趣的“bug”Excel
- 盤點Go中的開發神器Go
- 欺騙機器學習模型機器學習模型
- DNS欺騙(轉)DNS
- LLMNR欺騙工具Responder
- DNS欺騙和ARP欺騙是什麼?有何區別?DNS
- 【開發技巧】再見,BLE的那些坑!
- 安全之——郵件欺騙
- 盤點大廠的那些開源專案 - 華為
- Android開發的那些坑和小技巧Android
- 遊戲開發中的紅點提示遊戲開發
- 那些“一個人做的遊戲” 和它的玩家們遊戲
- 遊戲到底難不難,是誰說了算? 關於遊戲難度與玩家技巧的那些事遊戲
- 欺騙防禦技術新功能:用郵件資料欺騙攻擊者
- 軟體解決顯示卡欺騙器,HDMI欺騙器,如何使用ToDesk免費功能
- 盤點大廠的那些開源專案 - 小米科技
- 網路欺騙技術 (轉)
- 基於DNN的人臉識別中的反欺騙機制DNN
- Protobuf在微信小遊戲開發中的使用技巧遊戲開發
- 盤點一些iOS開發技巧:Swift和Objective-CiOSSwiftObject
- iOS開發中的技巧iOS
- 盤點大廠的那些開源專案 - 滴滴出行
- 遊戲開發過程中需求變化那些事遊戲開發
- DNS 系列(三):如何免受 DNS 欺騙的侵害DNS
- 生態玩家突破百萬,盤點Immutable當前主推的13款遊戲遊戲
- IP欺騙原理與過程分析
- 遊戲體驗:情緒與情感——你的遊戲能騙到玩家的眼淚嗎?遊戲
- Evan Killham:列舉玩家在休閒遊戲中的幾個作弊技巧遊戲
- 盤點大廠的那些開源專案 - 嗶哩嗶哩
- 盤點大廠的那些開源專案 - 微眾銀行
- 網路安全中有哪些常見的欺騙方式?
- 偷天換日,用JavaAgent欺騙你的JVMJavaJVM
- 遊戲開發商如何留住核心玩家遊戲開發
- 網路安全測試---ARP欺騙