Project1

标题: 【C语言(sharp)开发】RMSaver开发实况——RM游戏的云存档! [打印本页]

作者: 吕乐乐    时间: 2018-6-6 23:15
标题: 【C语言(sharp)开发】RMSaver开发实况——RM游戏的云存档!
本帖最后由 吕乐乐 于 2018-6-6 23:17 编辑

好久不见!

好吧,可能有人还记得我,几个月前我说要用JAVA写个小游戏来着
然后由于各种瓶颈加上工作繁忙,以及我做出来后发现,
它,并不好玩,我为什么不去玩昆特牌呢?
所以那个项目就删了... so sad...

今天我给大家介绍的是另一个我自己的项目:

RMSaver —— RPG Maker云存档系统


我觉得很多玩RM做游戏的人应该都有这个想法,
给自己的游戏做个云存档!即使游戏被删了重新下载或者换电脑了也能恢复存档!
RMSaver 就是这样的一个开源、公益的软件!
他不仅强大,而且,易用性极强,你根本不需要任何开发知识,甚至你不必是游戏作者!
你也不需要注册账号,也不用搞什么密码,也没有一堆复杂的程序。
RMSaver会自动匹配你当前游戏的RPG Maker版本,包括XP VX 等等。。。
那么问题来了,RMSaver是怎么区分你和别人的存档呢?答:CPU识别码(反正你也听不懂


RMSaver由C#语言编写,balabala,反正你们听不懂(都是废话,哈哈)

好了我们直接进入正题:
RMSaver这软件是开源免费的,并且极其易用,非常简单,
我还没写完,因此也就没有样品图给大家!不过代码还是有的,,,,
等我写完了会开源的哦,有人喜欢可以直接拿去用:


使用方法:
第一步,下载我们的软件,并将其解压到你的游戏根目录!
第二步,不要用原本的游戏程序exe进入游戏,请使用RMSaver来进入游戏,完事!
然后你就会发现,每次你游戏退出的时候,RMSaver 都会把你的存档备份到云端服务器。

好啦,就说到这里了,这东西还没做完,。。。
估计,,明天差不多就能做完了!
我们的联系方式: 格兰蒂协会!QQ群:664015345!协会网站
作者: guoxiaomi    时间: 2018-6-7 01:47
应该就是一个文件上传、验证、下载的功能吧,算是同行交流一下

1. CPU识别的话意味着换台电脑就无法获取到存档了?
2. 退出时上传存档,可以考虑 hook 掉 exit 方法?
3. 如何确保在传输过程中存档不损坏?




作者: 吕乐乐    时间: 2018-6-7 07:51
guoxiaomi 发表于 2018-6-7 01:47
应该就是一个文件上传、验证、下载的功能吧,算是同行交流一下

1. CPU识别的话意味着换台电脑就无法获取到 ...

1.我会提供一个按钮来手动换电脑存储的
2.直接Timer 检查进程是否存在,如果进程消失,开始保存存档
3.这个没啥说的啊,很简单的,他只是个文件完整性验证机制,哪个都行,比如MD5验证
作者: defisym    时间: 2018-6-7 09:18
这个需要长期维护一个服务器……
如果是登录到steam,只需要在后台设定存储路径和存档文件后缀(不设定默认上传存档路径下所有文件),平台就自动为你搞定了………………………………
作者: 不死鸟之翼    时间: 2018-6-7 10:14
一个字也看不懂的围观群众随意吐吐槽,请务必不要往心里去

0.标题明明是C语言嘛 点进来发现是C++++?
1.既然要做那就把服务端一块发了嘛,然后用户可以选择自己host服务端也可以用你提供的公交车,数据完全可控
2.存档上传这种事儿居然是手写TCP(迫真)楼主服务端怕也是C++++写的,数据持久化怎么做的?
3.存档ID这种事情应该透明一点吧,比如第一次启动写一个Guid.NewGuid()到游戏目录下的配置文件,作为该存档的实例ID,允许用户备份/更改
4.等待游戏进程退出没必要用Timer,(反正你有P/Invoke)你CreateProcess之后PROCESS_INFORMATION里不是有进程句柄嘛,找一个线程WaitForSingleObject这个句柄,退出之后句柄就激发态了。另外存档这种事儿得提供一个flush机制,做一个Ruby的接口,存档完成后立刻获得通知并上传更好。接口怎么做呢,提供一个思路:Ruby不是可以call Win32API吗,你C#不是也有Hwnd的Wrapper吗,你先起一个Message-Only Window然后把窗口句柄用命令行交给游戏主程序,在里面取得命令行Parse出窗口句柄,定义一个消息,用户存档一好就给你的Window SendMessage
5.写代码不女装直播还行?
6.以上内容均为脸滚键盘,不代表本人立场

作者: 吕乐乐    时间: 2018-6-7 10:54
不死鸟之翼 发表于 2018-6-7 10:14
一个字也看不懂的围观群众随意吐吐槽,请务必不要往心里去

0.标题明明是C语言嘛 点进来发现是C++++?

...
C Sharp = C#

作者: hyperzlib    时间: 2018-6-7 14:53
本帖最后由 hyperzlib 于 2018-6-7 14:57 编辑

如果突然断电不就不能存储了吗?
建议还是通过rm脚本dll调用,存档时触发同步事件
而且建议还是加个可以登录的选项,方便多游戏同步。
tcp crc加了吗?如果文件传输错误就直接掉档了
作者: fux2    时间: 2018-6-7 15:33
唔,如何确认产出数据是存档呢,如果只适用于默认存档倒是没什么问题。

快来使用RGD!退出时可以balabala自己敲代码!
作者: 吕乐乐    时间: 2018-6-7 17:01
fux2 发表于 2018-6-7 15:33
唔,如何确认产出数据是存档呢,如果只适用于默认存档倒是没什么问题。

快来使用RGD!退出时可以balabala ...

(自己写判断系统
用以识别RMXP 或者 VX
然后只需要将save文件夹存档就好了
作者: 吕乐乐    时间: 2018-6-7 17:01
hyperzlib 发表于 2018-6-7 14:53
如果突然断电不就不能存储了吗?
建议还是通过rm脚本dll调用,存档时触发同步事件
而且建议还是加个可以登 ...

断电这个也,,太
RM 的DLL我没仔细看过
作者: 2256538860    时间: 2018-6-7 20:02
似乎很不错 MV也能使用吗
作者: 吕乐乐    时间: 2018-6-8 00:56
2256538860 发表于 2018-6-7 20:02
似乎很不错 MV也能使用吗

可以,已匹配的有
xp mv vx
作者: 凝冰剑斩    时间: 2018-6-8 15:03
丢steam不就完了吗,
作者: chd114    时间: 2018-6-8 18:16
就是说本地不给存档文件吗?
那反过来,不联网的情况这个游戏也就没法读档?
作者: 2256538860    时间: 2018-6-9 13:44
吕乐乐 发表于 2018-6-8 00:56
可以,已匹配的有
xp mv vx

很强 谢谢楼主




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