在2019年游戲開發(fā)者大會(huì)(GDC)上宣布,,Havok Physics for Unity最初是作為Unity Asset Store上的實(shí)驗(yàn)包分發(fā)的?,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)場應(yīng)用工程師)介紹了他們是如何合作構(gòu)建DOTS框架的,。
havok Unity物理包使用與Unity Physics相同的C# ECS框架編寫,并由使用本機(jī)C++編寫的閉源專有Havok Physics引擎提供支持,。Havok Physics for Unity針對許多典型的游戲用例進(jìn)行了大量優(yōu)化,。例如,多年來,,核心算法已經(jīng)通過各種自動(dòng)緩存策略(包括非活動(dòng)對象的休眠)進(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)定性和性能,。
作為完整版本的一部分,加入了對電動(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ù)雜場景。通過與整個(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)化塔防
玩家:單人游戲
首次亮相于2022年的PAX-East,,Hostile Mars憑借其對物理學(xué)的專注運(yùn)用和獨(dú)特的流派融合吸引了相當(dāng)多的觀眾。在一個(gè)開放世界的工廠基地建設(shè)和自動(dòng)化游戲中,,廣闊的火星景觀被賦予了生命,。玩家通過第三人稱射擊和可編程防御在地面上近距離對抗以保衛(wèi)他們的工廠。
來自敵對火星的場景:保護(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ù)算,,這是不可行的?!报C杰克·詹姆森,,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í)的攻擊敵人,。通過對敵人應(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í)可信。
一旦玩家升級設(shè)施,,敵人的波動(dòng)就會(huì)變得多種多樣,,越來越復(fù)雜,這需要玩家更有策略地建立陷阱,,結(jié)合他們不同的基于物理的交互,,將具有不同弱點(diǎn)的敵人聚集到更強(qiáng)的陷阱和炮塔,這些陷阱和炮塔可以對他們產(chǎn)生最大的影響,。例如,,雖然冰霜陷阱可能會(huì)讓一些敵人減速,但是爆炸陷阱可以對高度集中的沖擊波次敵人造成最大的傷害,。
Freejam Games
標(biāo)題:Robocraft 2
工作室:Freejam Games
工作室大?。?5人
平臺(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)作帶到競爭性的多人游戲中,。
在Robocraft 2中,所有的交通工具和機(jī)器人都是由玩家自己制造的,,然后在基于團(tuán)隊(duì)的戰(zhàn)斗中相互對抗,。
由于Freejam Games在Robocraft中成功的經(jīng)驗(yàn),他們專注于提供令人興奮的全新建筑工具。這樣,,玩家可以享受更多的自由來設(shè)計(jì)復(fù)雜的,,物理模擬的作品。
該團(tuán)隊(duì)評估了如何將物理從客戶端移動(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ū)測試和反饋,,最終成就了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ì)知道他們的玩家多么富有競爭力和創(chuàng)造力,,尋找新的方法來優(yōu)化提供的構(gòu)建工具以贏得戰(zhàn)斗。
這意味著該團(tuán)隊(duì)必須依靠物理引擎的三個(gè)關(guān)鍵功能來為所有人提供公平的體驗(yàn):
快速性能
強(qiáng)力,、無故障的物理模擬
訪問物理引擎的低級區(qū)域,,在游戲中進(jìn)行修改
Robocraft 2中的物理在服務(wù)器上被完全處理,這允許動(dòng)態(tài),、實(shí)時(shí)的物理效果,,同時(shí)確保玩家對玩家(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開始,。對于服務(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ù)器對模擬的權(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)玩家擊敗對手時(shí),,機(jī)器人和車輛一個(gè)接一個(gè)地分崩離析,這可以產(chǎn)生數(shù)百個(gè)剛體在環(huán)境中,。為了釋放CPU并保持高幀速率,,那些不活躍的剛體可以通過鈍化作用,這是一個(gè)有效地暫時(shí)消除碎片中的物理現(xiàn)象的功能,。
Robocraft 2中的玩家作品由許多剛體組成復(fù)合對撞機(jī)由關(guān)節(jié)約束在一起,,關(guān)節(jié)可以被打碎或堆疊在另一個(gè)之上。物理模擬整體性能的進(jìn)一步改進(jìn)可以通過沖突緩存,,它還允許對接頭/約束進(jìn)行精細(xì)模擬,,例如在那些堆疊情況下。
最后,,Havok可視調(diào)試器被用來實(shí)時(shí)可視化游戲世界中的碰撞,。它使Freejam Games能夠識(shí)別故障、障礙,,并有效地發(fā)現(xiàn)反常接觸出現(xiàn)的情況,。這加快了他們的工作流程,并促進(jìn)了快速修復(fù)的實(shí)現(xiàn),。