游戏开发技能系统常用概念

一个角色同一时间可能存在多个Skill,一个当前播放的主动技能,还有好几个不在播放中,但是也没有结束的。
技能事件: 实现具体的技能功能,技能动作的执行都是通过触发事件来触发的,比如(时间帧,命中,受伤,正常结束,异常结束)
公共:移动(因为需要服务器计算移动位置),播放动画,标准子物体,按键跳转,线框判定,开启包围盒和关闭包围盒(服务器记录标识,不会一直都开着,性能问题),技能段跳转
客户端:播放音效,模型变色,播放特效,隐藏装备,显示装备
服务器事件:修改属性相关
客户端事件其他端也是靠播放技能播放,公共事件和服务器事件其他端靠各个系统的ntf播放

动画事件:1.根据时间帧的方式方便策划配置 2.动画事件策划不方便配置,可能很多动作文件都要配一遍,编辑器下可以复制黏贴,一般都是特殊的需要代码处理的动画中断点才配置比如拔刀收刀只有主角有。StateMachineBehaviour脚本,挂在动画上主要是为了动画开始和结束时候的回调方便传给逻辑代码使用,比如采集动作的完成。

动作和特效都是0帧起手要马上播放,但是因为加载有延迟时间,怎么解决?
1.根据表格里面预加载一些动画 2.加载动画完成后根据配置是否从头开始播放,否则计算跳过加载完成时间-开始调用时间,从新的时间段开始播放。

状态模式的运用: 加载过程中(加载开始,加载中,加载完成,加载失败),位移中(根据速度情况不同状态),热更新流程中分成好几个状态

动画加载:根据配置,基本上都是动态加载,加载出来后可定时根据时间间隔卸载或者永不卸载,可配置预加载,异步加载的好处:角色刚出来加载状态机需要花费很多时间和内存,减少加载时间和内存占用空间。

主角移动协议:
通过摇杆更新,定时都会同步数据,通过摇杆获取输入,获得输入方向,主端进行移动,然后发送位置,速度和方向

状态同步:一般跟着动作,比如一个技能段播放一个动作其中触发多个技能事件,发送技能开始协议传简要的dstSid和技能id等数据,等到技能段的时候同步目标具体的buff状态,符文属性等相关信息,技能段也是协议数据量最大的地方。
客户端上只有公共事件才需要发技能事件start给服务器
技能中的位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JustEasyCode

谢谢您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值