MOBA游戏草丛系统的个人思路

英雄联盟,作为一款火爆的MOBA类游戏,其一大特色就在于玩家可以——“躲草”。用一句话来概括躲草,那就是:当玩家控制的英雄躲入地图中的草丛,则对敌形成 隐身效果,达到埋伏、偷袭的效果。笔者有幸参与了一款基于Unity引擎的MOBA游戏的研发,并负责躲草系统的设计与实现。下面简单介绍一下个人设计思路,欢迎大家前来交流!

首先,作为一款长连接网络游戏,几乎任何功能都是由服务端和客户端两部分来完成的,至于草丛系统,有两种设计思路:
1.数据及主要逻辑部分放在客户端,服务端仅做简单调整。这种写法的好处是减轻服务端运算及网路通讯压力,坏处是有可能因为外挂而在本地窥探到隐藏的敌人,而让敌方无法察觉。
2.数据及主要逻辑部分放在服务端,客户端仅需依靠若干信号量(如是否在草中、是否隐身)来控制游戏物体的显隐。这种写法的好处是提高游戏的安全性,坏处是增大了服务器的运算和通信负担。
笔者综合了服务器性能与开发效率的考量,使用了第一种方案。

接着,理清要实现的功能模块:
1.草地区域编辑模块:
        设计一种能描述草地不规则形状的直观的编辑器,利用 unity3d引擎的场景来保存数据,每一块草地都要有自己的标识ID。
2.隐身效果触发模块:
        隐身效果要分半透明和完全透明两种,只要在草中,至少要半透明 (友方眼中一定是半透明),若满足隐身条件则全透明(敌方眼中);
        敌方范围技能打我方躲草英雄,我方掉血但不暴露,我方躲草打敌方,则我方暴露,并给敌方 三秒钟视野;
        自带隐身效果的英雄,走出草地不得解除隐身;
        当我方处于隐身状态,在敌方眼中,血条特效小地图标记等等都要隐藏掉;
        当敌我双方共同位于一块草 地中,双方都不能因为躲草而处于隐身。
3.AI识别模块:
        我英雄一旦入草隐身,敌方AI必须忽视掉我方英雄,这个操作在服务器端完成。

草地地形编辑展示:
 


上图中,每一块草地的进入判定,都是一个二级查找:黄框圈定一块草地的大范围、若干白框具体拼接出一块草地的形状。每一组白框,他们的数量是可以随意增加的,使用越多的白框来描述一块草地的范围,其效果越接近于真实。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值