Survios經驗分享:為什麼要為每款VR遊戲構建不同的互動機制
他在演講中提到的核心內容是,VR開發者應該儘可能嘗試構建靈活的,可擴充套件的程式碼庫,從而令多平臺VR遊戲開發變得更加容易。如果你計劃開發多款VR遊戲,你可以首先假設你會重複利用核心系統和迭代。
儘管將所有一切整合起來十分誘人,但西爾金表示Survios已經學會了將它們分解為模組化元件,並由團隊自行決定是否需要修改。
Survios已經為PSVR,Oculus Rift,HTC Vive和其他平臺上發行了多款VR遊戲,但西爾金主要強調了最近發行的多人海盜遊戲《Battlewake》。
他說道:“我們開發的最基本的技術之一就是互動系統。這是你與世界互動的基礎……這是我們在玩家與世界互動時建立關聯的方式。”
1.迴圈利用你的遊戲系統
從《Raw Data》到《Battlewake》,團隊最初開發的互動系統已經以一種或另一種形式出現在不同的Survios遊戲之中。另一個例子是他們為《Raw Data》建立的武器系統。這個系統構建成模組化,可用於所有遊戲槍支及自動炮塔。
Survios的武器系統包括射擊模式(自動步槍和衝鋒槍等)和傷害性武器(炸彈和火焰噴射器等)之類的元件,而它們在首次誕生後依然能夠在諸如《Battlewake》等新遊戲中得到沿用。
同樣,自《Raw Data》首次發行以來,Survios為其構建的傷害系統已經得到了大幅的擴充套件。西爾金表示,所述最初是為了遊戲能夠根據肢體來計算血條或觸發擊打反應而建立,但後者團隊對其進行了擴充套件,並使其變得更加模組化。
團隊同時為《Raw Data》中的近戰戰鬥提供了支援,所以在開發VR拳擊模擬遊戲《Creed:Rise to Glory》的時候,他們已經擁有了堅實的基礎。
西爾金解釋說:“我們在《Raw Data》中實現了一定的進展戰鬥,但非常簡單,你的雙手實際上會穿過敵人。所以我們希望進一步打磨,尤其是拳頭的衝擊力,以及雙手的碰撞檢測。”
所以他們沿用了《Raw Data》的近戰武器系統,將碰撞球體構建到玩家手中,並使用逆運動學來適當地移動角色肢體。
他指出:“如果你擺出格擋姿勢,然後敵人嘗試攻擊你,這是它將會擊中碰撞球體,然後你運動學系統會進行響應。這會戰鬥增添了一定的物理性。”
團隊曾為《Raw Data》設計了一種會衝向玩家並會因衝力摔倒的機器人。為了令拳擊感更加真實,更加沉浸,他們在這一系統之上為《Creed》構建了類似的機制。
西爾金解釋說:“如果你用力過猛,你會因為衝力會摔倒。同樣,團隊利用了《Sprint Vector》的移動系統並打造出獨特的功能。
2.儘可能令系統變得模組化
但讓《Sprint Vector》和《Creed》使用太多的相同程式碼會成為一個問題,因為大多數程式碼都捆綁在一個Survios外掛中。要抽出並修改元件,你需要花費大量額外的精力,並且由於團隊成員需要來回尋找最佳方法,這會造成一定的時間浪費。
西爾金說道:“我們意識到所有這些假設經常都會被打破,所以團隊一直在爭論什麼是正確的做法。所以,我們將其分解成有著抽象層的獨立外掛。”
另外,團隊建立了一種介紹如何為遊戲配置所述系統的模板,這樣工作室中的任何人在開始新專案時都可以予以使用。
他說道:“成員可以自由進行調整。這時我們開始了我們的Great Pluginification(外掛化)。”
為了闡明Great Pluginification的情況,西爾金介紹了他們是如何將一個原有的Survios元件外掛分解為37個單獨的外掛(如SVRDamage,SVRAnimation,SVRLoadScreen等),並在其中新增了更多內容。
他指出:“它們都存在於各自獨立的模組中,所以從理論上講,如果團隊需要,這些子系統完全可以替換掉。”
作為Survios的最新作品之一,《Battlewake》正是建立在所述系統之上,並且結合了工作室迄今為止所積累的經驗教訓。這款作品同時已經在影響未來的專案。
西爾金最後說道:“當我們選擇專案時,我們會嘗試選擇能夠在未來專案中派上用場的內容。一定要嘗試將你的系統分解模組化……這可能意味著需要更多的維護和樣板程式碼,但從長遠來看,它能夠支援你更輕鬆地進行管理。”
原文來自:gamasutra
來源:映維網VRAR編譯
原文連結:https://yivian.com/news/68246.html
相關文章
- 為什麼每個程式都有四個不同的ID?
- 為什麼要虛擬化,為什麼要容器,為什麼要Docker,為什麼要K8S?DockerK8S
- 遊戲互動機制探究:是什麼影響了遊戲的流暢度?遊戲
- 為什麼每個Java的類欄位預設要設為finalJava
- 知識沉澱 | 遊戲互動設計經驗分享遊戲
- 為什麼要學資料結構?資料結構
- 為什麼 Redis 要有哨兵機制?Redis
- 直播美顏工具接入平臺有什麼意義?為什麼要區分為不同的版本?
- 構建千萬玩家的遊戲體驗——如何推動互動創新?遊戲
- 為什麼要removeREM
- 為什麼要敏捷?敏捷
- 互動式電影遊戲到底是為什麼如此迷人?遊戲
- 育碧經驗分享:如何設計VR密室逃生遊戲VR遊戲
- 為什麼遊戲裡要揀回屍體?遊戲
- HBO解密:他們為什麼要開發VR版《西部世界》解密VR
- 企業為什麼要建資料倉儲?
- 重構模式(二)---- 為什麼要 Refactoring模式
- 真香!為什麼Android要採用Binder作為IPC機制?全套教學資料Android
- 你構建的程式碼為什麼這麼大
- 為什麼有的男人要假裝每週工作80小時
- 以《GTA》為例:為什麼遊戲需要平衡畫面真實度和互動性的比例?遊戲
- 為什麼要code reviewView
- 《Tsuro》實戰分享:移動VR遊戲開發經驗與教訓VR遊戲開發
- 為什麼 JavaScript 的 this 要這麼用?JavaScript
- 為什麼要重構?深入探討重構的原則、範圍和時機
- ADAMoracle預言機以什麼為經濟模型建設節點Oracle模型
- 前端構建大法Gulp系列(一):為什麼需要前端構建前端
- 為什麼要打造智慧數字經營門店?
- 為什麼使用自注意力機制?
- 簡談為什麼遊戲公司要打造自己旗下的IP遊戲
- 這款飛行遊戲比 Windows 還老,微軟為什麼要將它復活?遊戲Windows微軟
- 【知識分享】伺服器為什麼要託管在IDC機房伺服器
- 為什麼要選擇電話機器人?機器人
- 【知識分享】伺服器為什麼要測壓需要注意什麼伺服器
- 我的遊戲這麼好玩,為什麼賣不動?遊戲
- 你為什麼不分享?
- 為什麼要學習 RustRust
- 為什麼要學習 Julia