中国网页游戏论坛 » webgame研究所 » 抛砖引玉:如何在Web页上实现同步多人游戏
web游戏-领主OL
2008-3-5 09:50 笨三
抛砖引玉:如何在Web页上实现同步多人游戏

如:同时三个人在同一游戏界面进行游戏,并可以看到对方的动作与情况。

个人想法:
由于Web并不是平常C/S模式的推送服务,所以只能通过一定时间的请求状态来刷新页面,但是,如果频繁地请求又怕服务器压力太大,苦恼中

1.采用Flash,每隔一段去请求一个最小的状态字节以确定是否要请求大量的更新操作
2.采用Ajax
3.。。。还没有想好。


希望大家能讨论讨论,把即使战略类游戏也能做成星际一样的多人战斗感觉
能少去只能一对一固定模式的方法

也希望这个讨论能够为现有Web形式的网页游戏开展一个新的操作空间

2008-3-5 11:23 jackyz
呵呵,正在啃这个难题,刚有个雏形,要实际测试通过了才知道是不是可用。
等我的 webgame 探出一条路了再给大家共享吧。

2008-3-6 08:32 zhangfresh
flash用socket连接服务器,可以在需要更新的时候(如对方向服务器发送了移动指令),服务器主动发送一个更新命令。不要客户端时时询问有没有要更新的,相当于C/S模式。flash的socket可以采用80端口连接,这是我昨天验证过的。

2008-3-6 12:06 ot512
客户端要防止外挂.....

2008-3-11 10:24 driverpro
期待一楼的研究有结果,关注这个问题很久了

2008-3-12 09:21 cosin
Ajax 的 Keep Live 连接,持续推送也可以实现的

2008-3-12 12:23 Aaskicker
废话一句,同步多人不如设置行为模式,如果有那闲情逸致盯浏览器的那不如去玩一般网络游戏好了。

2008-3-12 18:06 蜡笔小黑
n025.gif 这样搞个人觉得还不如用C/C++写控件。

2008-3-14 00:00 laoyu2003
看做的游戏类型和在线人数规模而定。没有最好的,只有最合适的方案。
Flash是一条途径,常连接到服务器,没有对服务器冲击的问题
AFLAX是Web为主,flash为辅的方案
AJAX poll 是纯web方案
目前的纯webgame,好像连Ajax都可以不用

2008-3-16 17:56 笨三
Web游戏其实是一种比较尴尬的游戏模式

一方面,它是属于网络游戏,而网络游戏最主要一个吸引人目的的是:交互性,团队性
再一方面,由于Web模式本身的限制,它又比较难进行一种交互的方法

所以,很尴尬啊很尴尬。。。。

除了现在Web游戏中那些战略回合式的(像TR,三国什么的),个人RPG(像最终幻想,ROSE),好像Web游戏已经没有什么新的模式出来了。。。

期待每个人能发表一下自己的想法。:)

2008-3-16 18:18 Aaskicker
World of Dungeons.
Runescape,这个应该说不是纯粹的网页游戏了,完全没有网页的特性。


Edit PS:尴尬不尴尬完全看你对网页游戏的理解,硬把网页当普通网络游戏那么弄就人人玩Runescape去吧
可是不是人人都有那能力的。

[[i] 本帖最后由 Aaskicker 于 2008-3-16 18:21 编辑 [/i]]

