近一年時間.做了一款坦克類的手遊.玩法類似於坦克世界手遊版.由此接觸了許多軍武類遊戲.研究了許多坦克世界的機制.成為了一名效率過千的入門玩家
這個品類確實不好做.分幾個方面來說.
從產品方向上講
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)遊戲物件的父子關係
前面介紹碰撞原理,因此角色可以自由運動了,但是它還缺少乙個技能,就是旋轉,比如乙個人走到牆邊上,他會旋轉乙個方向,再進行行走。但是目前我們這個場景裡的角色是乙個小容器,完全是對稱的,不管你怎麼樣旋轉,也看不出來。因此得向這個角色增加乙個鼻子,讓這個角色具有分辨方向的能力。接著下來,再在場景裡新增乙個...