武汉迷萌!3D《巅峰漂移》技术分享
《巔峰漂移》是由武漢迷萌基于 Cocos Creator 3D 研發(fā)的一款 3D 賽車漂移競速微信小游戲。近日,Cocos 對《巔峰漂移》項目組進行了專訪,疫情之下,武漢當?shù)赜螒?CP 現(xiàn)狀如何?這么優(yōu)質(zhì)的 3D 小游戲創(chuàng)作工作流是怎樣?又帶來了哪些寶貴的技術(shù)經(jīng)驗呢?一起來看看吧!
游戲玩法非常直觀,通過手指滑動屏幕控制賽車的移動方向,躲避源源不斷的敵人的追擊,存活時間越長可以獲得越高的分數(shù)。
玩家可以在游戲中充分展示自己的漂移技術(shù),收集場景中的小星星以及擊敗其他敵人可以獲得額外的金幣和經(jīng)驗加成。
隨著時間的推移,敵人數(shù)量會增多,強度也會加大,玩家需要面臨更多的挑戰(zhàn)。玩家的等級會隨著得分而升高,等級越高,結(jié)算時獲得的經(jīng)驗也就越豐富,每一次提升等級都可以獲得強力的增益效果,此外場景中有許多增益道具,拾取道具可以幫助玩家提升生存能力。
《巔峰漂移》設置了豐富的養(yǎng)成系統(tǒng),玩家可以消耗金幣對道具進行升級,以提升增益效果。還可以對最高速度、加速性能和額外得分進行升級,等級提升之后,你能夠獲得更快的移動速度、更高的加速效率以及更多的額外得分。
為了滿足玩家對于車輛的多樣性改裝需求,從車輛的噴漆樣式、尾氣顏色到局內(nèi)表情,游戲均做了豐富的設計。
此外,游戲還創(chuàng)新加入了段位系統(tǒng),根據(jù)玩家所得最高分數(shù)解鎖不同的段位,從黑鐵、青銅到車神。除了微信好友,玩家還可以與全球玩家比拼,大大提升了競技樂趣。
武漢當?shù)赜螒?CP 現(xiàn)狀如何?游戲創(chuàng)作工作流是怎樣?有哪些寶貴的技術(shù)經(jīng)驗呢?《巔峰漂移》項目組接受了 Cocos 的專訪,以下為訪談內(nèi)容整理:
?? 請問《巔峰漂移》項目共有多少成員?其中研發(fā)人員的占比是?
《巔峰漂移》游戲項目組5人都是研發(fā)人員,我們公司成立于2019年8月份,主要專注于小游戲研發(fā),也會接一些輕度、輕中度的定制項目。
除了《巔峰漂移》之外,我們已經(jīng)上線的游戲項目還包括《披薩小王子2》《刺客別殺我》《巔峰漂移》《天天飚車 3D》,也歡迎各位開發(fā)者朋友搜索體驗,此外,還有一款 APP 游戲《三國大作戰(zhàn)》即將上線。
?? 《巔峰漂移》微信小游戲項目從立項到上線共計用了多長時間?
從立項到項目上線,只用了半個月時間。針對皮膚功能操作手感和性能優(yōu)化,我們做了2-3個版本的迭代,后續(xù)還會加入新手引導、新的游戲內(nèi)容以及優(yōu)化游戲體驗。
?? 《巔峰漂移》中車子相撞會有震動,小游戲為何也需注重震動反饋?
由于《巔峰漂移》是賽車主題的街機休閑游戲,游戲中會有大量激烈追逐的畫面。盡管是小游戲,我們?nèi)匀幌Mㄟ^震動反饋的方式為玩家?guī)硪恍┚o張又刺激的體驗。
?? 除了好友排行榜,游戲還有沒有其他挖掘社交鏈價值的內(nèi)容呢?
除了排行榜之外,我們還加入了試用功能,只要玩家分享游戲鏈接給好友,即可獲得賽車和皮膚使用,此外還可以獲得開局免費道具等。
?? 從立項到上線只有半個月時間,開發(fā)效率真的很高,可否分享一下這款游戲的開發(fā)工作流?
我們的工作流:
立項。
策劃完成功能文檔,界面原型,文檔定稿,同時程序開發(fā)核心功能。
美術(shù)程序同步進行,程序完成剩余功能,對于 UI 相關(guān)的功能,會先使用一些常用的組件拼裝界面,等美術(shù)出完效果圖和切圖后,統(tǒng)一替換。
最后整理,分包,壓縮打包上傳。
測試,提交。
?? 為什么會選擇 Cocos Creator 3D 作為開發(fā)引擎呢?
3D 表現(xiàn)力強,團隊成員也都比較熟悉 Cocos Creator,有些庫可以直接從Cocos Creator 2D 中移植過來。
Cocos Creator 3D 畢竟是一條全新重點產(chǎn)品線,Cocos 團隊必將會精細打磨。我們是一個敢于嘗試的團隊,提前踩坑,對后面效率的提升有積極的作用。
?? 游戲內(nèi)的無限地圖是如何實現(xiàn)的?
實現(xiàn)原理:分成 9 個 3x3 的格子(我們稱為 Grid ), 每當玩家控制的賽車快移動到當前 Grid 邊緣時,會將另外一邊的 Grid 補到另一邊。
游戲道具和資源都會刷在每個 Grid 子節(jié)點下面, 這樣只需要移動 Grid 既可完成下面所有的資源的移動。
這樣做的好處是:(1)很難看出地圖上的資源有重復;(2)創(chuàng)建在其它 Grid 里的道具/星星可以重復使用,玩家離開后無需要再次創(chuàng)建,直到被玩家吃掉。
?? 尾氣和剎車痕的參數(shù)配置是?
?? 可否分享一些性能優(yōu)化的經(jīng)驗?
在游戲過程中創(chuàng)建和銷毀都是比較耗時的,通常我們可以將創(chuàng)建過程提前,銷毀推遲操作, 但在某些情況下(比如無盡關(guān)卡)在游戲過程中生成不可避免,就不可能一次性創(chuàng)建所有節(jié)點。
1.分幀創(chuàng)建
關(guān)卡生成器負責將需要生成的 prefab,位置信息提交到節(jié)點管理器的“創(chuàng)建隊列 ”。
節(jié)點管理器進入游戲后開啟定時器,每過 N 幀,從“創(chuàng)建隊列”拿一條創(chuàng)建信息。
(小技巧:nextInterval 可隨時控制,這里自行做的定時器是為了可擴展性,比如檢測到 fps 不穩(wěn)時,可以考慮將創(chuàng)建間隔拉長)
從緩存里取節(jié)點,當節(jié)點不存在時自動實例化 Prefab (可在場景加載時,創(chuàng)建若干,以免在游戲中創(chuàng)建)
當資源被玩家吃到后,會通知節(jié)點管理器回收這些資源。
(這里的 poolManager 實際上就是對 cc.NodePool 的封裝,每個 prefab 對應一個 NodePool. 方便快速查找)
這套機制在實際使用中復用性好,實用性非常高。
2.碰撞優(yōu)化
(1)車的碰撞檢測使用 ,Cocos 自帶的 BoxCollider 實現(xiàn)。
每個車上有一個大的碰撞盒用于檢測與敵方車輛的碰撞,且綁定了四個“方向碰撞盒”,用于檢測是碰撞方位(因為碰撞無法確定碰撞點,只能用不同的碰撞盒表示不同的碰撞位置)以確定是被撞還是主動撞擊(側(cè)面和尾部可以撞毀敵車)。
為了效率,這四個方向的碰撞起初不檢測碰撞的。
當最外面的碰撞盒發(fā)生碰撞時(onTriggerEnter),才開啟"方向碰撞盒"的檢測,并在最外層碰撞盒結(jié)束(onTriggerExit)的時候關(guān)閉"方向碰撞盒"的檢測。
具體設置2個碰撞器的是否檢測相互碰撞可以參考:
https://docs.cocos.com/creator3d/manual/zh/physics/physics-group-mask.html
(2)道具的碰撞檢測,因為道具資源刷新非常多,峰值在 100 個左右的碰撞體,使用 BoxCollide 性能會嚴重受損,加上這些物體的碰撞不需要太精確。
還記得前面說的 Grid 嗎?我們在 Grid 上又做了子網(wǎng)格:
每個道具都會刷新在網(wǎng)格里,相當于3維數(shù)組的一個元素, 通過數(shù)組索引即可知這個格子里的內(nèi)容。
有的小伙伴可能覺得費內(nèi)存,其實通常情況下只需要 x * z * 1 的空間(在不考慮 y 軸的情況下如:跳躍)
這里每個網(wǎng)格對象里記錄著節(jié)點的位置信息:
我們通過賽車的本地坐標可以直接轉(zhuǎn)換為其所在的格子坐標。
可直接使用格子坐標索引到附近的節(jié)點,時間復雜度 O(1):
(3)其它
?● 向量計算:如果當一個向量已經(jīng)計算過一次長度了,要實現(xiàn)歸一化時,沒有必要再 Vec3.normalize() 計算一次,可以直接使用使用除法,可以少開一次方。
?● 能不必要每幀檢測的地方就開定時器,隔幀檢測。
?● 盡量避免/減少在游戲過程動態(tài)加載。
?● 所有有距離比較的地方,都使用 Vec3.squaredDistance 進行平方比較。
?● 1-360度計算三角函數(shù)采用查表法。
?? 目前團隊成員是在家復工狀態(tài)還是回辦公室辦公了呢?疫情對貴公司的影響如何?
疫情對所有的企業(yè)、公司和個體戶都產(chǎn)生了比較大的影響,雖然說游戲公司不局限辦公場所,員工可以在家辦公,但辦公效率真的不如在辦公室,一方面,員工的電腦配置跟不上需求,缺乏工作氛圍,另一方面還存在員工之間溝通不及時、不通暢等問題。
這兩個多月,武漢地區(qū)的游戲項目或計劃十有八九都被迫延期甚至取消,有的公司可能會轉(zhuǎn)變策略爭取達成新的 KPI,為了彌補這2個多月產(chǎn)生的損失而趕工,這就預示著員工要面對長時間的加班,可能導致員工波動。
對于我們這些初創(chuàng)公司或小公司而言,存活下去是唯一念想。
「Creator星球游戲開發(fā)社區(qū)」助力小游戲開發(fā)者副業(yè)掙錢
公眾號從Cocos Creator小游戲開發(fā)入門到微信、頭條注冊提審教程,除此之外,還為開發(fā)者提供:
軟件著作權(quán)辦理
已備案域名購買
小游戲源碼出售
小游戲外包接單
開發(fā)者作品推薦
等等圍繞小游戲開發(fā)周邊的一條龍服務
打怪升級,我們一起學習成長!
總結(jié)
以上是生活随笔為你收集整理的武汉迷萌!3D《巅峰漂移》技术分享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在线扫描php后门_解密php webs
- 下一篇: Dots Animation