
目錄
1.游戲資源的分類
2.游戲資源管理系統目標
3.系統設計
1.環境
2.實戰
3.設計一個資源抽象類,作為所有資源型別的父類,
4.使用方式
5.定義一個資源的列舉,每種資源型別對應不同的處理類,
6.資源型別管理器,注冊資源處理類,將資源型別和處理類進行系結,
7.代碼展示
總結:
資源是每個游戲都有的,是很重要的一部分,不管是什么樣的游戲,都必然存在資源系統,資源是玩家在游戲內需要爭取的獎勵,有了資源才能發展,資源系統也是整個游戲的經濟系統,是游戲產生持續吸引力的基礎,好控制產出和消耗,從而控制游戲體驗、付費需求等,關乎整個游戲的生命,作為服務端同學,怎么設計一個好的資源系統吶?繼續往下看吧,
1.游戲資源的分類
比如王者榮耀內的金幣,鉆石,道具,武器,還有皮膚,vip等級等等,這些都可以作為游戲內資源,
王者榮耀:對局產出金幣,金幣購買英雄;活動產出鉆石,鉆石抽銘文和奪寶,充值購買皮膚資源,
比如我們游戲《精靈食肆》內的體力,金幣,靈契,道具,掉落寶,活躍度等等這些都是作為資源管理,
2.游戲資源管理系統目標
因為游戲資源的復雜和情況多變,所有想設計一個好用的資源系統還是很復雜的,
面向策劃的話就是盡可能的統一配置規則,并且容易配置,減少理解成本,
面向程式的目標就是容易擴展,隨著游戲開發行程,越來越多的資源會加入系統,減少開發難度,提升開發效率,游戲內資源的產出和扣除是最重要的,任何資源出現問題的代碼都是大問題,不可以忽視,因為資源就是玩家的時間和金錢,是私有財產,受保護的,
好配置,好擴展,統一處理,
3.系統設計
1.環境
編碼語言:Java 8
IDE環境:IDEA
2.實戰
下面以金幣和道具兩種資源進行設計,跟著我一步一步進行分析吧,
金幣 是簡單的數殖澩,可以直接增加,減少,減少時不能小于0,
裝備不是數值類的,需要單獨記表保存,可以獲得和使用,扣除的時候要驗證玩家是否真的有這個道具,,
從上面的分析可以看出,兩者的入庫不相同,兩者的邏輯判斷也不同,
3.設計一個資源抽象類,作為所有資源型別的父類,
我們的資源基本上都可以增加,減少,檢查是否可以增加,檢查是否可以減少,因此我們創建四個方法供子類實作,

4.使用方式
在我們呼叫的時候,可能既需要增加資源,也要減少資源,
比如在商城中,需要消耗金幣,然后獲得道具,甚至其他的東西,在常規的開發中,肯定是先去減少金幣,如果金幣減少成功了,再去發給玩家道具,
能不能合并成一步吶?所以我們創建一個類似ResOp 的類,既可以添加也可以洗掉,同時為了能夠多次增加和扣除資源,因此AbsRes 中 增加了一個merge的方法,用來合并同型別的資源,最后增加或減少時的一次操作,

5.定義一個資源的列舉,每種資源型別對應不同的處理類,
每種資源的邏輯是不同的,所以創建一個列舉類

6.資源型別管理器,注冊資源處理類,將資源型別和處理類進行系結,

7.代碼展示
因為代碼的長度問題就不貼出來了,這里只貼一下所有類的截圖,具體的代碼可以關注我公眾號【香菜聊游戲】獲取,你只需要修改一下包名就可以運行哦,有完整的注釋,等你來拿,還有一點私心就是想讓你幫我關注一下公眾號,哈哈,完整代碼哦,關注并回復【游戲資源系統原始碼】即可獲取,

總結:
1、ResOp中增加資源或者扣除資源
2、ResOp 對資源進行合并,整合,并分類,
3、呼叫每種具體型別的類進行操作增加或者減少
基本的介紹了資源系統的設計實作,后面一些沒有做具體的展示,原始碼可以關注公眾號獲取,如果覺得有困難,并且又感興趣的小伙伴可以聯系我,或者你有其他的更好的設計我們可以一起交流,堅持寫不容易,希望能獲得大家的支持,點贊,轉發 三連,謝謝,點贊,點贊,點贊
常規福利時間

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/179666.html
標籤:AI
