Project1

标题: 在sae上搭建联机服务器 [打印本页]

作者: guoxiaomi    时间: 2017-8-8 11:09
标题: 在sae上搭建联机服务器
本帖最后由 guoxiaomi 于 2017-9-13 00:33 编辑

服务器搭建在 sae 上,已经开源供大家使用。

项目地址:http://git.oschina.net/rmxp/rgss_server

部署方法:http://git.oschina.net/rmxp/rgss_server/wikis/SAE_HELP

客户端使用帮助:http://git.oschina.net/rmxp/rgss_server/wikis/RMXP_HELP

请去项目地址下载最新的客户端和服务端文件!下载方法,如果不会用 git,就直接点橙色的【克隆/下载】,选择【下载 zip】即可获得整个的打包文件。

此贴也会定期更新新的客户端来方便大家偷懒 ~ 比如这里: rmxp20170913.zip (1.25 MB, 下载次数: 282)

主要更新内容,一开始会更新比较频繁,也请大家尽量提出建议,我把常用的功能都做出来 ^_^:

20170913 - 优化了 PHP (un)serialize 的代码,并且添加计算 sha-1 的 dll(这个dll有点大……)
20170813 - 增加了触发事件的功能(事件同步),具体请看左上角房间新增的事件内容。
20170811 - 给 region 增加了 vars_t 和 vars_p 两个变量,具体请看右上角房间新增的事件内容。
20170810 - 客户端使用 aes.dll 来完成加密过程,现在数据加密不会降低帧率(默认60帧)。



因为刚刚测试完,相关的文档还不够详细。但是已经尽我所能写的更加开放,方便添加新的内容。对原有的系统改动已经尽可能小了,重写的方法也写出来了原因,请查看工程。

安装了 rmxp 的朋友可以下载 client 试玩,目前提供以下功能:

1. 自动注册,登陆,根目录下会生成 user 文件用于识别用户

2. 保存玩家个人信息,并在登陆的时候下载到本地

3. 用一个 npc 事件模拟其他在线玩家,同步位置并且显示玩家信息

4. 聊天功能,附加的其他功能可以显示动画,改变玩家形象和设置名称(见 2,名称会保存在服务器)

5. 网络商店,商店支持打折功能,并且会在晚上 12 点将昨天收购的物品上架

6. 云存档,就算删除了本地的存档,也会自动下载云存档

7. 联机战斗,两个玩家可以把自己的队伍数据上传到服务端,然后开始联机战斗, 30s 没有收到对方的指令信息会判定获胜

8. 每日登陆奖励,每日首次登陆会获得奖励

9. 定时任务,见 5,每晚 12 点执行定时任务,包括推进服务端的日期计数,将商店收购的物品上架等

10. 后台任务,以廉价的“http访问页面自身”的形式实现了周期性执行一段代码(见 sae-io.php 中的 SAE_THREAD 类),目前用于判断玩家是否掉线,因为无法保持长连接

目前这个客户端部署在我自己的服务器上。

由于当前的项目的服务端和客户端是完全公开的,大家也可以对客户端进行修改以测试功能,但是请保持友善……不要频繁访问服务端

可以修改 region 使得你的游戏和其他人的游戏数据分开,这样可以依托我这个服务器提供部分功能

对于一般的弱联网,只是聊天室或者桌游什么的,多人解谜小游戏,应该稍加改动就可以使用了。

最好还是自己在 sae 上搭建一个服务器。

其他的内容介绍请打开客户端试用~

特别鸣谢:不死鸟之翼,他发布的 ashttp.dll 提供了简易的异步进行 http 访问的功能。链接在这里:https://rpg.blue/forum.php?mod=viewthread&tid=397260
(360 会对 ashttp.dll 报毒,但是我不认为不死鸟之翼会做这种没有回报的事情。如果无法添加信任,请卸载360~)

旧的版本




有任何 bug 反馈,或者想增加新的功能,咨询此脚本的用法,挂靠我的服务器提供网络服务的,请在此留言?我上 6R 比看邮件还勤……
以及尽管我已经尽量写的简单,但是网络功能本身就有一定的门槛,对这个脚本的改动需要一定的编程知识。或者你可以找我呀~


