游戏中PVP战场框架的设计

MMORPG类的游戏中,PVP战场是很常见的一个游戏功能,这里分享一种项目中使用的设计方式。
在设计前,先理清下战场我们需要维护的东西:

  1. 战斗的阶段(如登入、准备、战斗、结算等阶段)
  2. 战斗的积分(击杀玩家得分、占领得分、助攻得分)

对于战斗的阶段划分,每一类具体的战场,需要的战斗阶段可能都是不同的,比如某些需要倒计时阶段,某些需要加速阶段。这都需要根据具体战场的业务逻辑来调整。这个阶段不应该由程序硬编码实现,需要支持由策划进行动态配置。基于这个需求,战斗的阶段也应该抽象成一个类来维护。具体不同的阶段继承自一个基类即可。
对于战斗的积分,设计思路与战斗阶段类型,也应该需要支持由策划进行动态的配置,支持在某具体的战场中能有特定的加分类型(有些战场击杀得分,有些占领得分等等)。所以积分,也是需要抽象出一个类来维护。具体不同的积分规则继承自一个基类即可。
对于战斗阶段的维护、阶段的转换、具体战场的规则玩法等这些功能也肯定需要一个单独的类来维护,这里称之为战斗模式。
对于积分的维护(包括个人积分、团队积分、NPC积分等数值相关的)都交由一个积分模式的类来统一管理维护。
对于战斗模式和积分模式,再统一由一个总的战斗管理器来维护。
这个管理器具体挂载在哪个业务上,这个具体看自己的项目实现。比如在我这个项目组,所有的战斗、剧情之类的其实都是基于副本来实现的,所以,对于PVP战场其实可以理解为在普通的副本类上初始化了这个战斗管理器,将进入副本后的操作交由这个战斗管理器来维护。

基于上述的分析,对涉及到的类做一个名词定义,方便后面的书写。

  • 副本&#
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值