Project1

标题: 策划:RGE数据编辑器 Update 08262243 [打印本页]

作者: 轮回者    时间: 2010-8-26 20:01
标题: 策划:RGE数据编辑器 Update 08262243
本帖最后由 轮回者 于 2010-8-27 00:04 编辑

1.若干假定
(1) RGE数据编辑器仅负责对某数据的实例变量进行编辑(如@id等)。
(2) 基础数据类型包括:Array Fixnum Float Hash Integer Numeric String Table
(3) 数据库中数据的类型应为基础数据类型,或由基础数据类型有限次复合构建的衍生类
    关于(3)的解释:即便用户真的有需要,要在数据库文件里面加一个Bitmap或其他类的实例,也完全可以将该实例单独存储在一个文件里,然后仅仅将文件的相对地址储存在数据库文件中。


2.“表里”系统
编辑器分为"表里"系统,其中
      里系统负责对某数据文件的数据类的架构,使用者为游戏组中的程序员。
      表系统负责对实际数据文件的修改,使用者为游戏组中的策划、数据调试人员。
(1)里系统
里系统相当于数据编辑器的系统设置
可参考下图:
[attach]27292[/attach]
里系统应有游戏组程序员进行设置。
数据格式应支持全部常用格式,以及已经设定的数据类
例如,在Actor中嵌套一个Armor类
补充:应该再加一个父类 = =b
           以及一个“开关”,用于设定该数据类实例在数据编辑器中是否可编辑
           Table类应可设置x,y,z size默认值


(2)表系统
参考RMXP的数据库编辑器,或下图
[attach]27286[/attach]
右半部分不妨使用表格,整数、浮点小数、字符可直接在表格中修改,而对嵌套的数据类,则在双击后弹出一个用于修改对话框。

3.容错
虽然说“任何一个数据类型都应该是基础数据类型有限次复合的结果。所以,游戏制作组的程序员应该有能力将所有使用到的数据类型设置出来”
但是,容错系统依然是不可或缺的,例如,Actor类实例中嵌套了一个XXX类的实例,而XXX类实例并未定义,那么,容错系统应该自动添加一个XXX数据类。由于不清楚XXX数据类究竟为哪个数据类的子类,所以,应禁止对XXX数据类的编辑,指导程序员进行相应设置为止。

4.其他建议
(1)不妨单独设置一个“图像相对路径”的数据格式,实际数据格式为String,
在修改时,将弹出对话框,让使用者选择一个图片,并将图片的相对路径作为数据值保存下来。
(2)暂缺

5. 自动化处理
好吧,既然都不明白对用户自己定义的类如何处理,那么,请参看下图:(Data_Test类为用户自定义类)
[attach]27359[/attach]
换句话说,RGE数据库编辑器中Data_Test类的设置文件、Data_Test类定义脚本、Data_Test类的实例数据三者存在一定的转化关系。
或许你或说这样的转化可能会漏掉一些东西,但是,在Data_Test类的实例数据中都未保留的内容凭什么要编辑器支持修改呢?

P.s.
我当初做过一个类似物,效果如下图,只是,当初是用WXRUBY做的,兼容性方面问题不少。所以,谁有空用C#或其他语言写一个吧
[attach]27369[/attach]
作者: IamI    时间: 2010-8-26 20:02
众口难调啊……顺便说下,设计为数据结构是任意的。如何定义未定 = =b
作者: DeathKing    时间: 2010-8-26 20:04
观望。
听说元编程可以设计出SDL,这个主意不错。

既然用了鸭子类型,那数据类型就还是免了吧~~~又不是每个人使用参数之前都要检查一下 0_0
作者: 轮回者    时间: 2010-8-26 20:04
回复 IamI 的帖子


    任何一个数据类型都应该是基础数据类型有限次复合的结果。
    所以,游戏制作组的程序员应该有能力将所有使用到的数据类型设置出来
作者: 轮回者    时间: 2010-8-26 20:12
回复 IamI 的帖子


    Table从逻辑上和一个长度为xsize * ysize * zsize的数值点列应该是没有区别的吧?
作者: 轮回者    时间: 2010-8-26 20:14
本帖最后由 轮回者 于 2010-8-26 20:17 编辑

回复 DeathKing 的帖子


    那么,如果我新建一个Armor实例arr1,arr.id的初始值的数据格式究竟是String还是Number?


e,好吧,我错了。但是,个别实例变量还是需要特定数据格式的,而且数据库至少是严格限定初始类型的
作者: DeathKing    时间: 2010-8-26 20:14
当然如II所说,自己新定义的类又如何处理呢?

实变量应该允许所有Ruby可接受对象,也就是Object。
作者: DeathKing    时间: 2010-8-26 20:18
回复 轮回者 的帖子


    id?这个是什么方法 O_O
作者: 轮回者    时间: 2010-8-26 20:19
回复 DeathKing 的帖子


   数据库应当是严格限定数据类型的,至少对初始类型需要严格限定

作者: david50407    时间: 2010-8-26 21:09
先限定类型
输入值时直接限定类型
Array Table ...有专用的编辑器
字符串就是字符串int 就是int 没得商量
这才是完整的数据库编辑器该做的事
作者: david50407    时间: 2010-8-26 21:17
[attach]27338[/attach][attach]27339[/attach]
之前的库存...
作者: 轮回者    时间: 2010-8-26 21:58
回复 DeathKing 的帖子


    新定义的类也是基本类的继承与复合。
作者: 轮回者    时间: 2010-8-26 22:32
回复 david50407 的帖子


    回复 david50407 的帖子

Txt是方便程序员自行决定脚本的插入位置
然后,我觉得吧,结构和数据还是分开设置比较好,不然会有点麻烦,举个例子:
比如你给Actor类加了一个Armor_New类(这个类是自己新定义的)的实例变量,
但是没有哪个数据文件是直接由Armor_New类实例组成的,那么Armor_New类的结构在哪里定义呢?
作者: david50407    时间: 2010-8-26 22:36
要先開啟或引入相對應的結構檔
才能編輯數據
這也是RB Marshal麻煩的地方
作者: 猫哥哥    时间: 2010-9-11 23:13
与其兼容各种情况。还不如大家约定一个固定的格式。应该会更容易实现{:nm_7:}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1