游戏开发论坛

 找回密码
 立即注册
搜索
楼主: storm1986

[原创] 技能和BUFF数据编辑架构

[复制链接]

13

主题

832

帖子

1875

积分

金牌会员

空想家

Rank: 6Rank: 6

积分
1875
发表于 2014-10-20 09:00:22 | 显示全部楼层
卡特铁角 发表于 2014-10-17 21:38
对策划而言,把一张复杂的表进行拆分,有利于理解表格的含义,一定程度的方便修改。

但对程序来说拆分与 ...

这……数据难道不都是预加载的吗。
还是说你项目的技能数据要用到数据库级别……

13

主题

832

帖子

1875

积分

金牌会员

空想家

Rank: 6Rank: 6

积分
1875
发表于 2014-10-20 09:12:02 | 显示全部楼层
卡特铁角 发表于 2014-10-17 21:38
对策划而言,把一张复杂的表进行拆分,有利于理解表格的含义,一定程度的方便修改。

但对程序来说拆分与 ...

我说的“表格复杂,是设计有问题”,不是指玩法设计。
而是针对同一复杂度的数据需求,配置表的设计有问题。

实际上策划编辑的内容怎么拆表,和最终导出给程序的数据是否合并成一张,没有必然关系。
那是策划自己可以通过EXCEL解决的。当然也可以让程序做导出工具。
所以如你所言,只从策划的角度讲,拆表的确比较易于维护。
当然如果系统本身不复杂就无所谓了。

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2014-10-20 09:52:05 | 显示全部楼层
Mr_I 发表于 2014-10-20 09:00
这……数据难道不都是预加载的吗。
还是说你项目的技能数据要用到数据库级别…… ...

从硬盘读取多个表格文件到内存之后,在内存里这些表格数据仍然以多个多维数组或者其它数据结构的形式存在。

技能这种静态数据通常不会使用数据库。
还有疑问,你可以咨询下你附近的程序员

13

主题

832

帖子

1875

积分

金牌会员

空想家

Rank: 6Rank: 6

积分
1875
发表于 2014-10-21 09:00:26 | 显示全部楼层
卡特铁角 发表于 2014-10-20 09:52
从硬盘读取多个表格文件到内存之后,在内存里这些表格数据仍然以多个多维数组或者其它数据结构的形式存在 ...

……“还是说”=不会吧

13

主题

832

帖子

1875

积分

金牌会员

空想家

Rank: 6Rank: 6

积分
1875
发表于 2014-10-21 09:10:58 | 显示全部楼层
卡特铁角 发表于 2014-10-20 09:52
从硬盘读取多个表格文件到内存之后,在内存里这些表格数据仍然以多个多维数组或者其它数据结构的形式存在 ...

"为了获得一个技能的数据就要查找甚至遍历多张表,效率低,而且更容易出错"

之所以提到数据库,只是因为你提到查找遍历效率低。
既然你也知道是加载进来的数据,直接指向就好了,哪里来的查找遍历?
还有容易出错,能举个例子?或许我来帮忙解决下?

0

主题

6

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2014-10-21 19:30:25 | 显示全部楼层
GOODLUCK! 发表于 2014-10-18 13:13
“蜗牛这公司做的游戏历来画面很不错,但策划水准很一般了”---以前总听到别人这么说,看到楼主,我现在信 ...

这楼主是蜗牛的?

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2014-10-21 20:22:43 | 显示全部楼层
Mr_I 发表于 2014-10-21 09:10
"为了获得一个技能的数据就要查找甚至遍历多张表,效率低,而且更容易出错"

之所以提到数据库,只是因为 ...

对于这些问题,我有更简单的且验证过几次解决方法——一个技能对应一个脚本。不用你来帮忙了。

直接指向?我猜你说的是类似于根据技能ID计算出地址的办法——这个不是哪里都好用的。很多时候策划对技能进行多次调整或者有意识的预留区段,导致技能ID并不连续,在这种情况下要想通过技能ID乘以数据长度来寻址,你就需要在加载表格的时候进行排序并且插入一些空数据来保证技能数据在内存中严格按ID顺序排列,并且连续。这种处理方法,只是加载一张表我都嫌麻烦,更不要说拆得碎碎的多张表了。

相比之下,一个技能对应一个脚本的方法就简单多了。如果用的是lua,那就更方便——lua的表本质上就是哈希表,支持用任何东西做下标。

23

主题

3388

帖子

6440

积分

论坛元老

Rank: 8Rank: 8

积分
6440
发表于 2014-10-21 20:31:42 | 显示全部楼层
Mr_I 发表于 2014-10-21 09:00
……“还是说”=不会吧

这个问题你还有疑问,你可以跟你附近的程序员讨论,或者移步程序区发帖。

问问他们喜不喜欢你这种把一张表拆成多张,方便策划却折腾程序的做法——如果不希望在多张表中各查询一次,那他就得考虑怎么把策划提供的多张表格合并到一个统一的数据结构里面,而这也是逻辑(抱歉,你把逻辑和数据分开的幻想不能实现了)。

13

主题

832

帖子

1875

积分

金牌会员

空想家

Rank: 6Rank: 6

积分
1875
发表于 2014-10-22 08:58:41 | 显示全部楼层
卡特铁角 发表于 2014-10-21 20:31
这个问题你还有疑问,你可以跟你附近的程序员讨论,或者移步程序区发帖。

问问他们喜不喜欢你这种把一张 ...

呵呵。总是拿程序员来做借口。是否刻意回避我之前所说的:

实际上策划编辑的内容怎么拆表,和最终导出给程序的数据是否合并成一张,没有必然关系。

13

主题

832

帖子

1875

积分

金牌会员

空想家

Rank: 6Rank: 6

积分
1875
发表于 2014-10-22 09:02:14 | 显示全部楼层
卡特铁角 发表于 2014-10-21 20:22
对于这些问题,我有更简单的且验证过几次解决方法——一个技能对应一个脚本。不用你来帮忙了。

直接指向 ...

所以你也知道LUA可以用任何东西来做下标?

难道数据的ID不是一种下标?

我本来还想怎么跟你解释不用遍历,直接指向。原来你知道这个方法,脑子却没转过弯来?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-20 00:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表