设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2035|回复: 8
打印 上一主题 下一主题

[有事请教] 怎么优化存档的速度

[复制链接]

Lv2.观梦者

梦石
0
星屑
670
在线时间
51 小时
注册时间
2018-6-27
帖子
49
跳转到指定楼层
1
发表于 2022-6-16 22:54:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
因为我想弄个触发事件自动存档的效果,但每次存档都会有明显的卡顿,很不爽,有没有办法优化存档速度?需不需要用一些数据压缩手段?

Lv4.逐梦者

梦石
0
星屑
19280
在线时间
2307 小时
注册时间
2015-7-4
帖子
937
2
发表于 2022-6-16 23:30:46 | 只看该作者
存档是计算机在写数据,数据多了自然就感觉卡顿,你要优化的是你的存档大小。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7665
在线时间
1437 小时
注册时间
2018-12-16
帖子
2025
3
发表于 2022-6-17 00:49:24 | 只看该作者
本帖最后由 play337 于 2022-6-17 00:57 编辑

我记得我之前有下载一个优化存盘的插件....
叫.....save.js 甚麽的...
他可以让存盘变很快 而且文件变很小

一开始我用的很开心.... 后来存很多档.... 竟然LOAD不出来了....

后来我多测试几次.... 他会让存盘变的很不稳.... 我就移除了...

01. NAPI_ExcludeSaveData.js
https://napiiey.github.io/plugins/napi_excludesavedata.html
02. LightSaveData.js
https://raw.githubusercontent.co ... er/LightSaveData.js

帮你找出来了....你试试看....

点评

看楼下,说不定对你有用(我就是用第二第三段的function改造一下,然后实效保存$data数据的)  发表于 2022-6-17 05:12
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2866
在线时间
446 小时
注册时间
2016-9-26
帖子
1223
4
发表于 2022-6-17 05:08:36 | 只看该作者
本帖最后由 任小雪 于 2022-6-17 05:11 编辑

你若果实力够且不嫌麻烦且不怕存档坏掉(仅考虑一个存档自然要害怕坏掉)的话,其实可以分情景单个情景单独存档部分数据。
(以下,你需要懂点脚本,知道怎么做插件和调用function,不难……但是,如果你用过其他人什么别的插件,我就不知道什么情况了)
以下是rmmv引擎本身的存档读档代码(js文件的原文)

JAVASCRIPT 代码复制
  1. //这段猜测跟存档位置还是存档文件名有关
  2. DataManager.makeSavefileInfo = function() {
  3.     var info = {};
  4.     info.globalId   = this._globalId;
  5.     info.title      = $dataSystem.gameTitle;
  6.     info.characters = $gameParty.charactersForSavefile();
  7.     info.faces      = $gameParty.facesForSavefile();
  8.     info.playtime   = $gameSystem.playtimeText();
  9.     info.timestamp  = Date.now();
  10.     return info;
  11. };
  12. //存档哪些东西
  13. DataManager.makeSaveContents = function() {
  14.     // A save data does not contain $gameTemp, $gameMessage, and $gameTroop.
  15.     var contents = {};
  16.     contents.system       = $gameSystem;
  17.     contents.screen       = $gameScreen;
  18.     contents.timer        = $gameTimer;
  19.     contents.switches     = $gameSwitches;
  20.     contents.variables    = $gameVariables;
  21.     contents.selfSwitches = $gameSelfSwitches;
  22.     contents.actors       = $gameActors;
  23.     contents.party        = $gameParty;
  24.     contents.map          = $gameMap;
  25.     contents.player       = $gamePlayer;
  26.     return contents;
  27. };
  28. //读档哪些东西
  29. DataManager.extractSaveContents = function(contents) {
  30.     $gameSystem        = contents.system;
  31.     $gameScreen        = contents.screen;
  32.     $gameTimer         = contents.timer;
  33.     $gameSwitches      = contents.switches;
  34.     $gameVariables     = contents.variables;
  35.     $gameSelfSwitches  = contents.selfSwitches;
  36.     $gameActors        = contents.actors;
  37.     $gameParty         = contents.party;
  38.     $gameMap           = contents.map;
  39.     $gamePlayer        = contents.player;
  40. };

点评

厉害!  发表于 2022-6-17 13:12
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
26
在线时间
701 小时
注册时间
2021-3-24
帖子
549
5
发表于 2022-6-17 11:03:43 | 只看该作者
去掉不需要的字段
自己进行存档压缩
全家活光光~
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
5114
在线时间
443 小时
注册时间
2006-1-31
帖子
1537
6
发表于 2022-6-17 12:00:54 | 只看该作者
劝玩家换一个M2的固态?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14604
在线时间
2150 小时
注册时间
2016-9-20
帖子
861
7
发表于 2022-6-17 14:19:53 | 只看该作者
本帖最后由 ppspssss 于 2022-6-17 14:53 编辑
任小雪 发表于 2022-6-17 05:08
你若果实力够且不嫌麻烦且不怕存档坏掉(仅考虑一个存档自然要害怕坏掉)的话,其实可以分情景单个情景单独 ...


你这么说我想到流式加载 要制作者对游戏存档机制完全熟悉, 根据游戏的实际情况进行制定切多少份 越大则分成越多份, 比如 分成 存档分档A 存档分档B 存档分档C...  存储时, 比如第1秒, 储存存档分档A , 第2秒储存存档分档B , 第3秒储存存档分档C ,   或者 存档分档1 存档分档2 存档分档3..., , 但因存档如此, 所以加载时也是要 分档加载, 存储时要告诉玩家存档中不能关闭电源或关闭游戏,  若储存中途退游戏会造成部分分档没有储存, 就会存档失败
我发的贴子大多未经整理是草稿抱歉
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-18 05:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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