日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅谈游戏单位属性模块设计:属性组成、分级、计算与同步

發布時間:2024/8/26 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈游戏单位属性模块设计:属性组成、分级、计算与同步 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個單位的屬性(攻擊力、最大血量、防御力等)一般由多個模塊決定,比如我們游戲的屬性由三塊決定:

1.基礎屬性:由單位的等級和成長決定。

2.裝備屬性:影響人物面板顯示的屬性值。最常見的是裝備等。

3.外部屬性:每次進入副本時都會重置。一般來說,都是由戰斗過程中的buff等影響

屬性分級

單位的屬性一般分為多級,比如lv影響力量、敏捷,力量又影響血量、攻擊力,那么把屬性分級為:

0:等級

1:力量、敏捷

2:血量、攻擊力
?


屬性計算

屬性的計算每次都是由低級屬性開始,計算到最高級屬性。

一般來說,每次修改了低級屬性,那么高級屬性都需要重新計算。

具體的計算方式根據策劃需求可能不同。

屬性同步

對于每個玩家,他都有一個面板屬性(也就是顯示在玩家屬性UI上的數值),此屬性包括了基礎屬性和裝備屬性,當玩家賣手游每次進入游戲時,首先根據他的等級信息和裝備信息計算他的面板屬性,并保存到player模塊中。


每次進入場景創建一個玩家單位的時候,單位把面板屬性保存在屬性組件中,在戰斗過程中buff等可能修改外部屬性,但外部屬性并不保存在player模塊中,即玩家更換場景時buff對屬性的修改就清空了。(不同游戲需求也不同,有的游戲可能要求buff信息也保存在玩家身上,這樣玩家更換場景buff也存在)

狀態同步

屬性的同步應該使用狀態同步而不是命令同步(battle server和client之間),這主要是因為AOI等問題,命令同步并不能保證屬性的一致。

此外,因為傷害結算等大部分邏輯都在battle server中計算,其實client中并不需要保存太多屬性信息,只需要將client需要知道的屬性信息如血量/最大血量比例等同步到客戶端用于表現。

總結

以上是生活随笔為你收集整理的浅谈游戏单位属性模块设计:属性组成、分级、计算与同步的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。