坦克類遊戲的製作之路

2021-09-30 13:37:41 字數 2474 閱讀 5276

近一年時間.做了一款坦克類的手遊.玩法類似於坦克世界手遊版.由此接觸了許多軍武類遊戲.研究了許多坦克世界的機制.成為了一名效率過千的入門玩家

這個品類確實不好做.分幾個方面來說.

從產品方向上講

1.喜歡坦克的大多男性,喜歡軍事.對於坦克的歷史,屬性都很了解.數值上不能憑空發揮.

2.想做競技類的遊戲玩法.但對於寫實類遊戲來說.技能,無敵什麼的都很突兀.不能在這方面發揮.

可以擴充套件的屬性只有血量.裝甲.傷害.視野.移動.對於一款遊戲來說變化太少.

如果參考坦克世界的策略.做大科技樹,堆坦克的量.容量會很大,在手機平台上不合適.

3.坦克世界端遊操作感很好.但個人體會手遊版的移動感受很差.瞄準經常想讓人砸手機.那麼想做起伏多變的地形,增加點亮,賣頭這些玩法.無疑增加了操作難度.

在手機上的操作如何簡化?

從技術上講,有很多難點.

物理模型的建立

在起伏的地形上只用乙個盒子是肯定不行的.

坦克移動的物理模型?移動的手感如何實現數值上的調整?如何具備公升級成長的能力?

使用physicx的輪子模型,建立起來很複雜.至少有40多個物理引數.很多引數相互關聯.想增加啟動速度.並不是調整某乙個值就能實現.

坦克自身的懸掛如何設定在啟動和停止的時候會有前傾後傾的感覺? 炮塔和炮身的懸掛如何設定在開炮的時候有後坐力的感覺?

被擊中的時候如何有車身震動的感覺?這是對物理模型的理解的乙個考驗.

參考了好幾個模型,調整了好幾版方案以後.才基本穩定下來.可是很多感覺並沒有像坦克世界那樣到位.比如說在碰撞的時候沒有能體現車體的噸位差異.會卡在一些凸起地形時等.

渲染難度

坦克類遊戲是在戶外,大場景.交戰距離都較遠.帶來的問題就是地形大,面數多,都需要看到,無法進行分割槽或者裁剪.手機平台效率吃緊

坦克類使用者的關注點集中在坦克上.效果要出眾.必須使用一些次世代的做法.substance的使用是個基礎.考驗了技術美術的實力.

想在瞄準的時候在坦克表現顯示裝甲的厚度,這需要一整套裝甲,渲染的方案和工具.

操作上的難度

手機上的瞄準是件困難的事,觸控螢幕在啟動的時候.有一定的精度問題.會突然有較大的輸入.前期得到的輸入不平滑

參考閃電戰的瞄準

滑動螢幕時轉向角度根據滑動速度有相應調整

滑動螢幕時轉向角度根據fov

相應調整

自動追蹤.當鎖定目標時.跟隨目標移動.滑動螢幕的速度為相對速度.使用乙個大的圓形collider實現.要注意trace到的點要對映到坦克的平面

6.自由視角回正的速度跟偏離度相關

在攝像機trace到坦克,地形,或50公尺外的建築時.坦克的炮管是指哪打哪.為了伸縮炮的考慮,在近處的建築(坦克世界是50公尺內),坦克炮管並不會指向攝像機所指向的點

快速滑動後有一定的慣性再停止.也調整了好幾版.有些感覺.但還有不足.

最近看到坦克世界9.19.1「巨龍咆哮」更新內容 有一項

切換瞄準模式時,優化觀察者位置,降低細微移動敏感度

也證明了這是需要持續優化的..只要有思路.就會再嘗試.

炮彈是帶拋物線的.並且有一定的飛行時間.要實現 "指哪打哪" 的效果.炮管並不是指向螢幕中心.而是根據當前炮彈的飛行軌跡反向計算出應有的角度.

炮管是有一定仰俯角度限制的.

當車體啟動,停止時,車身會晃動.在坦克世界中.此時的晃動並不會影響俯仰角.這樣在賣頭的時候才不會影響瞄準.

這一點還未找到解決方案...

網路同步的難度

物理模擬的同步無法使用幀同步.只能使用狀態同步

普通fps遊戲需要同步的就是位置和旋轉.

坦克要同步的資訊有 坦克的位置,坦克的旋轉,炮塔的旋轉,炮管的旋轉

等於是fps遊戲同步資料的兩倍

一般以每秒3次的頻率同步狀態.10個玩家.每秒大概要收5k的資料.每分鐘就是300k.每10分鐘近3m.

首先這個資料量偏大.對於用流量的玩家不友好.其次大量的包反序列化.帶來了效能瓶頸

對於同步資料的優化,我想到的是減少看不見的玩家的資料是否能減少同步頻率.因為在我們遊戲中,雖然離的很遠.但被友方點亮的坦克一樣可以被我們看到和攻擊

只能嘗試在未被點亮的坦克上做文章.伺服器端收到同步資訊後,如果此玩家未被敵方點亮.則以1秒1次的頻率將他的資訊同步給敵方玩家.統計來看.此項優化在伺服器端是少傳送了25%的資料.

另外是對於炮塔和炮管.本地炮塔和炮管的旋轉是根據攝像機的指向,所裝子彈的拋物線來計算得出的.如此,我們設計乙個瞄準器.在本地由攝像機控制瞄準器的朝向,由瞄準器給炮塔和炮管輸入目標點,這樣我們只需要同步瞄準器的旋轉即可.這樣又減少了20%的同步資料.

根據抓包測試.王者榮耀大概每秒3k.坦克連大概每秒10k(不知道為什麼這麼大...)

我們大概每秒3k.

其餘的還有ai.驗證..都是難點.跨過層層坑,做了n多優化才實現.

可以說這個品類.國內沒有比我們研究的更深的了

剩下的..就是期待策劃給力.運營給力了.

遊戲製作之一 坦克的移動

這篇文章參考了一位仁兄的部落格 mfc坦克定位,但對之做出了一些細節上的修改,主要目的呢是為了加深自己的記憶。文章內提到的有mfc 位圖繪製,鍵盤訊息的響應 原文章傳送門 這次的主要內容是使用vc的mfc製作乙個很小很小的遊戲,功能很簡單,視窗上顯示一輛坦克,按上下左右即可操作坦克進行不同方向的移動...

Python製作經典坦克大戰小遊戲

python版本 3.6.4 pygame模組 以及一些python自帶的模組。安裝python並新增到環境變數,pip安裝需要的相關模組即可。t t感覺自己的 整體上邏輯還是很清晰的,也做了很多必要的注釋,所以這裡我只講主要的思路,一些實現細節請閱讀我的源 遊戲規則 遊戲有單人和雙人兩種模式,己方...

遊戲製作之路(8)遊戲物件的父子關係

前面介紹碰撞原理,因此角色可以自由運動了,但是它還缺少乙個技能,就是旋轉,比如乙個人走到牆邊上,他會旋轉乙個方向,再進行行走。但是目前我們這個場景裡的角色是乙個小容器,完全是對稱的,不管你怎麼樣旋轉,也看不出來。因此得向這個角色增加乙個鼻子,讓這個角色具有分辨方向的能力。接著下來,再在場景裡新增乙個...