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

Project1

 找回密码
 注册会员
搜索
查看: 4391|回复: 9

[交流讨论] MV网络游戏的讨论

[复制链接]

Lv2.观梦者

梦石
0
星屑
295
在线时间
3 小时
注册时间
2010-8-20
帖子
3
发表于 2016-5-18 13:25:08 | 显示全部楼层 |阅读模式

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

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

x
MV用H5来开发游戏,让我想起HTML5游戏开发引擎COCOS和白鹭。COCOS和白鹭也有编辑器,但用起来太专业,比较适合专业人士。
事实证明COCOS和白鹭都可以开发H5网络游戏(虽说有些游戏比较无聊),那我想MV应该也可以开发网络游戏,至少可以开发那种简单的。

我先说说我的想法,大家可以踊跃参与讨论:

1、要改MV游戏变网络游戏,首先要重写许多程序,因为单机游戏和网络游戏的原理还是不一样的。单机游戏所有的程序处理都是在本机(客户端)操作,不需要服务器。网络游戏除了画面音乐动画(我们叫资源)在客户端(本机)处理,其它的都是服务端去处理的,比如:战斗判断,位置所在,武器合成,任务系统等,都是在服务端处理的,这样的好处很明显就是防止内存修改(就是我们一般说的作弊器),有些网游的特殊性,战斗判断还是在客户端处理的,这类型的网游一般会有变态外挂。

2、要改造那些程序?
存档系统:网游其实是实时保存(当然这个实时保存相对单机游戏说的),所以MV自带的存档程序就可以废除了,那怎么保存我们的进度呢?后面讲。
战斗系统:刚说的战斗系统如果让服务端来处理的话,就要改造,也就说要让服务器来计算伤害或者中毒几率等等。还有就是在服务端保存战斗结果。
地图系统:如果做简单的无脑游戏,地图系统都可以不用,或者少用。国产好多无脑页游,都没有地图系统,只要一点击就开始战斗了,当然也可以有,但有的话就更复杂了,就要考虑是否和其它玩家互动的问题了,那样不光是改造程序的问题了,服务端那头压力也比较大。
任务系统:这个必须有,可以用插件修改,服务端主要处理任务状态和任务奖励,这点也主要是为了防止作弊

3、最重要的是得有个会员系统,注册,登录,说远点,还得有充值,商城,排行,锻造,合成,帮派,家园等等之类的

4、新手引导:地图事件应该能胜任

5、超时判断:这个主要是减轻服务器压力,当然也可以做成自动战斗型(许多无脑页游)

6、技术层面,由于我能力有限,想到的就是用 H5的websocket 和 服务端的 websocket链接,个人感觉这种稍微好些一些,比用JS 去POST的效率要高不少,最主要的是可以一直链接。服务端websocket服务也很多,我建议用PHP+swoole 或者 PHP+workerman,这个PHP扩展开发成本低 效率也很高,在配上PHP7本身的优秀一定会很不错的

以上是我的畅想,不喜勿碰啊~

Lv1.梦旅人

梦石
0
星屑
85
在线时间
56 小时
注册时间
2011-4-6
帖子
18
发表于 2016-5-18 15:32:39 | 显示全部楼层
不知道有没有离题,不过比起大型实时网游,小型限时对战的形式会不会更容易下手?
举个简单的例子比如说捉迷藏,限时十分钟一局,这样就可以暂时不考虑存档问题,任务、地图、战斗都可以用RM本身解决,然后实时交换数据,这版已经技术帝开始做了,感觉可能性还是蛮高的……
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
21771
在线时间
8545 小时
注册时间
2011-12-31
帖子
3360
发表于 2016-5-18 15:57:21 | 显示全部楼层
本帖最后由 tseyik 于 2016-5-18 16:43 编辑

