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

Project1

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

[原创发布] 【RGSOS】基于 SAE 的网络插件 v1.0

[复制链接]

Lv4.逐梦者 (版主)

梦石
0
星屑
17836
在线时间
1895 小时
注册时间
2011-7-8
帖子
2761

开拓者

跳转到指定楼层
1
发表于 2019-2-21 15:59:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 guoxiaomi 于 2019-2-24 23:32 编辑

RGSOS (Ruby Game  Server On SAE) 是一款开源的网络插件,为 RPG Maker XP / VX / VA 量身定做,并提供了免费的服务器。
服务端当然是世界上最好的语言编写。

项目主页:https://gitlab.com/gxm/rgsos
项目Wiki:https://gitlab.com/gxm/rgsos/wikis/home
↑↑↑ Wiki 里有更详细的介绍和使用说明,点一下不会吃亏 ↑↑↑
B站视频教程:https://www.bilibili.com/video/av44588685,声音没调好,所以请打开字幕静音观看~

下载范例立即体验: rgsos-v1.0.zip (5.9 MB, 下载次数: 128) ,进一步的开发请先阅读 Wiki 和范例内的事件。
注:
1. 打开工程使用 F12 测试模式运行,注意控制台的输出
2. 若范例在windows上不能正常运行,尝试使用兼容模式
3. 复制范例双开测试时,不要复制游戏目录下的 user 文件
4. 其他情况见 Wiki-FAQ

RGSOS 主要特点:
1. 高性能的服务端,并利用公钥隔离不同游戏之间的数据
2. 游戏启动时,RGSOS 在后台自动完成注册、登陆、同步数据的功能
3. 以“群组”的形式同步变量和文件,加入群组即可修改变量
4. 在网站上速览游戏、群组内数据,方便监控、调试
5. 友好的客户端脚本,只需很少的代码即可实现对变量、文件的读写
6. 自带地图位置同步和打字聊天的功能

相比于其他的网络插件,RGSOS 的优点:
1. 服务端运行在 SAE 上,性能高,收费低,易布署
2. 使用 Websocket 传递数据,延迟低
3. 客户端脚本兼容性好,配置简单,范例详细

RGSOS 的缺点:
1. 弱服务端,只负责缓存数据、转发消息,主要游戏逻辑在客户端执行
2. 没有使用关系型数据库,K-V 型数据库无检索功能
3. 只有变量、文件同步的功能,其他的功能需要开发者自己完成
4. 不同 Windows 版本的兼容性问题,以及 SAE 的诸多限制

如有任何问题都可以在此贴下回复,更多的介绍请看 Wiki

评分

参与人数 7星屑 +200 +7 收起 理由
zyf722 + 1 tql
66RPG梦 + 1 精品文章
MCCF + 1 精品文章
百里_飞柳 + 1 塞糖
唯道集虚 + 200 + 1 猫叔!
SixRC + 1 塞糖
正太君 + 1 塞糖

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *

Lv4.逐梦者

梦石
0
星屑
18556
在线时间
6495 小时
注册时间
2009-3-15
帖子
3541
2
发表于 2019-2-21 18:28:01 | 只看该作者
WIKI没说怎么用范例工程进入TEXT的服务器里..

点评

范例工程内已经写好了密钥(在main.rb里),注册游戏会获得密钥,替换掉密钥和网站并删掉旧的user文件  发表于 2019-2-21 18:59
生成user文件之前复制两份范例工程,然后双开范例工程分别F12测试就能进蛤...  发表于 2019-2-21 18:59
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
5169
在线时间
3001 小时
注册时间
2013-12-26
帖子
3129
3
发表于 2019-2-21 19:02:05 | 只看该作者
猫叔忒厉害了蛤...得好好学习研究一下...

评分

参与人数 1+1 收起 理由
guoxiaomi + 1 来,互相伤害

查看全部评分

聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7635
在线时间
875 小时
注册时间
2016-9-20
帖子
590
4
发表于 2019-2-22 10:37:53 | 只看该作者
為什么XP版当遊戏加載到开头会彈Critical Error C00000005 at address 7737e49B , 然后点了确定就关

点评

试一下XP SP3兼容模式  发表于 2019-2-22 11:28
还有你这个說的还是很多細节都没有,新手一头冒水,太复杂了233  发表于 2019-2-22 11:22
就是重敋也没用, 一直是这样看來用不了  发表于 2019-2-22 11:20
vx 和vx版就直接黑屏什么都没  发表于 2019-2-22 11:08
很小的概率会出现bug,通常重新开一次游戏或者重启电脑就可以了,这锅是ashttp的  发表于 2019-2-22 11:05
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
17836
在线时间
1895 小时
注册时间
2011-7-8
帖子
2761

开拓者

5
 楼主| 发表于 2019-2-22 11:23:00 | 只看该作者
本帖最后由 guoxiaomi 于 2019-2-22 11:57 编辑
soulsaga 发表于 2019-2-21 18:28
WIKI没说怎么用范例工程进入TEXT的服务器里..


我wiki里没有表述清楚,https://rgsos.applinzi.com 上确实有我创建的游戏 test,所以连上 test 需要提供创建时候的公钥,这个只有创建者(我)才拥有,所以你是连不上的。这就是所谓的“隔离”,同一份公钥访问同一份数据,因为公钥不同,不同的游戏之间数据是不互通的。