2008-3-18 07:32 榕龙
[quote]原帖由 [i]zhangfresh[/i] 于 2008-3-6 08:32 发表 [url=http://www.cwebgame.com/redirect.php?goto=findpost&pid=3300614&ptid=168491][img]http://www.cwebgame.com/images/common/back.gif[/img][/url]
flash用socket连接服务器,可以在需要更新的时候(如对方向服务器发送了移动指令),服务器主动发送一个更新命令。不要客户端时时询问有没有要更新的,相当于C/S模式。flash的socket可以采用80端口连接,这是我 ... [/quote]
愿意提供测试成功的例程吗?

2008-3-18 07:37 榕龙
[quote]原帖由 [i]Aaskicker[/i] 于 2008-3-16 18:18 发表 [url=http://www.cwebgame.com/redirect.php?goto=findpost&pid=3384844&ptid=168491][img]http://www.cwebgame.com/images/common/back.gif[/img][/url]
World of Dungeons.
Runescape,这个应该说不是纯粹的网页游戏了,完全没有网页的特性。


Edit PS:尴尬不尴尬完全看你对网页游戏的理解,硬把网页当普通网络游戏那么弄就人人玩Runescape去吧
可是不是人人 ... [/quote]

请问其如何完全去除网页特性的?通过Flash?

第二段话我不理解

2008-3-18 09:33 Aaskicker
[quote]原帖由 [i]榕龙[/i] 于 2008-3-18 07:37 发表 [url=http://www.cwebgame.com/redirect.php?goto=findpost&pid=3396094&ptid=168491][img]http://www.cwebgame.com/images/common/back.gif[/img][/url]


请问其如何完全去除网页特性的?通过Flash?

第二段话我不理解 [/quote]

Java Platform, 纯粹就是普通的3D网络游戏(粗看风格非常接近UO),Runescape在国外较有名气,网络要求也不高,想知道详情请用Google。

第二段意思就是既然打定方向开发网页游戏了何必追求像一般网络游戏那样靠拢呢,网页有网页的特性,遵从其特性开发才是正解。如果有像Runescape那种技术,那自然随便了。不过这样游戏又如何定位?“可供低配置玩家玩的网络游戏”?又或者是“没有客户端的神奇MMORPG”?可是即使是Runescape也是靠Java平台支撑的,更何况真要玩这种类型的不如直接玩大(指客户端)游戏去。

2008-3-19 09:28 driverpro
“没有客户端的神奇MMORPG”n025.gif

有何不可?

2008-3-19 09:43 yxkkk
等你一个IE占CPU100%的时候你就知道有何不可了n062.gif

2008-3-19 09:57 Aaskicker
World of Dungeons是使用[color=#ff0000]类似于[/color]龙与地下城规则的游戏,7小时一遍自动地下城,纯文字,所有计算服务器上进行,你要做的只是做好战斗设置与7小时选一次地下城,完全不影响现实,个人很欣赏这种模式。

2008-3-19 10:46 ╳゛押韵↘悲傷〣
回复 #17 Aaskicker 的帖子

同意!我也觉得这种模式不错

2008-4-8 15:41 北里闻箫
不管从技术上还是理论上,都可以实现的。关键问题是效率问题.

两种方式:
1、纯web方式
用javascript写一个客户端处理函数库.
比如生成一个角色,确定位置,处理动画,触发事件等等。

数据传输用ajax.1秒到5秒更新一次数据。

服务端同样需要处理客户端处理的数据,包括与客户端的同步处理。

问题:用javascript写一个客户端处理函数库,与用C写一个客户端程序一样困难,甚至更困难。而效率和安全性。。
与其这样麻烦,不如直接用C、C++写好了。。那就不叫网页游戏了。。

2、Flash方式。
用flash的长连接处理xml数据。

一样需要javascript够猛。

类似的实现现在比较多。

问题:flash是商业软件,虽然目前是免费的。
一用flash,很多地方就限制了。比如右键。。

现在好多flash前台的游戏。只能走走路。。坐下。。没意义啊。

2008-4-8 17:08 迎风而上
通过DWR自带的方法可以使服务器端直接调用客户端的JS程序,这样可以避免不断刷新给服务器端造成的压力,但是同样的问题还是需要在服务器端维护客户端在线情况,通过JS轮循象服务器端发送数据包。
有什么好的办法可以通过HTTP协议来做一个即时的网页聊天室呢?

2008-4-8 23:10 北里闻箫
仅用http几乎不可能。
不断刷新而产生的服务器压力是不可避免的。最多就是优化。

最多最多建立http长连接。那样的话,不但服务器压力大,连客户端压力也大了。

2008-4-9 15:18 ajddnsc
*** 作者被禁止或删除 内容自动屏蔽 ***

2008-4-10 05:30 榕龙
[quote]原帖由 [i]Aaskicker[/i] 于 2008-3-18 09:33 发表 [url=http://www.cwebgame.com/redirect.php?goto=findpost&pid=3396585&ptid=168491][img]http://www.cwebgame.com/images/common/back.gif[/img][/url]


Java Platform, 纯粹就是普通的3D网络游戏(粗看风格非常接近UO),Runescape在国外较有名气,网络要求也不高,想知道详情请用Google。

第二段意思就是既然打定方向开发网页游戏了何必追求像一般网络游戏那 ... [/quote]

原来还是祭出java了,我一直觉得在客户端开个java虚拟机很慢影响用户体验而且安装率很低,没有flash 9x%那么神奇。

Flash又有个右键的问题我还没重视到,谢谢楼上提醒。不过非MMRPG或即时战略右键应该不是大碍,不太需要方便的通过光标实现快速走动/攻击这样的应用。

我始终认为http长连接的方式不靠谱,服务器端要一直占着一个连接和线程资源,客户端也很容易类似死锁傻等。

楼上有人问http js 聊天室,很早就实现过了,js轮询就可以,当时还没提ajax概念,我记得没用上xmlget,因为那时中文编码还有问题。

2008-4-10 05:43 榕龙
楼上的话我不太理解

2008-4-10 05:44 榕龙
[quote]原帖由 [i]迎风而上[/i] 于 2008-4-8 17:08 发表 [url=http://www.cwebgame.com/redirect.php?goto=findpost&pid=3554445&ptid=168491][img]http://www.cwebgame.com/images/common/back.gif[/img][/url]
通过DWR自带的方法可以使服务器端直接调用客户端的JS程序,这样可以避免不断刷新给服务器端造成的压力,但是同样的问题还是需要在服务器端维护客户端在线情况,通过JS轮循象服务器端发送数据包。
有什么好的办 ... [/quote]


DWR是?

2008-4-13 00:22 钢七连工作室
兄弟你知道打1局星际有多大流量的数据交换吗?
20分钟
流量总值是大楷5M 我测试过的
很恐怖的

2008-4-13 01:02 arcsam
我一直渴望着Adobe自己出款浏览器``

2008-4-14 17:46 magicwind
[quote]原帖由 [i]arcsam[/i] 于 2008-4-13 01:02 发表 [url=http://cwebgame.com/redirect.php?goto=findpost&pid=3587620&ptid=168491][img]http://cwebgame.com/images/common/back.gif[/img][/url]
我一直渴望着Adobe自己出款浏览器`` [/quote]

air也可以做成浏览器,[url]http://get.adobe.com/air/[/url]

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.