二人工作室如何為《力》打造健壯的角色建立工具
本視訊轉載自YouTube
https://www.youtube.com/watch?v=9nnkxHqTOrM
考慮到《力》是工作室的第三款摔跤遊戲,你們在製作時用到了哪些來自前兩部作品的經驗?
執行製作人David Horn:第一個遊戲《Action Arcade Wrestling》完全是一個人完成的。現在製作這個遊戲的團隊是在開發第二個遊戲時組建的。所以那個時候花了不少功夫讓成員瞭解第一個遊戲的設想。
在我們準備製作第三個遊戲《力》時,我們已經踩過了開發摔跤遊戲時的許多陷阱,尤其是在遊戲中包含建立套件的設想。如果允許使用者來建立摔跤手,那麼在設計時就需要採取完全不同的思路。必須對每一個決定都加以拓寬,使幾乎任何內容都有可能新增進來。需要對很多東西進行抽象化,這簡直就像在對所有主要角色幾乎都一無所知的情況下寫一齣戲劇。
這些年來市面上出現過各種各樣的摔跤遊戲,有沒有對你們啟發特別大的作品?
Horn:我們主要受《狂熱摔跤》影像,不過我們的遊戲其實借鑑了90年代許多摔跤遊戲的元素。觀眾席的光照調得比較暗,那是受了超任版《瘋狂摔跤》的啟發,而各種誇張的動作是借鑑了《摔跤霸王》。我們也借鑑了64位機時代那些有擒拿系統的遊戲的元素。
有趣的是,至少我們覺得,把我們的遊戲說成街機式職業摔跤遊戲似乎是瞄準了非常特定的小眾市場。但是在那個類別中,其實已經有了多種多樣的遊戲風格。前面提到的《狂熱摔跤》就是非常“街機化”的,但是它仍然遵循真實世界的物理規律,而街機版《瘋狂摔跤》就和它相反,遊戲裡摔跤手的手臂會變成鋒利的刀刃。另一方面,年代比較近的《美國職業全明星摔跤》可以說是介於寫實和誇張之間。
《力》和大多數其他摔跤遊戲不同的是,它具有暫時提升能力的道具,使玩家能夠運用超人的能力。工作室出於什麼考慮增加了這些元素?
Horn:哦,即使在最早的任天堂紅白機摔跤遊戲裡,角色也能獲得能力提升道具,只不過是非常怪異的。還出現過另一些例子,以日本遊戲為主,玩家可以贏取某些物品來獲得某些能力增強。我記得自己小時候玩紅白機上的《M.U.S.C.L.E.》,會有隨機出現的閃爍光球滾到摔跤臺上,讓你的角色暫時變得更強大。
在我們開始研究這個創意以後,它就逐漸發展為“如果它不僅在遊戲中有效,而且對每種比賽型別效果不同會怎樣?”例如,在大逃殺中,如果你看到一個人想消滅一個對手,那麼看一下你可能想盜取的能力提升道具,可以幫你決定要幫助其中哪個摔跤手。
工作室出於什麼原因給這個遊戲製作了卡通渲染的外觀?
Horn:我們在開始試驗各種外觀以後,就決定採用卡通渲染的美術風格。第一,這可以方便使用者生成內容,因為他們不必花太多心思來製作摔跤手的寫實版本。其次,它非常適合我們要製作的遊戲型別;例如,你只要看一下這個遊戲和它的卡通渲染外觀,就會立刻知道它很可能不是慢節奏的模擬遊戲。最後,它也完全契合摔跤組織“力”的主題,因為他們就是以“會動的漫畫書”著稱的。
這款遊戲有數以百計的手繪動畫,能說說你是怎麼創作它們的嗎?
Horn:我們在開發第二個遊戲時,認識了一個才華出眾的動畫師,他叫Erik Novak。我們讓他承包了《力》的大部分動畫。和他合作是我們的福氣。
在製作職業摔跤遊戲時,有一個方面是非常可怕的,那就是如果動畫已經……動得……很好了,那說明你才完成了大約10%的工作。然後需要將動畫匯入、分類和轉換為動畫蒙太奇,並且為“捱打”的對手分配另一個動畫。然後這個招數還有反轉,那麼反過來還要做“反轉捱打”的招數。然後每一個招數都有分歧點,要定義反轉點、音效、繩子的反彈、特殊效果,以及在動畫中摔跤臺、摔跤手或周圍其他實體會受到影響的點。可以說,這是很辛苦的工作。
由於你們為遊戲建立了免費的Wrestle Factory套件,《力》擁有了一些在迄今為止所有摔跤作品中最健壯的角色自定義選項。能否談談新增這個功能的意義?說明一下你們是怎樣實現的?
Horn:我們不想釋出一款沒有建立摔跤手模式的摔跤遊戲。有些遊戲決定不包含這種模式,我們對此完全理解,但我們覺得我們可以創作出一些東西,真正讓我們涉足獨立摔跤遊戲也許從來不會涉及的創新領域。如果你上YouTube,看一場超級英雄和/或舊時摔跤明星之間的比賽,你也許會想,“如果獨立的小型摔跤遊戲能做到這樣會很酷”,因為這類遊戲中包含深度創作工具的不多。
但是讓我們再進一步……看到一臺飲料自動售貨機和一支鉛筆之間的比賽,你會感覺怎樣?這時候我們就會得到“等等……你說啥?!”之類的反應,總是能讓我們笑出來。我們讓大家看到了他們在摔跤遊戲中或者使用使用者生成內容時通常絕對看不到的東西。
首席程式設計師兼製作人Eugene Tchoukhrov:關於角色自定義功能,我們把它作為遊戲的一個獨立、特殊的構建版本來實現,這樣可以幫助我們簡化開發和迭代,並且確保基本程式碼保持同步,這是非常重要的。
我們希望所有平臺上的玩家都能夠下載和欣賞其他任何人的創作成果,這就意味著我們需要為這些創作提供一個在所有平臺上統一的管道。在我們下功夫開發創作工具之前,這也許是最重要的測試和驗證部分。我們必須同時開發這款遊戲的三個部分:創作工具(實現實際創作的部分,包括紋理處理、變形、附件建立、移動列表預覽/設定、序列化、後設資料生成和上傳)、伺服器端(儲存上傳創作成果、處理查詢和檢索的部分)和遊戲端部分(將創作成果下載並載入到比賽中的部分)。把創作系統的這三部分的最初版本整合到一起的那幾個月是充滿趣味和挑戰的。
考慮到這是工作室的第一款UE4遊戲,過渡到這個引擎的過程是怎樣的?
Tchoukhrov:能夠支配3A級的引擎對我們來說真是太棒了。我們再也不必白手起家,不必把時間花在基本管道或渲染後端之類的東西上。我們在那方面直接有了現成的東西可用。掌握原始碼訪問權也許是UE最大的優點,因為這讓我們能夠立即在引擎中修補漏洞,根據我們的需要調整引擎的核心部分,最重要的是給遊戲新增關鍵功能——比如NvCloth資源的變形。
為什麼說UE4很適合這個遊戲?
Tchoukhrov:前面已經說過,擁有一款易於使用的3A級引擎實在是太棒了。不過最重要的是它讓我們能夠立刻開始製作遊戲,並且允許我們全面訪問原始碼,根據我們的需求調整引擎。當我們遇到討厭的漏洞,或者需要給引擎新增獨特的功能時,這就為我們節省了無數的時間。
你們有特別喜歡的UE4工具或功能嗎?
Tchoukhrov:資料表。它們很了不起,我們到處都在用它們,儘可能提高我們遊戲的動態性。它使我們能輕而易舉地新增新模式,也能快捷方便地調整遊戲性。哦,藍圖也很酷!
Eugene,作為一個腦癱患者,能否說說擁有電子遊戲程式設計師這樣健康而可靠的職業是什麼感覺?
Tchoukhrov:到目前為止這個職業非常有趣,我非常喜歡。說實話,我覺得在這個領域從業的其他任何人的感想都不會有太大不同。當然,我回避了我的生理障礙來做我最擅長的事情,不過歸根結底,我做這份工作都是因為我熱愛它;因為看到一行行程式碼變成螢幕上的過肩摔能讓我露出笑容,因為看到其他人玩這個你花了無數心血的遊戲,並且樂在其中,是一種不可思議的體驗。這意味著我為了迴避生理障礙而付出的一切努力都是值得的。
這個遊戲有簡化的兩鍵控制模式。能不能說說為什麼你們會設計這個大眾化的模式,並談談你們整體上是怎樣設計戰鬥系統的?
Horn:兩鍵控制模式是直接借鑑了街機。街機玩家在投幣以後都沒有時間去學習複雜的按鍵系統。所以我們就想體現這個特點,並且進一步讓我們的遊戲和目前市面上的遊戲區分開來。我們研究過《任天堂明星大亂鬥》之類的遊戲,為的是瞭解怎樣才能充分發揮這種設計的優點。我們的遊戲是在2D平面上玩的,我們的設計也是基於這一事實。給方向鍵/箭頭新增修飾符使我們得以擴充套件了我們的成果。
開發這款遊戲時最大的挑戰是什麼?你們是如何克服的?
Tchoukhrov:戰鬥/動作系統。摔跤遊戲屬於比較難製作的遊戲,因為必須考慮到各種各樣的情境,並且在比賽中正確處理。
工作室花了很多功夫為這款遊戲創作出逼真的繩索和布料物理效果,甚至打造了一款在虛幻商城發售的外掛。能不能介紹一下為此進行的工作?
Tchoukhrov:為了打造逼真的繩索和布料物理效果,我們有無數次看白皮書看到半夜,研究那裡面非常長的物理公式,思考把它們轉化為有效程式碼的最佳方法。之後又花了更多個不眠之夜將有效的模擬程式碼轉化為“有趣”的、但是速度快得多的SIMD程式碼,然後又在模擬中新增了更加“有趣”的多執行緒處理。在遊戲開發的初期,我們製作了一條帶有碰撞的模擬繩索,將它作為摔跤臺的圍繩來測試,看起來效果非常棒。在那之前我們一直用的是靜態動畫。這個在週末做出來的小小原型發展成了現在的多平臺軟體模擬系統,它可以模擬繩索、布料和其他體積不變的軟體(這是最新的開發成果,很快會作為免費更新發布)。這個外掛已經被用在多個遊戲中,最近的是《Deliver Us The Moon》。看到其他遊戲利用這個外掛,讓我們感到特別興奮和惶恐。
在為虛幻商城提供作品之餘,工作室有沒有利用過其中的商品?
Horn:最初的卡通渲染就是來自商城,另外還有幾種粒子效果。對小團隊來說商城真是太棒了,因為它讓我們能很快學到知識。我們的意思是,比方說,我們不必花大量時間來理解關於UE的粒子系統的一切,可以購買一些和我們的設想很接近的東西,對它進行分析,然後利用這些資訊建立我們自己的原創材質。
感謝你們抽空接受採訪。人們可以在哪裡瞭解更多關於《力》的資訊?
https://www.actionarcadewrestling.com/
https://www.facebook.com/ActionArcadeWrestling
https://twitter.com/ChikaraAAW
來源:虛幻引擎
地址:https://m.weibo.cn/status/4463831390731347?wm=3333_2001&from=1084193010&sourcetype=weixin&featurecode=newtitle
相關文章
- 如何編寫健壯的程式
- 健壯性測試工具-stress-ng
- 如何提高nodejs程式的穩定性,健壯性NodeJS
- setsockopt()改善程式的健壯性
- 論程式的健壯性——就看RedisRedis
- 寫出健壯的Bash指令碼指令碼
- 如何讓程式更健壯「GitHub 熱點速覽」Github
- 用Flow提升前端健壯性前端
- 健壯高效的小程式登入方案
- 如何設計一個優雅健壯的Android WebView?(上)AndroidWebView
- 如何設計一個優雅健壯的Android WebView?(下)AndroidWebView
- Python 系列:如何提高 python 程式程式碼的健壯性Python
- 關於對健壯性程式碼的理解
- 論怎麼提高程式的健壯性
- 如何保障物聯網平臺的安全性與健壯性
- 如何自己實現一個健壯的 SSO 單點登入系統
- 從零開發一個健壯的npm包NPM
- 怎麼構建健壯的分散式系統?分散式
- 健壯且可讀的安卓架構設計安卓架構
- 讓你的C++程式碼變的更加健壯C++
- 打造Ubuntu為PHP開發生產力工具[持續更新]UbuntuPHP
- 程式碼質量第 4 層 - 健壯的程式碼
- 淺析:setsockopt()改善socket網路程式的健壯性
- CodeReview--提高程式碼健壯性View
- MongoDB健壯叢集——用副本集做分片MongoDB
- 從部署架構提高系統健壯性架構
- 使用Go實現健壯的記憶體型快取Go記憶體快取
- 聊聊 Python 的應用 - 健壯高效的網路爬蟲Python爬蟲
- Data Guard 健壯性查詢必背彙總
- 程式碼安全性和健壯性:如何在if和assert中做選擇?
- 關於Java健壯性的一些思考與實踐!Java
- 設計一個健壯的大型檔案下載系統
- 構建健壯 Python 包的 5 個簡單規則Python
- 如何讓智慧客服成為企業的生產力工具?
- Laravel + Dcat admin 開發一個健壯的 erp 專案Laravel
- Go 函式的健壯性、panic異常處理、defer 機制Go函式
- 基於SSL(TLS)的HTTPS網頁下載——如何編寫健壯的可靠的網頁下載TLSHTTP網頁
- 如何打造個人技術影響力