ユーザ間の変数同期プラグイン
http://triacontane.blogspot.hk/2016/04/blog-post_29.html
遊戲中同期/共有各用戸間指定範囲内的開関,変数的値、。
適合使用online要素存在遊戲、
作者可任意時間操作玩字的変数・開関。
0c0b5f2.jpg
 実装使用Milkcocoa(https://mlkcca.com/)、新規利用登録不必要,。プラグインコマンドを事前にひとつ実行するだけです。詳細はヘルプを参照してください。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
295
在线时间
3 小时
注册时间
2010-8-20
帖子
3
 楼主| 发表于 2016-5-18 17:36:42 | 显示全部楼层
iusan 发表于 2016-5-18 15:32
不知道有没有离题,不过比起大型实时网游,小型限时对战的形式会不会更容易下手?
举个简单的例子比如说捉 ...

只要思路对,应该是可以实现的,毕竟有成功的H5页游,最终的问题就是技术问题了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
108
在线时间
1006 小时
注册时间
2008-11-9
帖子
1658
发表于 2016-5-19 20:44:50 | 显示全部楼层
最近也在研究RMMV网游化玩,说说我自己的感觉:

对于服务端选择有很多种,php当然是其中一种,当然我不会这个,我选择的是我工作就会用到的nodejs,对高并发IO处理优秀,但是对CPU密集型操作很无力的一种语言。
接口同样采用websocket,事实上已经实现了简单通信,所以可行性完全没问题,但是仅仅是这样的确不够,网游也分很多种,能够一起聊天也叫网游,能实时交互也叫网游,完全将运算放在服务端也是网游,我对自己的要求就是第二种,毕竟第三种……咳,我技术可能没问题,但是没那么多时间耗在里面啊,网游需要的不仅仅是开发成本,还有维护成本。

基于同样的思考,我想楼主说的大部分这系统那系统其实都不是必需品,公平是建立在游戏已经流畅运行的基础上。楼主也许可以参考很久以前的一个老游戏《秦殇》,虽然游戏性在现在看来已经很烂了,但是本地存档,服务端只负责交互的模式还是很值得借鉴的。不妨在游戏已经完成之后再对公平性徐徐图之,不要一次奢求那么多功能,用一句中二的话说,就是“我到青天时,便知青天如何越”。

点评

然而实际上自己来写的话 一个aoi就已经很烦了 没有中间件 自己从套搞会发现坑只会更大  发表于 2016-5-21 17:10
但是不是我用有色眼镜看人……框架这玩意只适合资深人士玩,我这种时间上不充裕搞不了运维玩不了全栈的人- -,还是乖乖用自己写的更灵活  发表于 2016-5-21 16:22
基于nodejs完整的游戏服务器框架不少 我记得网易就有一个开源的 github上随便搜 接口都是websocket  发表于 2016-5-21 01:09
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
5515
在线时间
2563 小时
注册时间
2012-2-9
帖子
990

开拓者

发表于 2016-5-19 22:46:03 手机端发表。 | 显示全部楼层
本帖最后由 garfeng 于 2016-5-19 22:48 编辑

因为找不到让游戏在终端打印出debug消息的方法,
nodejs的console.log()无效。
mv就是node-webkit
在游戏安装目录里有两个名为nwjs-xxx的文件夹,所以理当可以向node一样打印终端消息。
既然打印不出来,各种需要查看值的数据我就通过js发送到一个本地的server程序,由server打印出游戏传来的数据,并做保存。
这已经是web传输了哈。

php似乎(我并不确定最新的PHP是否支持),对websocket的支持并不好,它是脚本程序,一个脚本完了就是结束了,如果一个脚本为了保持长连接,一直在挂起,或者循环,我觉得有点危险。
各种临时数据,也许一个小时内还会用到的数据,在脚本结束时就消失了,要么你用一些很高大上的缓存模块,比memache,要么你用数据库存,或者你建立共享内存……总之是很烦(个人觉得)这些大量的,并不需要长期存储的,多个进程都可能要用到数据,在php里如何处理,我之前想过,最后实在是跪了,不得不放弃……
在网游里,这样的数据无疑是非常巨大的。你得想办法来解决它。

如楼上所说,推荐nodejs,既然你玩rm的插件脚本,那么你一定能玩nodejs,rm就是跑在chrome上的js,而nodejs则是跑在另一个解释器上的js。(有添加一些其他的东西,见楼上所说。)
这样,服务器和客户端,你用的是同一门语言。写起来会很顺手。
没有深究nodejs,它如何处理websocket并不知道……
但它高并发的设计简直就是前无古人。
它的io操作不阻塞后面的语句执行。

点评

快扔掉nw.js 换electron  发表于 2016-5-21 01:11
其实可以变通一下,rmmv可以引入nodejs的fs模块,写文件形式的日志不错,也可以alert,但是不能换行是个大大的差评  发表于 2016-5-20 20:49
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
295
在线时间
3 小时
注册时间
2010-8-20
帖子
3
 楼主| 发表于 2016-5-21 00:35:01 | 显示全部楼层
garfeng 发表于 2016-5-19 22:46
因为找不到让游戏在终端打印出debug消息的方法,
nodejs的console.log()无效。
mv就是node-webkit

PHP+swoole 就可以实现websocket,效率不比node.js差,许多大公司也在使用,比如:百度 腾讯 阿里 等

点评

用nodejs的价值在于统一技术栈 没必要再折腾php什么的  发表于 2016-5-21 01:12
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
497
在线时间
266 小时
注册时间
2015-12-8
帖子
873
发表于 2016-5-21 01:46:01 | 显示全部楼层
本帖最后由 小叮鈴 于 2016-5-21 01:47 编辑

我覺得要做成網路遊戲,先不必考慮作弊問題了,這樣負擔太大,還是在本機執行就好了

如真要防作弊,建議弄個日誌就好,然後由管理員檢查,處罰作弊帳號,就可以了

這樣一來可以簡單很多了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
705 小时
注册时间
2007-12-23
帖子
874
发表于 2016-5-21 13:27:55 | 显示全部楼层
那还不如直接用JS写个网页游戏呢。现在RMMV默认的脚本把游戏逻辑和UI都糅合在一起放在前端JS了,如果要把这些代码统一搬到后端就几乎要全部重写了。不然的话那些$gameActors、$gameMap这些对象统统暴露在前端,控制台里随便输几句JS命令就是一个很厉害的外挂了。。
买了正版RMMV的同学进来看一下,谢谢~
https://rpg.blue/thread-393237-1-1.html
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3633
在线时间
314 小时
注册时间
2019-8-9
帖子
206

极短22参与

发表于 2020-5-4 20:38:38 | 显示全部楼层
socket.io似乎还好,并且之前@日向悠子做出来过对战,可惜1.01版本....并且服务端丢失......至于联网同屏..........@fanzi@雷玉都做出来了(虽然@fanzi做出来的不是我想象中的对战),我想在高考之后尝试一下
<a herf="#">monster-phone:restart almost completed<a>
old way end new way start nothing care whenI fall in chair
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-28 16:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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