CR談飛船損害系統
本文為Chris Roberts本人回應論壇上對WMH第五十九集裏展示的飛船損害系統的意見
大家在WMH第五十九集裏看到的片段只展示了部份損害系統, 除此之外還有激光灼痕和著彈坑; 這些以貼花和高度圖實現.
大家可能沒有留意到, 每件部件除了預設的損害層級之外, 每一層級都有無數的零件板塊, 只要系統計算到有激光或實體彈擊中就會掉落. 這幾重機制合力令飛船看起來準確地隨著每一點炮火而逐漸解體.
損害層級的數目因個別部件的大小, 要多仿真和需要的工時而不同. 轉換層級時的外觀變化是固定的, 也就是說五成損傷的機翼必定會斷成兩截, 不過零件脫落的方式會各不相同. 例外的情況是大額損害導致跳過部份層級, 這時候的變化會和一般不同.
我們也會準確地追蹤每一顆彈頭, 如果子彈穿過護盾和裝甲並擊中內部組件, 那就會造成相應的損傷.
所有飛船系統和組件都有實際位置和對應的碰撞幾何, 即使是不可見的內部系統也一樣. 任何系統受損或全毀都會如實地影響飛船運作. 最明顯的是能源爐 - 受損的能源爐就算不爆炸也會降低輸出或是停機. 所有其他系統都需要能源, 沒有能源就沒法工作, 能源不足視乎部件會導致功率下降或完全停擺. 除非你事先準備了電池, 而且還把電池和這些系統連接起來, 那麼它們就可以撐久一點. 另外一個例子是為航電設備提供運算能力的主電腦. 如果主電腦損毀, 那麼火控系統將無法提供射擊諸元. 飛船所有系統要麼提供要麼消耗能源, 運算力, 廢熱, 燃料各種資源. 廢熱是負向資源 - 你想消除而不是積累它. 有些系統和大部份武器會產生廢熱, 如果你沒有正確對應它, 或者你的散熱系統損壞, 那麼你的紅外信號會上升, 敵人的火控系統能更容易捕捉你, 你的飛船和其他系統也可能因高熱而受損.
所有船都採用隨插即用的系統. 我們準備好插口, 就可以隨便裝備各種配件. 不管是武器, 雷達, 能源爐, 引擎, 推進器, 燃料罐, 電池, CPU, 火控, 導航, 躍遷引擎, 散熱器等等各式各樣的配備, 只要裝上去就會接上運輸能源, 運算力, 燃料和廢熱的管道.
這些裝備如果存在外部輪廓就都有個別的損害層級.
我希望大家透過那段影片看到的, 不只是外觀上的變化, 還有我們在星際公民嘗試前所未有的仿真細節.
至於Snowdrop引擎確實漂亮, 我在E3看了它的展示後印象非常深刻, 還把它介紹給其他團隊成員. 話雖如此, Snowdrop和CryEngine在功能上並沒有太大差別. Snowdrop的程序性破壞在CryEngine裏也能做到 - 彈痕貼圖, 玻璃碎裂和車輛掉下去之類. Snowdrop的美術和光線做得很好, 但是他們做到的, 我們也能做到; 他們打算做的, 我們也打算做. 根據我的經驗, 現有的極高端引擎: CryEngine, Unreal 4, Frostbite的功能大抵都差不多. 重要的是美術師和程序員的把引擎潛能發揮得淋漓盡致的功力.
最後一點 -
我認識BeamNG的開發者很久了, 2012年12月時就邀請他們參與星際公民的制作. 他們還做了一個試作實驗, 在他們的引擎內把大黃蜂撞向小行星. 採用他們的做法(或任何柔體物理演算)的最大問題是對運算力的要求太高. 運用在展示影片還有Forza和Gran Turismo這類物體數目偏少的情況還好, 要在星際公民裏採用完全柔體物理系統的同時讓數據流量和每秒輯數保持在可接受範圍, 恐怕不論再高端的電腦也無法運行吧.
這不代表我不打算採用更精鍊的損害模型. 我曾考慮請他們為星際公民研究偏重損害模型和變形的精簡版柔體物理, 可惜他們需要上大學和制作自己的遊戲, 所以最後沒有成事. 我依然希望日後有機會和他們幾位饒有才幹的人才合作, 但是我不能阻礙他們現在去創造夢想中的遊戲.
我們內部的四人圖像技術團隊也有在研究程序性損害模型. 我們希望主力艦的裝甲和船體遭受攻擊後會凹陷彎曲. 如果研究成功, 而且對玩家電腦配置的要求不會太高的話, 我們還會把它套用回小型飛船上, 讓一切更加像真.
|