关于全局存储
相关插件
全局存储核心:
◆Drill_CoreOfGlobalSave 管理器 - 全局存储核心
核心的子插件:
◆Drill_GlobalVariable 管理器 - 跨存档的变量
◆Drill_HtmlWindowTitle 游戏窗体 - 游戏窗体标题修改
◆Drill_SceneSelfplateA、B 面板 - 全自定义信息面板A、B
◆Drill_SceneSelfplateC、D 面板 - 全自定义信息面板C、D
◆Drill_SceneSelfplateG、H 面板 - 全自定义信息面板G、H
◆Drill_SceneSelfplateI、J 面板 - 全自定义信息面板I、J
◆Drill_SceneSelfplateK、L 面板 - 全自定义信息面板K、L
◆Drill_SceneSelfplateM、N 面板 - 全自定义信息面板M、N
◆Drill_SceneGalleryA、B 面板 - 全自定义画廊A、B
◆Drill_SceneGalleryC、D 面板 - 全自定义画廊C、D
◆Drill_TitleBackground 标题 - 多层标题背景
◆Drill_TitleCircle 标题 - 多层标题魔法圈
◆Drill_TitleParticles 标题 - 多层标题粒子
◆Drill_TitleGif 标题 - 多层标题gif
◆Drill_TitleTiledGif 标题 - 多层标题平铺GIF
◆Drill_TitleVideo 标题 - 多层标题视频
◆Drill_TitleScene 标题 - 全自定义标题界面
独立的全局存储插件:
◆Drill_GlobalGameTimer 管理器 - 累计游戏计时器
其他插件:(下列插件仍然使用旧的全局存储,存储会较大幅度影响性能,未来会推翻)
◆MOG_Music_Book 面板 - 音乐书
◆Drill_X_GlobalOptimization 系统 - 全局存储性能优化[扩展]
如果你想尝试配置meta元素,可以看看:配置示例 。
名词索引
以下你可以按住ctrl键点击下面的词,可以直接定位到想了解的名词:
存储 | 正常存储 全局存储 自定义存储文件 |
Meta元素 | 元游戏 世界线 玩家世界线 |
插件关系
全局存储的插件大部分依赖于全局存储核心,如下图所示:
存储
定义
正常存储:指将所有游戏存档保存在固定编号的存档中。
新开游戏,所有数据清空。
全局存储:指游戏后台存储,将数据存储在指定的全局文件中。
新开游戏,数据不变。
你在测试游戏调整插件的参数时,可能会遇到 参数修改无效 的情况。其中有可能是由于全局存储在开游戏后,就立即对全局数据文件进行了读取,从而覆盖了插件的初始化数据。遇到这种情况时,要多留意你测试的插件是否开了全局存储,要记得删掉存的文件。 |
在 测试战斗 时,全局存储也可能会自己 存储/读取 文件,为避免影响,测试战斗前注意清理一下save里面的全部文件。
存储文件
1)一般数据文件
游戏没有那么深沉隐秘的存储,所有存储的文件都在save文件夹中。
(如果是用服务器搭建的云端游戏,则在服务器的save文件夹中。)
你只要把save文件夹中的所有文件清空,那么游戏默认的全局存储和存档都会被清空。
2)插件 自定义存储文件
注意,只有全局存储才能 自定义 想存的文件以及位置。 |
全局存储之间的数据实质为同一个世界线的数据,所以放在哪都行。
正常存储中,存档之间的数据 互斥,进入不同存档,则进入完全不同的世界线。所以正常存储不能分离文件。世界线的相关介绍可见后面章节: 世界线 。
全局存储核心可以设置文件路径,
子插件选择在指定的文件路径中进行存储。
注意,多个子插件可将数据存储到同一个文件路径里面。
你也可以根据不同文件,分多个文件存。
(大部分metagame游戏也是通过这种全局方式存储,不过有的游戏为了完美隐藏,会将全局存储的文件藏在玩家c盘中一些非常隐秘的位置,就像病毒一样,删游戏也无法改变游戏进度。)
另外注意,如果你的游戏是部署在服务器上的,这里指定的文件都将会是服务器上的文件路径,这样会对不同玩家的游戏造成干扰。 |
3)插件自控制的文件
部分插件可能会有自己控制的全局文件,比如:
◆Drill_GlobalGameTimer 管理器 - 累计游戏计时器
计时器插件会专门单独存一个 drill_timer.rpgsave 文件,用来记录玩家累计游戏时间。
数据更新与旧存档
具体介绍与定义先去了解一下“21.管理器 > 数据更新与旧存档.docx
”。
注意,这里提及的是 修改插件配置与旧存档 的关系。如果你直接更新了插件,旧存档赶紧删了。更新插件相当于数据底层变动,而数据底层变动对旧存档影响是无法预估无法控制的。 |
全局数据的优化策略与一般数据的优化策略一样。
1)如果把指定的全局存储文件删除,100%解决数据同步更新问题。
2)如果全局存储为空,编辑后,再次打开游戏,将以最新的数据为准。指定数据保存后,此优化失效。
测试游戏时,如果执行了相关插件指令,全局数据会存储在指定文件中。
再次测试时,数据会以上一次保存的为准。
因此,注意测试时要删掉全局存储文件。
Meta元素
定义
meta-game(元游戏):指利用 超出游戏以外的因素 对游戏本身产生影响的游戏。
Meta元素是一种游戏设计思路,通过Meta可以增强玩家的游戏带入感。
从感受角度来说,游戏在被制作出来时,战斗、剧情、结局等就已经被注定了,这是游戏以内的因素。而玩家在游戏过程中的反应、情绪,以及在游戏中某些特殊行为,都是游戏以外的因素。 |
世界线:指事物发生的一种可能性。
比如战斗你可以有 战斗、逃跑 两种选择,也就相当于有两条世界线。
玩家世界线: 指不管你选了哪个选择,最后必然进入某结果的一条时间线。
世界线与存档之间的关系如下:
玩家可以通过存档,跳跃到 任何一个存档世界线 。
但是玩家自身的真实世界线,是无法保存与跳跃的。
(对于游戏中的人物来说,玩家跳跃存档时间线,相当于穿越时空)
这也是为什么 全局存储 能够直接和meta元素设计 挂钩。
设计方法
我们可以通过全局存储来设计 游戏以外的影响因素 。
比如,我们可以知道 玩家的游戏时间、玩家在其它存档中的失败经历、玩家在游戏中去过哪些特地地点 等信息(玩家删正常的存档也无法清除这些信息)。
从这个角度上对玩家的行为反映进行逐一设计,能让玩家产生游戏之外的高度上思考:“到底是我在玩游戏,还是游戏在玩我?”
1)游戏范围内的meta
游戏范围内meta,指玩家进入游戏后,meta数据存储于游戏文件夹内。
玩家删除游戏,重新安装新游戏后,meta即会失效。
全局存储核心中能够将存储的文件定义在 游戏目录下:
2)玩家电脑内的meta
玩家电脑内meta,指玩家进入游戏后,meta数据存储在玩家电脑的某个位置。
玩家删除游戏,重新安装游戏,meta数据仍然会被读取到。
要设计出来也很简单,将文件位置设为C:/某个目录即可。
注意,最好不要写c盘的Windows、Temp、User等系统专用文件夹,存储时可能会因为权限不够,而无法保存数据。
另外注意,如果你的游戏是部署在服务器上的,这里指定的文件都将会是服务器上的文件路径,这样会对不同玩家的游戏都造成干扰。 |
配置示例
示例中,有个“C盘隐藏路径”的设置。
可以看到,这个会在c盘下建立一个 drill_rpg文件夹。
子插件用到了此路径,且手动触发保存后,才会建立文件夹和文件,默认不会自动创建。
所以,现在将 信息面板B 的文件路径配置设置为2,关联这个文件路径。
(注意,信息面板B开了全局存储)
(多个插件可以配置全局数据存到同一个文件路径里面,相互不冲突。)
进入 面板管理层,主动触发 解锁或上锁 第3条信息。
(手动触发数据变化,才会保存,默认是不存的。)
现在去c盘看看,可以发现数据已经被存上了。
meta元素就可以通过这个存储文件,知道玩家是否玩过游戏,经历了哪些剧情,你可以根据这个设计不同的剧情与结果。
(有的电脑可能会因为权限问题,不让存。插件存储失败时,会选择在 游戏的save文件夹下存文件drill_globalDefault.rpgsave。)
常见问题(FAQ)
全局存储问题经常发生在子插件中,可见:
“18.面板 > 关于全自定义画廊.docx
”文档中的 常见问题(FAQ)