2016年3月20日 星期日

深究遊戲設計系列:《Mercenary Kings》的武器製造系統

原作者:Jonathan Lavigne 於 October 15, 2014

Game Design Deep Dive: The weapon-crafting system of  Mercenary Kings

深究遊戲設計(Game Design Deep Dive)是Gamasutra所推出的全新系列,目標為揭露電玩遊戲中特定的設計特色或機制,藉以表明看似簡單又基本的設計決定其實一點也不那麼簡單的緣由。 

最新一期的內容是出自《Shovel Knight》開發者David D'Angelo之手。我們也檢視了《SteamWorld Dig》挖掘機制。還有可別錯過了《Road Not Taken》移動系統以及《Crypt of the NecroDancer》節奏rouge型遊戲機制,這些來自開發者心境的見解。

來者何人:Jonathan Lavigne,Tribute Games的共同創辦人


  我的名字是Jonathan Lavigne,Mercenary Kings是出在PlayStation 4和Mac/PC上的遊戲作品,其遊戲設計主要是我負責的。我同時也是Tribute Games的共同創辦人,於2011年五月和Jean-Francois Major以及Justin Cyr一同創立。

  在開發《Mercenary Kings》之前,我們在Ubisoft做過許多GBA(Game Boy Advance)遊戲(《Star Wars Episode III》《Open Season》《TMNT》,)以及《Scott Pilgrim》(我也負責這款遊戲的設計)。我第一款獨立作品是《Ninja Senki》,而我們在Tribute開發的第一款遊戲是《Wizorb》



所為何事:《Mercenary Kings》裡的掉寶平衡


  我想要解釋一下我們在開發武器自訂系統時所碰上的挑戰,以及我們是怎麼解決的。以問題的型式來表達這項挑戰就是:

  「我們要怎麼設定並平衡300個槍枝部件的所有屬性?」

  在《Mercenary Kings》裡,每一把武器最多可以有五個槍枝部件(槍身,槍管,彈匣,槍托和照準器),而每一個部位有6至12項不同的屬性。有300個槍枝部位,就代表我們有1,800至3,600項數值要設定和平衡。

為什麼?


  當一款遊戲裡只有四或五件武器時,解決方法很簡單;你把所有屬性一個接著一個設定好,進行測試,必要的話再重新調整。就我們的情況來說,這是是行不通的,因為有這麼多屬性要設定,光是所有屬性的第一版草案可能就要花上數天──甚至數週──之久。

  想要以一致的方式將所有屬性一個個設定好,並讓所有屬性彼此之間保持合理的平衡是不可能辦到的。因為你是人,端看你在輸入這個數值或那個參數時的當下心情,最終你會做出不同的決定。

  而且如果當你把所有東西都設定好了之後,某個遊戲機制的改變最後還是影響了整個遊戲的平衡時會發生什麼事呢?你得重頭來過…

怎麼做?


  我們結合5種不同的方法來克服這項挑戰:

  使用「平衡表」。我將遊戲裡的所有元素(敵人,頭目,武器,道具,等等)放入表中,以玩家於遊戲中遭遇到的順序排列,並和武器造成的傷害互相參照。這不是為了要找出每一個屬性的確切數值,而是要給你一個概括的觀點,檢視遊戲的元素應當如何在彼此關聯之中取得平衡。

《Mercenary Kings》的武器平衡試算表。(點一下放大。)
  使用「每秒傷害」(damage-per-second)計算程式。根據武器的特性(原始/元素威力,射速,準度,等等),我做出了一則能夠讓我導出大略DPS數值的算式。有了這則算式,我用Excel試算表做出了一個計算程式(如圖)。於是我便可以將每一個數值輸入進去,得到某一特定武器大略的DPS值。這是一個極度好用的工具,有助於我確定武器彼此之間有好好平衡過。

  使用數學的力量!許多屬性是相關聯的,所以你可以造出算式來得到許多屬性的數值,毋須一個一個輸入。常見的例子是當你在RPG遊戲中跑去商店時所看到的:道具有「買」價和「賣」價。大多數時候你會注意到這個:賣價 = 買價x0.5。我們在槍枝部件上延用這項原則來找出DPS,級數,價格和賣價。

  將槍枝部件分包成槍械組合。儘管我們有超過300個槍枝部件,但實際上當它們組裝起來後,在遊戲裡只有大約130種槍。所以與其個別為每一個槍枝部件設定所有數值,我們作出了一個系統,讓我們只需要替組裝好的槍設定數值,就能自動產生槍械部件所有屬性的數值。這樣不僅更為直覺,光是系統本身就幫我省掉了一大半手動設定數值的工作。


  舉個例子,偵查步槍(Recon Rifle)這個組裝槍是由玩家可以製作出來的五個部件所組成的:

  1.    偵查步槍槍身
  2.    偵查步槍槍管
  3.    偵查步槍彈匣
  4.    偵查步槍照準器
  5.    偵查步槍槍托

  這五個部件各有各的屬性(可能含有以下全部或部份屬性:威力,元素,射程,射速,裝填時間,填彈量,準度,重量)。

  所以在我們設計這把槍並設定五個部件的數值時,每一個部件的每一項屬性就不用一個一個設定,我們作出了一個系統好讓我們只要從整體上設定好偵查步槍的數值,系統就會個別為這五個部件的所有屬性自動產生數值。這樣就省去許多手動輸入上百個數值的繁重工作了。

  拿出你的膽識。把所有東西都平衡得四平八穩是還可以──那是可行的!不過結果可能會相當無聊。有時候,你會為了純粹邏輯之外的理由,而弄個有一點強過頭或弱到爆的武器。

  比如說,你可能會想要某些東西賣貴一點,因為它的外表顯示這玩意兒可是由黃金打造而成。這種東西是公式所沒有辦法查覺到的。為了解決這個問題,我們確保每一項數值都可以手動覆寫。這讓我們得以使之更為出色,令武器的數值更有意思。

  我們可沒有餘裕只為了數值的輸入和平衡工作就雇請設計師,所以這些方法讓我們能夠以非常稀少的資源創造出一個複雜的自訂系統。


翻譯:milkreaver
校正:XDorz87