阶段总结2

来源:互联网 发布:js数组中移除元素 编辑:程序博客网 时间:2024/05/21 07:00

1 游戏开发中的可配置性
一: 需求来源
与其他业务需求不同,或者更突出的是,游戏逻辑开发需要有极强的可配置性。主要原因在于
1 游戏后端工程师仅仅是实现了一套逻辑框架,框架中具体的数值是有策划配置的
2 类似npc对话的具体内容由策划配置
3 有一些行为由策划配置(程序仅仅给出一个解决方案,组合成什么样的行为由策划决定,如
我们项目中的怪物行为树)。其他类似一些副本,场景时间,技能触发时间等,都可以通过这种
方式处理。缺点是函数调用不太好追踪,如果不熟悉代码,调试困难。使用场景简单说就是
特定事件发生后,会怎么处理,这里的处理函数做成导出,通过配置找到指定的函数,这样的话
就可以组合不同的函数来匹配不同的事件。

解决方案
1 针对每个模块数值类,属性类的配置,可以通过excel文件或者ini文件,json文件等方式设置,
实际使用中包括物品,装备,技能等等,大部分配置属于这种方式,由程序和策划沟通好即可。
2 如NPC对话类的配置,在项目中采取的是lua方式。lua作为粘合语言,在游戏中作为一个可配接的
模块,可以很好的解决这一需求。
npc对话的格式为:
title:“需要帮助吗”
可选项: 1 内容@lua函数名 2 内容@lua函数名 3 内容@lua函数名…
当玩家选中npc,服务器将上面所有内容发送给客户端,客户端显示出函数名外的其他部分
当玩家选中具体项,客户端返回(1.2.3)具体哪一项的内容,服务器解析到函数名,由lua处理
所以一个npc 对话的lua类似于
可以选择一项啊
1 领取宠物@getpet
2 领取奖励@getprize
3 领取任务@gettask
再用lua实现getpet,getprize,gettask即可
3 第三种配置目的在于提供一些行为函数,策划根据这些函数可以组合成一个完整的对象。因而这一配置
需要根据字符串找到相应的函数,项目中实现了这一模块,所有导出函数采用统一的格式,通过函数名
找到函数地址(getproaddress)。

0 0
原创粉丝点击