在2019年游戲開發(fā)者大會(huì)(GDC)上宣布,Havok Physics for Unity最初是作為Unity Asset Store上的實(shí)驗(yàn)包分發(fā)的。現(xiàn)在,隨著ECS for Unity(實(shí)體組件系統(tǒng))在Unity 2022.2技術(shù)流中的可用性,Havok Physics for Unity正式支持生產(chǎn)。
成功的歷史
Havok Physics for Unity建立在為許多世界領(lǐng)先的游戲系列提供動(dòng)力的相同技術(shù)基礎(chǔ)上,如命運(yùn)和刺客信條,除其他外。當(dāng)Unity第一次通過數(shù)據(jù)技術(shù)堆棧(DOTS)來定義物理學(xué)在未來將會(huì)如何發(fā)展時(shí),他們就開始尋求與其擁有相同核心理念和價(jià)值觀的合作伙伴。通過與Havok合作,Unity如今能夠利用DOTS來提供高度優(yōu)化的、無需說明的、完全C#的、高性能的Unity物理技術(shù)。
Unity還為可能需要狀態(tài)物理系統(tǒng)的用戶準(zhǔn)備了更復(fù)雜的模擬需求。我們知道Havok將是集成到Unity中以滿足高端模擬需求的完美解決方案。
肖恩·麥克萊蘭(Unity的產(chǎn)品經(jīng)理)和喬爾·范·恩威克(Havok的現(xiàn)場(chǎng)應(yīng)用工程師)介紹了他們是如何合作構(gòu)建DOTS框架的。
havok Unity物理包使用與Unity Physics相同的C# ECS框架編寫,并由使用本機(jī)C++編寫的閉源專有Havok Physics引擎提供支持。Havok Physics for Unity針對(duì)許多典型的游戲用例進(jìn)行了大量?jī)?yōu)化。例如,多年來,核心算法已經(jīng)通過各種自動(dòng)緩存策略(包括非活動(dòng)對(duì)象的休眠)進(jìn)行了改進(jìn),這意味著CPU資源只在需要時(shí)使用。
Havok統(tǒng)一物理學(xué):最新更新
自從實(shí)驗(yàn)包以來,Unity和Havok一直在與插件的早期用戶合作,推動(dòng)改進(jìn)和添加新功能。
以下是新增功能的分類:
Havok?Unity物理包現(xiàn)可用于自由的適用于所有Unity Pro、Enterprise和Unity Industrial Collection訂戶。
Havok Physics for Unity基于2021.2版本的原版Havok SDK,并為Unity插件帶來更高的穩(wěn)定性和性能。
作為完整版本的一部分,加入了對(duì)電動(dòng)關(guān)節(jié)(馬達(dá)),例如線性位置,以及線性、旋轉(zhuǎn)和角速度。
我們還向HavokSimulation API,它為您的模擬啟用了粒度步進(jìn),并通過singletons提供了更高效地訪問Havok模擬的方法。
看看別人在創(chuàng)建什么
Havok Physics是一個(gè)強(qiáng)大的物理引擎,旨在處理大多數(shù)動(dòng)態(tài)游戲的性能需求,通常涉及具有大量物理交互的復(fù)雜場(chǎng)景。通過與整個(gè)行業(yè)的合作伙伴合作超過20年,Havok已經(jīng)遇到、解決并繼續(xù)迭代實(shí)時(shí)物理仿真面臨的一些最棘手的問題。這種投入幫助他們實(shí)現(xiàn)了物理物體的穩(wěn)定堆疊,快速移動(dòng)物體的最小偽像,以及獲得更受控制的物體行為,特別是當(dāng)涉及到非優(yōu)化的碰撞幾何體時(shí)。
當(dāng)然,物理意味著運(yùn)動(dòng),所以我們來看看這兩位創(chuàng)作者是如何使用Havok Physics for Unity描繪運(yùn)動(dòng)的。
Big Rook Games
標(biāo)題:Hostile Mars
工作室: Big Rook Games
工作室大小: 個(gè)人
平臺(tái):Windows PC,主機(jī)平臺(tái)
類型:開放世界,基礎(chǔ)建設(shè)自動(dòng)化塔防
玩家:?jiǎn)稳擞螒?/p>
首次亮相于2022年的PAX-East,Hostile Mars憑借其對(duì)物理學(xué)的專注運(yùn)用和獨(dú)特的流派融合吸引了相當(dāng)多的觀眾。在一個(gè)開放世界的工廠基地建設(shè)和自動(dòng)化游戲中,廣闊的火星景觀被賦予了生命。玩家通過第三人稱射擊和可編程防御在地面上近距離對(duì)抗以保衛(wèi)他們的工廠。
來自敵對(duì)火星的場(chǎng)景:保護(hù)你的工廠免受數(shù)以千計(jì)的基于物理的敵人。
Big Rook Games的創(chuàng)始人杰克·詹姆森(Jake Jameson)開始將多種類型融合到多人和單人游戲中,加入了來自謎題游戲、第一人稱射擊游戲(FPS)和基于波次敵人的射擊游戲的元素。越是發(fā)展這個(gè)想法,就越是縮小他的關(guān)注點(diǎn),創(chuàng)造一個(gè)單人游戲基地建設(shè)者。他很快發(fā)現(xiàn)了建筑、戰(zhàn)略和戰(zhàn)斗之間的理想平衡,最終成就了唯一的Hostile Mars。
當(dāng)完成最后一次迭代時(shí)Hostile Mars很明顯,這個(gè)游戲需要使用某種面向數(shù)據(jù)的編程模型。杰克希望在獲得高端視覺效果的同時(shí)擁有巨大的敵人波次。為了給玩家提供最好的體驗(yàn),游戲必須在大規(guī)模上運(yùn)行,同時(shí)支持屏幕上成千上萬的敵人。
為了滿足這些需求,杰克求助于Unity面向數(shù)據(jù)的技術(shù)棧。在利用ECS for Unity的過程中,每一個(gè)敵人可以實(shí)時(shí)運(yùn)行網(wǎng)格物理/碰撞,尋路,以及局部回避,此外還有強(qiáng)大的狀態(tài)系統(tǒng)、動(dòng)畫、武器和投射系統(tǒng)、高質(zhì)量的VFX、粒子系統(tǒng)等等。
“如果沒有DOTS,我就無法提供我在最初設(shè)計(jì)中想象的體驗(yàn)。如果沒有實(shí)現(xiàn)我自己的ECS框架,這是不可能的,而且作為一名獨(dú)立開發(fā)人員,考慮到我的時(shí)間表和預(yù)算,這是不可行的。”–杰克·詹姆森,Big Rook Games的創(chuàng)始人。
雖然杰克的職業(yè)不是游戲開發(fā)者,但他是一個(gè)狂熱的游戲玩家,并且已經(jīng)熟悉了最初的Havok物理引擎。了解到Havok的技術(shù)在AAA工作室中是多么受信任,Jake很有信心在Unity中通過實(shí)驗(yàn)包實(shí)現(xiàn)它。
Hostile Mars是一次物理密集型的經(jīng)歷。玩家使用基于物理的陷阱和炮塔來更加真實(shí)的攻擊敵人。通過對(duì)敵人應(yīng)用不同的物理屬性,目標(biāo)是阻止他們前進(jìn)或把他們推向更危險(xiǎn)的陷阱。
Hostile Mars牽涉到數(shù)量驚人的敵人。更具體地說,有多達(dá)5000個(gè)基于物理的敵人,這足以淹沒玩家的火星工廠,這在屏幕上能夠?qū)е聰?shù)百次碰撞和投射。
多達(dá)5000個(gè)基于物理的個(gè)體敵人可以一次淹沒玩家的火星工廠。
Hostile Mars中所有的物理效果都是利用Havok Physics for Unity實(shí)現(xiàn)的;從拋射物和敵人、玩家和敵人、甚至敵人和其他敵人之間的碰撞,到敵人和風(fēng)景本身,以及需要恒定狀態(tài)的力來保持漂浮的懸停敵人。這些不同的物理交互實(shí)時(shí)發(fā)生,物理模擬允許可信的懸停、重力和網(wǎng)格點(diǎn)碰撞。因此,當(dāng)玩家在某個(gè)特定點(diǎn)攻擊敵人時(shí),他們會(huì)看到敵人像Havok Physics for Unity希望的那樣旋轉(zhuǎn)。
用基于物理的陷阱建造大規(guī)模的基地來抵御敵人的攻擊。
不僅敵人完全是基于物理的,游戲中必要的陷阱也是基于物理的。有推拉敵人的重力陷阱,反過來減速或加速粉碎敵人的陷阱。甚至有陷阱將尖刺彈到敵人的路徑上,不只是將它們推到一邊,而是逼真地模擬尖刺的力量和速度,以便敵人的反應(yīng)看起來真實(shí)可信。
一旦玩家升級(jí)設(shè)施,敵人的波動(dòng)就會(huì)變得多種多樣,越來越復(fù)雜,這需要玩家更有策略地建立陷阱,結(jié)合他們不同的基于物理的交互,將具有不同弱點(diǎn)的敵人聚集到更強(qiáng)的陷阱和炮塔,這些陷阱和炮塔可以對(duì)他們產(chǎn)生最大的影響。例如,雖然冰霜陷阱可能會(huì)讓一些敵人減速,但是爆炸陷阱可以對(duì)高度集中的沖擊波次敵人造成最大的傷害。
Freejam Games
標(biāo)題:Robocraft 2
工作室:Freejam Games
工作室大小:25人
平臺(tái): Windows PC,主機(jī)平臺(tái)
類型:在線車輛戰(zhàn)斗
演員:5v5在線多人游戲
Robocraft 2是2017年獲獎(jiǎng)的免費(fèi)游戲Robocraft的續(xù)作,玩家在開放世界的多人游戲環(huán)境中建造可定制的機(jī)器人戰(zhàn)車,可以駕駛、懸停、行走和飛行。由于這一初步的成功,F(xiàn)reejam Games的團(tuán)隊(duì)已經(jīng)為Robocraft 2改進(jìn)了全部可訂制體驗(yàn),以便玩家可以將自己的創(chuàng)作帶到競(jìng)爭(zhēng)性的多人游戲中。
在Robocraft 2中,所有的交通工具和機(jī)器人都是由玩家自己制造的,然后在基于團(tuán)隊(duì)的戰(zhàn)斗中相互對(duì)抗。
由于Freejam Games在Robocraft中成功的經(jīng)驗(yàn),他們專注于提供令人興奮的全新建筑工具。這樣,玩家可以享受更多的自由來設(shè)計(jì)復(fù)雜的,物理模擬的作品。
該團(tuán)隊(duì)評(píng)估了如何將物理從客戶端移動(dòng)到專用的多人游戲服務(wù)器,以增強(qiáng)玩家創(chuàng)建的車輛和機(jī)器人之間的物理交互。他們發(fā)現(xiàn),將物理效果轉(zhuǎn)移到服務(wù)器創(chuàng)造了一系列有趣的游戲時(shí)刻,其中重量、慣性、動(dòng)量、摩擦力、質(zhì)量和彈性都被精確地模擬出來。換句話說,重型車輛可以輕松推動(dòng)輕型車輛,或者與活塞、伺服系統(tǒng)和旋轉(zhuǎn)平臺(tái)等接頭結(jié)合。甚至武器和爆炸在擊中目標(biāo)時(shí)也會(huì)產(chǎn)生真實(shí)的反彈和力。所有這些實(shí)驗(yàn),加上社區(qū)測(cè)試和反饋,最終成就了Robocraft 2。
在Robocraft 2里,玩家現(xiàn)在可以創(chuàng)建復(fù)雜的車輛,將它們帶入戰(zhàn)斗,并在5v5團(tuán)隊(duì)?wèi)?zhàn)斗中在線摧毀它們。從他們Robocraft的第一次經(jīng)歷中,F(xiàn)reejam團(tuán)隊(duì)知道他們的玩家多么富有競(jìng)爭(zhēng)力和創(chuàng)造力,尋找新的方法來優(yōu)化提供的構(gòu)建工具以贏得戰(zhàn)斗。
這意味著該團(tuán)隊(duì)必須依靠物理引擎的三個(gè)關(guān)鍵功能來為所有人提供公平的體驗(yàn):
快速性能
強(qiáng)力、無故障的物理模擬
訪問物理引擎的低級(jí)區(qū)域,在游戲中進(jìn)行修改
Robocraft 2中的物理在服務(wù)器上被完全處理,這允許動(dòng)態(tài)、實(shí)時(shí)的物理效果,同時(shí)確保玩家對(duì)玩家(PvP)戰(zhàn)斗的性能。
在2017年宣布DOTS和ECS for Unity之前,F(xiàn)reejam Games探索了在內(nèi)部構(gòu)建ECS框架的可能性。然后,他們很快在Unity的實(shí)驗(yàn)版本中采用了ECS,從Unity Physics開始。對(duì)于服務(wù)器端技術(shù)的實(shí)驗(yàn),他們使用確定性作為保持玩家客戶端和服務(wù)器上的模擬同步的解決方案,而Unity Physics提供了性能。
隨著游戲的發(fā)展,他們脫離了無狀態(tài)的方法,成為Havok Physics for Unity的早期采用者。作為一個(gè)有狀態(tài)的系統(tǒng),Havok Physics for Unity最終在游戲性要求范圍內(nèi)提高了模擬的性能Robocraft 2。
“Havok [Physics for Unity]的高性能使我們能夠在我們的在線游戲中擁有準(zhǔn)確的服務(wù)器端物理特性。反過來,這提供了幾個(gè)重要的好處,包括給所有客戶一個(gè)更好的質(zhì)量體驗(yàn)的物理平等的代表。事實(shí)上,服務(wù)器對(duì)模擬的權(quán)威性也有額外的好處,減少了作弊的機(jī)會(huì)。”–Ed Fowler,F(xiàn)reejam的首席程序員和聯(lián)合創(chuàng)始人
在Unity編輯器中查看Havok Physics for Unity。
Havok Physics for Unity幫助Freejam游戲解決了復(fù)雜的問題。例如,當(dāng)玩家擊敗對(duì)手時(shí),機(jī)器人和車輛一個(gè)接一個(gè)地分崩離析,這可以產(chǎn)生數(shù)百個(gè)剛體在環(huán)境中。為了釋放CPU并保持高幀速率,那些不活躍的剛體可以通過鈍化作用,這是一個(gè)有效地暫時(shí)消除碎片中的物理現(xiàn)象的功能。
Robocraft 2中的玩家作品由許多剛體組成復(fù)合對(duì)撞機(jī)由關(guān)節(jié)約束在一起,關(guān)節(jié)可以被打碎或堆疊在另一個(gè)之上。物理模擬整體性能的進(jìn)一步改進(jìn)可以通過沖突緩存,它還允許對(duì)接頭/約束進(jìn)行精細(xì)模擬,例如在那些堆疊情況下。
最后,Havok可視調(diào)試器被用來實(shí)時(shí)可視化游戲世界中的碰撞。它使Freejam Games能夠識(shí)別故障、障礙,并有效地發(fā)現(xiàn)反常接觸出現(xiàn)的情況。這加快了他們的工作流程,并促進(jìn)了快速修復(fù)的實(shí)現(xiàn)。