Project1

标题: 怎么优化存档的速度 [打印本页]

作者: 笹舟丶萚    时间: 2022-6-16 22:54
标题: 怎么优化存档的速度
因为我想弄个触发事件自动存档的效果,但每次存档都会有明显的卡顿,很不爽,有没有办法优化存档速度?需不需要用一些数据压缩手段?
作者: Fan723    时间: 2022-6-16 23:30
存档是计算机在写数据,数据多了自然就感觉卡顿,你要优化的是你的存档大小。
作者: play337    时间: 2022-6-17 00:49
本帖最后由 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

帮你找出来了....你试试看....
作者: 任小雪    时间: 2022-6-17 05:08
本帖最后由 任小雪 于 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 11:03
去掉不需要的字段
自己进行存档压缩

作者: saterick    时间: 2022-6-17 12:00
劝玩家换一个M2的固态?
作者: ppspssss    时间: 2022-6-17 14:19
本帖最后由 ppspssss 于 2022-6-17 14:53 编辑
任小雪 发表于 2022-6-17 05:08
你若果实力够且不嫌麻烦且不怕存档坏掉(仅考虑一个存档自然要害怕坏掉)的话,其实可以分情景单个情景单独 ...


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




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