从 main.rb 中可以看出,目前范例里的游戏名是 client-xp/vx/va,服务器地址是 http://rgssser.applinzi.com。访问这个网站,确实能看见有这几个游戏。但是 rgssser 是我的开发环境,你自己的游戏需要去 https://rgsos.applinzi.com 上创建。

比如你在 https://rgsos.applinzi.com 上创建了 test2,服务器会返回 test2 的公钥。test 和 test2 这两个游戏虽然在同一个服务器上,但数据是隔离的。你拿到 test2 的公钥之后,就把范例中 main.rb 里提到的公钥和服务器地址换成 test2 的公钥和 http://rgsos.applinzi.com

这样你再进行后续的开发并发布后,所有你发布的游戏副本,因为拥有相同的公钥,访问的是同一份数据,就实现了“数据共享”。但其他人的游戏里不会有你的公钥,就不会导致“串线”的问题(被其他人发的非法数据导致游戏崩溃)。

注意在 main.rb 中的服务器地址是 http 开头,但是从浏览器中访问网页必须是 https 开头。

试着创建一个游戏吧。
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
17836
在线时间
1895 小时
注册时间
2011-7-8
帖子
2761

开拓者

6
 楼主| 发表于 2019-2-22 11:37:52 | 只看该作者
本帖最后由 guoxiaomi 于 2019-2-22 11:39 编辑
ppspssss 发表于 2019-2-22 10:37
為什么XP版当遊戏加載到开头会彈Critical Error C00000005 at address 7737e49B , 然后点了确定就关 ...


使用方法在 https://gitlab.com/gxm/rgsos/wikis/home#client 中写好了,把范例的脚本导入到自己的游戏中,然后替换掉公钥就能正常运行。

当然前提是范例能正常运行……如果无法打开范例就没办法了,先按照FAQ尝试正常运行范例吧。

范例的事件里提到了如何共享变量和文件,你可以打开事件页看看到底需要做什么。你如果只想上传、下载文件,在地图 4 中提到了如何完成文件的上传和下载。

点评

会編程都一般不用RMXP了 , RMXP都是入門是没有經驗或少經驗的人而設的, 会用的一种是會編程但想玩玩花式(比如你)  发表于 2019-2-22 21:39
不同解决方案各有优劣,等你提升了编程水平,再回来看看这个吧  发表于 2019-2-22 13:43
你的这个用XP模式能进去了,但由于复杂,我还是不选这个了,你这个还是需要一定水平,像我这种只会单句socket收發的,还是自己DIY一个  发表于 2019-2-22 12:39
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
17836
在线时间
1895 小时
注册时间
2011-7-8
帖子
2761

开拓者

7
 楼主| 发表于 2019-2-24 23:35:05 | 只看该作者
在B站上传了视频教程:https://www.bilibili.com/video/av44588685

评分

参与人数 1+1 收起 理由
正太君 + 1 视频好评,声音好听...

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
18556
在线时间
6495 小时
注册时间
2009-3-15
帖子
3541
8
发表于 2019-2-26 19:58:07 | 只看该作者
聊天没有聊天框吗?

点评

或者配合公共事件,当聊天信息到达时打开一个开关,并把信息的具体内容赋值到某个变量里,然后此公共事件自动执行显示信息……这样?  发表于 2019-2-26 21:44
你用的XP吧?在map_chat=方法里不操作@net_chat属性,而是改为设置$game_temp.message_text  发表于 2019-2-26 21:42
哦,如果强行让对话窗口出现,可能会打断玩家的正常游戏……  发表于 2019-2-26 21:41
如果想使用聊天信息列表的形式而不是显示在角色头上,应该修改scene_map_net的map_chat=方法  发表于 2019-2-26 21:40
是对话窗口显示信息..  发表于 2019-2-26 21:31
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
4
星屑
3307
在线时间
325 小时
注册时间
2017-11-10
帖子
341
9
发表于 2019-3-26 15:30:01 | 只看该作者
本帖最后由 BCJT 于 2019-3-26 15:36 编辑

请问怎么样可以实现两个玩家之间回合制对战呀?
比如RM默认的战斗系统:1.指令选择阶段–当两个玩家都选择完指令确认后,2.系统再开始回合–战斗演出阶段。如此循环……
还有,战斗中玩家各自控制的角色都是数据库中[我方的角色]。
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
17836
在线时间
1895 小时
注册时间
2011-7-8
帖子
2761

开拓者

10
 楼主| 发表于 2019-3-26 17:11:24 | 只看该作者
本帖最后由 guoxiaomi 于 2019-3-26 17:14 编辑
BCJT 发表于 2019-3-26 15:30
请问怎么样可以实现两个玩家之间回合制对战呀?
比如RM默认的战斗系统:1.指令选择阶段–当两个玩家都选择完 ...


非常困难,建议放弃。RM的默认战斗设计的时候没有考虑联机对战的可能,很多地方写的并不好。

原则上你可以共享每回合的行动数据,但是会被默认战斗里的随机数、$game_party等东西弄得头皮发麻。

最好的解决方案反而是不使用默认的战斗系统,写一个更简单的更适合联机的战斗系统,比如使用卡牌、骰子这些……

如果非要用默认战斗,那也要先抛弃原有的Scene_Battle,重新设计一个适合联机的 Scene_Battle。

我这么说是因为我真的尝试过……

评分

参与人数 2+2 收起 理由
唯道集虚 + 1 塞糖
BCJT + 1 塞糖

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2020-7-7 19:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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