作者: imsy    时间: 2017-8-8 12:30
非常棒的系统,支持支持
作者: pporder    时间: 2017-8-8 15:46
亲测有趣!!!流畅度什么的都还不错,基本功能也都有了~而且有秘制萌的小彩蛋!【你说你一个客户端为什么戏这么多!!!
作者: 戴迪    时间: 2017-8-8 18:36
版主,没看懂这个是干什么的{:2_265:}
作者: jiushiainilip19    时间: 2017-8-8 18:48
这是让RM进行网络化吗!{:2_248:}
作者: pporder    时间: 2017-8-8 21:11
jiushiainilip19 发表于 2017-8-8 18:48
这是让RM进行网络化吗!

算是个模版?可以把你写好的单机rpg变成联机版的~
作者: guoxiaomi    时间: 2017-8-8 21:41

感谢 TXBD 和 porutia 两位的试玩!
作者: b565185756    时间: 2017-8-8 22:20
这个宇宙如果有神,他一定姓郭名大人!!!
作者: yang1zhi    时间: 2017-8-9 13:21
本帖最后由 yang1zhi 于 2017-8-9 16:33 编辑

网络化太有诱惑力了


作者: soulsaga    时间: 2017-8-9 14:09
这个可以做啥?
作者: porlutia    时间: 2017-8-9 15:57
emmm   聊天气泡显示的太快 有时候会没看见  可以加个类似于聊天框?的东西查看别的玩家说过的话  
作者: guoxiaomi    时间: 2017-8-10 00:38
试着编译了一个dll用于进行aes的加解密,加解密不再拖累帧率了,请去开源中国下载最新的客户端吧!
下载方式:点开主楼的项目地址,右边有橙色的“克隆/下载” 选择下载zip就能把整个项目打包下来。其中client/rmxp就是rmxp的客户端~
作者: guoxiaomi    时间: 2017-8-11 12:53
yang1zhi 发表于 2017-8-9 13:21
网络化太有诱惑力了

嗯,我在服务端增加了新的功能,现在每个 region 有独立的永久变量 vars_p 和临时变量 vars_t。使用方法见新的客户端的右上角房间。
这里提一下,如果变量的修改不频繁,可以不周期性的访问网络要求同步数据。可以利用 user 的 handle 或者是 chat 信息来触发:
比如,如果修改了变量,就发送一句聊天信息:“刷新变量”,然后其他人如果收到此信息,就不更新在聊天框里,并且访问服务器刷新一次变量。这样可以减少服务器的开销~
作者: 张咚咚    时间: 2017-10-16 23:16
感觉非常不错啊,独立性,兼容强,简单易懂,如果函数、key的注释多点就更好了
作者: 怪蜀黍    时间: 2018-3-15 19:13
AsHttp-Win32异步HTTP通信库(DLL)0.3版本更新顶帖。
增加获取响应的HTTP头部的接口
优化部分接口的名称和参数
增加重定向开关
修复Windows XP系统下崩溃的问题
修复超过线程上限时崩溃的问题
                                                             by 不死鸟之翼
0.1版本在WINXP会崩溃,我只是帮忙把0.3版本整合进这个系统。
Client.rar (1.17 MB, 下载次数: 20)
作者: maotouying    时间: 2018-3-18 14:13
请问报错了该怎么办。。在联网战斗ready之后选择开始的时候就弹了出来

作者: ikki    时间: 2018-3-24 21:04
希望版主大大可以坚持下来,10年前的一个联机项目被搁浅了。。。真心希望有能继续完成的。
作者: 陈大帅帅帅哥    时间: 2018-3-25 02:28
这是怎么回事?

改了
NPC_SHIFT = 1000 # 事件 ID 的偏移量
STORAGE_MAP = 7 # 默认 npc 的地图
NPC_EVENT_ID = 1 # 默认 npc 的 id
就会这样子
作者: 陈大帅帅帅哥    时间: 2020-3-9 22:17
不知道大大还更不更新?目前发现联机对战时如果双方速度一样,会导致两个客户端的攻击先后顺序不同
作者: 陈大帅帅帅哥    时间: 2021-7-22 03:26
大佬你好,我最近在用您的系统进行pvp测试角色平衡,想要挂靠您的服务器,不知道方便吗




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