花样青春非洲篇百度云:MMORPG技能系统设计

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 06:34:53

   前一段进行技能系统的设计及编码工作.反反复复做了不少的修改工作,现把当时的一些设计的理念及具体运用拿出来,

    一. 设计时需要关注的东西:

    1. 数据调整灵活性

    2. 服务器的性能

    3. 安全性

    下面对上面的内容分别讨论

    数据调整灵活性: 技能中存在不少的数据,如吟唱时间,CD时间,伤害, 防御等等.这些内容也并不是策划依靠经验一次就可以设定好的,需要在游戏测试或运营时做不断的调整,这部分数据将可能经常变动.

    服务器的性能: 服务器性能这里包括两方面的内容,一个是网络流量的影响,第二个是运行的效率

    安全性: 这方面内容主要涉及如何保证数据的完整性,正确性与统一性,如何防止用户做弊等等相关内容.

    二. 实践

    针对第一部分的划分,下面的实践也将按照第一部分的划分进行

    1. 数据调整灵活性

    这里我把策划提供的数据分为两个部分,一个是基本数据,这里包含技能的基础数据相对来说比较稳定,这部分将以文本的形式体现,二是可变数据,这里是最容易发生变化的内容.并且会涉及技能的相关计算.这部分以脚本形式体现,并且技能脚本涉及部分逻辑运算,如学习技能条件,释放技能条件及技能释放结果等

    2. 服务器性能

    针对减少网络流量我采用以下方式: 技能基础数据和技能脚本在服务器和客户端都会保存一份,其中客户端技能脚本是服务器端的子集,这样的话我们初始化的时候,客户端和服务器都会把技能基础数据先读取进来,注册进游戏逻辑中,这样保证了客户端和服务器技能信息的交流只通过ID就可以完成,将大大减少网络传输.技能脚本在客户端存在的意义在于对于我们需要执行技能的时候,比如说学习,释放等.客户端先验证是否能够执行.如果不能执行就在本地做相应处理,这样也可以将数据传输量尽量减少.

    在技能相关逻辑运算方面我采用下面方式: 玩家或NPC等身上都挂有技能列表,每个技能都是对已注册的技能的引用,技能脚本只提供部分逻辑运算,大部分在C++中完成,脚本涉及的函数以回调C++中函数的方式实现

    3. 安全性

    技能逻辑必须在服务器执行.