首页 - 神途资讯 > 一步一步分析并实现复杂的游戏资源系统,直接送可运行源码!!!

一步一步分析并实现复杂的游戏资源系统,直接送可运行源码!!!

发布于:2024-05-16 作者:admin 阅读:113

资源是每个游戏都有的,是很重要的一部分,不管是什么样的游戏,都必然存在资源系统,资源是玩家在游戏内需要争取的奖励,有了资源才能发展,资源系统也是整个游戏的经济系统,是游戏产生持续吸引力的基础,好控制产出和消耗,从而控制游戏体验、付费需求等,关乎整个游戏的生命。作为服务端同学,怎么设计一个好的资源系统呐?继续往下看吧。

1.游戏资源的分类

比如王者荣耀内的金币,钻石,道具,武器,还有皮肤,vip等级等等,这些都可以作为游戏内资源。

王者荣耀:对局产出金币,金币购买英雄;活动产出钻石,钻石抽铭文和夺宝。充值购买皮肤资源。

比如我们游戏《精灵食肆》内的体力,金币,灵契,道具,掉落宝,活跃度等等这些都是作为资源管理。

2.游戏资源管理系统目标

因为游戏资源的复杂和情况多变,所有想设计一个好用的资源系统还是很复杂的。

面向策划的话就是尽可能的统一配置规则,并且容易配置,减少理解成本。

面向程序的目标就是容易扩展,随着游戏开发进程,越来越多的资源会加入系统,减少开发难度,提升开发效率。游戏内资源的产出和扣除是最重要的,任何资源出现问题的代码都是大问题,不可以忽视,因为资源就是玩家的时间和金钱,是私有财产,受保护的。

好配置,好扩展,统一处理。

3.系统设计1.环境

编码语言:Java 8

IDE环境:IDEA

2.实战

下面以金币和道具两种资源进行设计,跟着我一步一步进行分析吧。

金币 是简单的数值资源,可以直接增加,减少,减少时不能小于0。

装备不是数值类的,需要单独记表保存,可以获得和使用,扣除的时候要验证玩家是否真的有这个道具,。

从上面的分析可以看出,两者的入库不相同,两者的逻辑判断也不同。

3.设计一个资源抽象类,作为所有资源类型的父类。

我们的资源基本上都可以增加,减少,检查是否可以增加,检查是否可以减少。因此我们创建四个方法供子类实现。

4.使用方式

在我们调用的时候,可能既需要增加资源,也要减少资源。

比如在商城中,需要消耗金币,然后获得道具,甚至其他的东西。在常规的开发中,肯定是先去减少金币,如果金币减少成功了,再去发给玩家道具。

能不能合并成一步呐?所以我们创建一个类似ResOp 的类,既可以添加也可以删除。同时为了能够多次增加和扣除资源,因此 中 增加了一个merge的方法,用来合并同类型的资源,最后增加或减少时的一次操作。

5.定义一个资源的枚举,每种资源类型对应不同的处理类。

每种资源的逻辑是不同的,所以创建一个枚举类

6.资源类型管理器,注册资源处理类,将资源类型和处理类进行绑定。

7.代码展示

因为代码的长度问题就不贴出来了,这里只贴一下所有类的截图,具体的代码可以关注我公众号【香菜聊游戏】获取。你只需要修改一下包名就可以运行哦。有完整的注释。等你来拿。还有一点私心就是想让你帮我关注一下公众号,哈哈,完整代码哦。关注并回复【游戏资源系统源码】即可获取。

总结:1、ResOp中增加资源或者扣除资源

2、ResOp 对资源进行合并,整合,并分类。

3、调用每种具体类型的类进行操作

基本的介绍了资源系统的设计实现,后面一些没有做具体的展示,源码可以关注公众号获取,如果觉得有困难,并且又感兴趣的小伙伴可以联系我。或者你有其他的更好的设计我们可以一起交流。坚持写不容易,希望能获得大家的支持,点赞,转发 三连,谢谢。

二维码

扫一扫关注我们

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,请告知我们,本站将立刻删除涉嫌侵权内容。

相关文章