【游戏开发】卡牌游戏战斗系统设计与实现

前言

目前的游戏市场有很多种卡牌回合制手游,可能由于这种游戏不像MMO会占用玩家大量时间,所以也有着相当的受众群体,像笔者以前读书那会玩过的腾讯的《龙珠激斗》,《火影忍者ol》均属于此类。跟大部分类型的游戏相同的是,战斗也是卡牌游戏的核心模块,而游戏中所有培养系统,竞技场,抽卡系统,全服活动均是为了战斗服务。一个设计比较好的战斗系统无疑能吸引到更多玩家。

业务逻辑

这种游戏一般是双方战斗开始前先布置好自己的阵容,然后进入打斗。期间按照回合制打法进行战斗,由先手一方先出手,选取攻击对象进行攻击,然后由对方出手,依次反复直至战斗结束,最后进行战斗的结算。

实现

与一些需要操作的游戏不同的是,一般的卡牌回合制不需要玩家操作,战斗这块相对于其他游戏也比较简单,战斗其实对于服务端来说就是一瞬间就结束了,由服务端来进行战斗的模拟一回合一回合打斗计算,最后将战斗记录发送给客户端,由客户端进行解析并进行战斗的播放。由于我是服务端开发,所以这里只讨论服务端的实现。

代码架构设计

BattleScene类:作为战斗逻辑的核心类,也是后续开发中其他战斗类的基类,主要实现了一般战斗的战斗逻辑。
BattleEntity类:作为战斗实体类,实现了战斗实体的行为逻辑,也是后续如果想新增新类型实体类的基类。
BattleEntityManager类:作为战斗实体的管理类,主要负责存储战斗开始前初始化的战斗实体,并负责在战斗结束后将战斗实体的内存进行回收。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值