針對遊戲開發者舉辦的會議講座「CEDEC 2020」在最後一天 2020 年 9 月 4 日,舉辦了以
「《健身環大冒險(リングフィット アドベンチャー)》的軟硬體一體式開發~跨越開發週期的差異~」為主題的講座。
採用稱為 Ring-Con 前所未見的控制器,以至今為止從未出現過的遊戲之姿創造出了龐大熱潮的《
健身環大冒險》。此次講座是由任天堂的
田邨嘉隆、
和田真樹、
成瀨文覺三人來講述本作在開發時的情況。揭露了開發週期各有不同的「硬體班」、「系統班」、「遊戲班」相互踏入對方的領域來革新想法的創舉,在此將為玩家們送上這次講座的情況。
關於《
健身環大冒險》,筆者認為已經不需要再多加詳細說明了。該作品是兼顧了運用可偵測推壓力道的圓環型控制器「Ring-Con」來進行運動,以及於幻想世界裡進行冒險的 RPG 等兩種要素的遊戲軟體。Ring-Con 採用了纖維強化塑膠所製成的彈簧,能夠確實讓人享受到帶有負擔的運動。
要使用前所未見的控制器來製作遊戲,不可或缺的是田邨率領的「硬體班」、成瀨的「系統班」、和田的「遊戲班」之間的相互協助。硬體班是負責以研討材料跟組合方式,在物理層面上來開發 Ring-Con 的工作。系統班則是負責製作 SDK 及 Ring-Con 的韌體等讓 Ring-Con 運作的設計工作。而遊戲班則是使用 Ring-Con 來開發使用者的體驗(遊玩感)。
話雖如此,三個班所負責的工作分別存在著不同的週期。若是按照週期來進行開發的話,便會產生許多的等待時間,進而導致時間上的浪費。這樣一來便難以實現「在有限的時間裡,盡可能高速地開發眾多健身項目(迷你遊戲)」的目標」。講述在這樣的過程中由三個班所進行的想法革新,便是本講座的主旨。
成為障礙的是不同的開發週期
硬體班先設計 Ring-Con 的機構及迴路,並以此來進行產品設計。以掌握所需功能及實現手段等方針的「原理試作」,確認能否按照設計加以實現並進行改良的「開發試作」,接著是進行量產產品的準備,確認規格是否適用的「量產試作」等三個週期來進行工作。當開發週期越往後推進,與其相關的人士也會變多,而責任也會隨之增大。由於牽涉到使用者的安全,因此在一個週期上相對來說較長。
而系統班則是要開發能讓 Ring-Con 於遊戲內使用的 Nintendo SDK。在 Nintendo SDK 裡包含了如「Ring-Con 的韌體」、 Joy-Con 的韌體及 Nintendo Switch 的 Switch OS 的「主機系統」、「Ring-Con 用資料庫」等項目。
首先透過韌體取得加諸於 Ring-Con 上的力道,並以原始資料的形式傳給將裝設在上面的 Joy-Con 控制器。由於原始資料是很複雜的數值羅列,得透過 Switch OS 變換為能於遊戲內使用的遊戲用資料(這裡是指速度及顯示 Ring-Con 位置的座標)。在此必須得建立起自資料庫中取出這種遊戲用資料並傳遞給遊戲……的流程。
話雖如此,Nintendo SDK 不僅只用於開發 Ring-Con 上。它是彙整了一定數量的各種遊戲與服務所需的修正與改良內容及追加新功能後所發布的套件。可說是在三個班之中以中等程度的週期來運作的一個班。
遊戲班則是,大概在一個月裡以討論規格→實裝→監控遊玩→檢討改良點的方式來循環一個週期,並持續進行著遊戲的開發。單一週期是在三班裡最短的,其任務便是以高速來開發眾多健身項目。
換句話說,三個班的工作週期其長度與結束時機各有不同,要是以一般的方式進行工作,就會出現讓遊戲班被迫進入等待時間的問題。
透過硬體班與遊戲班的協助,讓 Ring-Con 的耐久度可供辨識
田邨談及了關於由硬體班與遊戲班攜手合作,讓耐久度評估轉為效率化的過程。Ring-Con 身為一種前所未見的控制器,為了安全需追求較高的耐久度。為了讓遊戲班所提倡的健身項目,也能藉由通過耐久度評估而獲得實裝,因此才透過針對 Ring-Con 特別強化的全新評估週期來提高效率。
在此由硬體班與遊戲班所設計出的是,一種將 Ring-Con 的耐久度轉為在 RPG 等作品中使用的「HP」數值的方法。製作了會自動推壓 Ring-Con 的測試機,算出了在全力推壓下 Ring-Con 所能承受的次數,也就是抓出 Ring-Con 的 HP。 透過將 HP 數值化,也就更為容易得知改良了 Ring-Con 時的效果。
應用這種思考方式的,就是 20 秒內比賽推壓健身環次數的迷你遊戲「大胸肌挑戰」,也就是傷害的數值化。這裡所指的傷害,是使用者在推壓 Ring-Con 時,所給予 Ring-Con 的傷害。傷害會讓 Ring-Con 的 HP 減少,當歸零時便會使 Ring-Con 損壞。
首先是由遊戲班提出實裝新迷你遊戲的要求,接受要求的硬體班則測量在過程中對 Ring-Con 造成的傷害。若對 HP 的影響較低,就能夠順利進行實裝。
要測量迷你遊戲對 Ring-Con 所造成的傷害,並非是在一開始就用上試驗機,而是需要使用者的遊玩歷程。推壓的力量會根據使用者的臂力而有所不同,即使是同一個使用者也會因疲累而使力量減弱。
接著由硬體班進行歷程的分析。以 10~100% 的十種階段來評估推壓 Ring-Con 的力道(推壓至雙手交錯的狀態下被視為「推壓量」100%)。計算在每種推壓量下推壓數次的總值。
隨後使用前面提到的試驗機,以 “若是推壓量為 100% 能夠承受多少次的推壓呢” 為基準,若為 90% 時會是幾次、若為 80% 時會是幾次……這樣子的方式來進行測量,針對每次推壓量所給予 Ring-Con 的 HP 傷害的數值來進行量化。
再將其與記錄於歷程內的各階段推壓次數組合,就能算出遊玩一次時造成的傷害。由於傷害較小被判定為不會對 Ring-Con 造成太大影響,因此順利實裝了「大胸肌挑戰」。
另外當遊戲班在提出「希望提升負荷採用更激烈的設定」的要求時也會用上這種想法。收集全體開發者的歷程,硬體班透過分析此筆資料計算出直到遊戲全破為止的總傷害。由此得知了 Ring-Con 可充分地承受傷害,為此可實裝遊戲班所希望進行的調整。
田邨以把另一班所抱持的問題視為自己班上的問題,並透過相互踏入對方的領域來解決問題的說法,來作為這種做法的總結。
為了高速進行開發,捨棄至今為止的政策
為了要以高速開發健身項目的另一個問題,就是沒辦法立即發布 SDK。正如前面所提到的,SDK 存在著彙整了多項修正、改良與新功能後才進行發布的慣例。要是得在 SDK 發布之後才能使用好不容易作好的新功能,在此便會產生時差。
成瀨對此表示遊戲班為了要能集中在遊戲開發上,雖然十分重視「能簡單運用功能,要設計的淺顯易懂(容易)」、「不需在各種遊戲內加入同樣的處理,而是將能共通化的處理集中於系統端(功能集中)」、「進行總和測試,在各種使用方式下能毫無問題的運作(堅固性)」等政策,但要是死守在這種週期上,就沒辦法跨越開發週期之間不同的鴻溝了。
在此他不將開發所需的 Ring-Con 韌體、主機系統、Ring-Con 用資料庫彙整至 SDK 內,而是以直接提供的方式提供給遊戲班,但此種做法仍存在著數種問題。
首先便是 Ring-Con 韌體的更新。雖然曾考慮過透過主機系統下的資料更新來進行,卻因為那是依附於 SDK 的發布週期之下而行不通。接著是雖準備了於 Switch 上運行的工具,但不僅在版本管理上變的很麻煩外,還會演變為從遊戲班那提出有關更新上的問題的情況,因此這個方法也行不通。
關於像這種反覆嘗試的時期,成瀨對此表示「雖然有貼心想過,要盡量不麻煩遊戲班進行開發,但那對整體開發工作而言並不是最佳解答」。成為解決之契機的是,他與遊戲班討論這件令他煩惱的事。從遊戲班那邊提出了「如果在測試選單下設有更新工具的話會很方便的」這樣的意見,並由他們整頓出能夠立即提供的環境。
而剩下的是主機系統與 Ring-Con 用資料庫。正如前面所提到的,主機系統是將從 Ring-Con 韌體所取得的輸入資料進行「適當的處理」令其變為易於使用的值。但這種「適當的處理」卻會因在開發過程中持續產生變化,因此無法立刻提供給遊戲班。在此成瀨改變了想法,把主機系統加以「線路化」。將輸入資料的處理交給 Ring-Con 用資料庫,而主機系統則變為不接觸任何資料。這樣一來主機系統就只要負責與 Joy-Con 的連接及處理通訊,而完全不會對遊戲帶來影響。
可說是把牽動遊戲班意見的部分自主機系統上切離,並集中至 Ring-Con 用資料庫上。這樣一來就變得能夠即時提供主機系統了。
而且還把 Ring-Con 用資料庫以原始碼的形式提供給遊戲班,如此一來除了系統班之外也能進行修正了。換言之,三個班在一邊踏入了對方領域的同時,也變得能夠共同進行開發了。此舉不僅讓遊戲班能集中於開發上,還讓成員們的想法變成以《
健身環大冒險》團隊一份子的身分,由三個班來共同完成遊戲為目標。
儘管是在這種情況下進行開發,但開發團隊仍在時程上接近最後關頭的時候實裝了僅用 Ring-Con 來進行訓練的「背景執行模式」。在三個班共同進行開發的過程中,得決定要從 Ring-Con 的韌體或 Joy-Con 的韌體之中,選出一方來追加功能。前者剩餘的空間很小只有幾 KB 的空間,但由於身為僅使用在《
健身環大冒險》的硬體,所以只會對參與開發的三個班造成影響,為此具有較高的自由度。另一方面,後者的剩餘空間雖然很大,但由於 Joy-Con 控制器本身也使用於其他的遊戲上,在追加功能時所產生的影響也較大。
結果為了讓三個班在相互協助之下以高速的狀態來進行開發週期的循環,為此有必要整頓出僅止步於《
健身環大冒險》上的體制,而決定替 Ring-Con 追加功能。在進行削減 1 Byte 的作業之後,終於順利實裝了「背景執行模式」。
一般來說,若是要替遊戲追加某種功能或變動,只需要調整軟體就能搞定。但是就《
健身環大冒險》而言,由於存在著前所未有的 Ring-Con,因此也得要開發耐久度評估與韌體及資料庫等項目。特別是耐久度評估,因為每次在追加新功能時都得要執行此項目,可說是得付出正常遊戲難以想像的心力。講述為了創造出全新的硬體及遊戲體驗,不僅得耗費心力,也必須在想法上有所改革,讓人深深感覺這是一場十分有趣的講座。