MMORPG中技能戰鬥系統的技術分享

來源:互聯網
上載者:User

    今天下午參加了公司兄弟項目組的一個技術分享會,主題是關於MMORPG遊戲中的技能系統設計的,有幾點體會和思考,先記錄下來了!

    (1)技能施法時,client只有一個上行的請求施法包,後續施法的過程全由server來驅動下發施法各階段的結果資訊,如吟唱、效果傷害、命中資訊等等;

    (2)彈道類技能是由server計算飛行時間,並不考慮飛行後的軌跡,若此時目標有移動,則client會做目標跟隨的處理;

    (3)技能學習:由秘籍來獲得技能,一本秘籍包含多個技能,被動技能不影響主動技能的屬性;

    (4)Buff系統與技能系統是相互獨立的,相互之間有介面各自的進行訪問;

    (5)玩家施法作群攻目標選定時,也是由server來完成,這時是從玩家自己的視野裡搜尋,而無需再搜一次動態地區(格子32*32);

    (6)技能效果由一個主效果+N個Buff效果組成;

    (7)Buff對象區分玩家和怪物,其儲存結構獨立出來放在記憶體池中,在施法者需要時再根據目標類型來添加;

    (8)特別小心:在作技能效果計算時,盡量避免有輪循的處理,因為,這個這個很耗CPU;

    思考題:關於技能引發的位置同步問題

    (1)對於改變目標(玩家)移動速度的技能,可能會帶來位置不同步的問題,即server下發速度改變的包時,目標玩家可能正在移動,從而導致server和client的位置不一致?

      答:對於這個問題,一般是通過移動系統自身的位置同步策略來解決的,即移動系統發現client和server位置不一致時,通過一定的策略來補償速度慢的一方,從而在目標玩家在接來的一定時間內達到位置平衡。

     (2)類似性質的問題還有給目標加冰凍、定身等Buff,也可能帶來位置不同步的問題?

      答:這個問題暫也還沒有好的解決方案,目前的做法是當目標中定身Buff時,client立即表現定身,即定在原地,並將此時的位置資訊帶給server,server檢驗合法後設定這個位置,解凍後client為繼續玩家移動(若玩家是移動中被定身住的話)。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.