CoffeeCat's IT Blog

浅谈网页游戏

前阵子我一直在研究基于B/S架构的网络游戏开发(网页网络游戏),并写了一个Web版的盛大富翁客户端Demo。今天看到盛大网络出了一款基于B/S架构的网游:纵横天下,我感到很兴奋,同时,我也想谈一下个人的看法。

传统的网络游戏是C/S架构的,通俗点说,就是大家在玩游戏之前,先要安装游戏的客户端,然后才能进行游戏,也就是客户端(Client)/服务器(Server)模式。而B/S架构是什么意思呢?B就是Browser,浏览器,也就是说,大家只要打开浏览器,登陆到相关的网站,就可以玩的网游。

B/S架构的网络游戏,它最大的好处就是大家可以在任何联网的电脑上玩游戏,只要这台电脑上有浏览器。我曾经卸载过Vista,因为在Vista下不能玩盛大富翁。但如果盛大富翁变成B/S架构了,那我就算安装了Linux,我也可以放心的玩了。对于开发者而言,他们开发跨系统的网游代码会更加方便,因为几乎每个操作系统上都有浏览器,他们就不必去关心Linux下创建Socket的代码是怎么样的,他们也不必去考虑到底是用OpenGL还是DirectX。

当然,B/S架构的网游也有很多不成熟的地方,我下面列举几点

1:通讯方式有待改善
B/S游戏在通讯方面的能力,比C/S要弱很多,主要还是因为浏览器的通讯方式:我们发送一个URL给服务器,然后接收服务器返回的网页信息,连接就结束了,最后浏览器把网页信息显示出来。这样的通讯过程没有持久性可言,而网游的通讯最好是有持续性的,这样才可以有效降低服务器的负荷,提高带宽利用率,并使程序架构更合理,通讯更安全。

2:客户端技术功能有限
按照目前的技术,B/S架构的网游,一般只使用Javascript或Flash Action Script做客户端,Javascript尽管功能强大,但是运行效率能力很低,大家可以用一下Google的记事本,当你处理一篇比较长的文章时,你就会感到很恼火,因为很卡,CPU占用率一直是100%。另外,Javascript的绘图能力不好,不过用Javascript做交互性控件还是不错的选择。Flash的的计算能力也有限,但是Flash有很多比Javascript出色的地方,首先它可以全屏,然后,它的通讯方式要比Ajax好,最后,Flash的2D绘图能力相当出色。用Flash开发B/S架构的网游客户端是最好的选择,纵横天下也是这样做的。不过,我还是会先使用JS进行开发,因为我喜欢JS,而且JS的潜力无限,无需安装插件。我的盛大富翁网页版Demo也完全是用JS写的。个人猜想,以后的B/S架构的网游,可能是JS+Flash的整合,各取所长。

3:安全性问题
Javascript代码是完全公开的(虽然可以加密),Flash也有反编译工具,这样,客户端的代码就很容易被克隆,进而产生外挂程序,破坏游戏的公平性,并对服务器产生危害,不过这个问题目前只能通过增加验证机制,对游戏数据进行加密来解决。



我刚刚去体验了一下盛大的纵横天下,感觉做的还不错,是比较优秀的战略网游,不过不是很生动,还是以文字为主,没有很靓丽的视觉效果,上手不太容易。毕竟是第一款网页游戏,我相信今后会越做越好的。

纵横天下给了我不少动力,我会抓紧研究B/S架构的网络游戏,尽早推出我开发的网页游戏,给大家带来网络游戏的全新体验。

P.S:我下学期的毕业设计课题正好是“基于B/S架构的网络游戏开发”,能选到自己喜欢的课题真是开心。 ^_^

Ferris
2008-1-22




2007-1-28
注:今天我了解到Flash的Actionscript3.0提供了良好的,基于TCP/IP协议的socket支持,这样就可以为网页游戏提供良好的通讯支持,当然,就不会存在我上文中提到的无持久性的问题。而且,Flash可以和Javascript交互,看来,Flash将注定成为网页网络游戏技术 的主角。


posted on 2008-01-22 16:10 CoffeeCat 阅读(1040) 评论(6)  编辑 收藏 引用

评论

# re: 浅谈网页游戏 2008-03-16 21:00 windever

flash确实是一个非常好的载体~,但是我认为flash作为未来网络游戏的载体不太可能~首先flash不是实时演算的产品,它的基础数据还是需要下载~,另外对于3d演算能力,至少我没看见~
在我看来,现在主要是js的库函数太少了,能够完成的功能非常有限,所以重新加函数库非常有必要,你觉得呢?  回复  更多评论   

# re: 浅谈网页游戏 2008-03-16 22:01 CoffeeCat

@windever
首先要感谢您表达您的宝贵想法~呵呵~
有一点我不太明白,什么是实时演算产品?
目前用Flash作大型的网络游戏是不行的,Flash的3D演算能力确实不能满足做3D网络游戏的需要。目前Flash还是着重于2D图形的绘制,不过不知道Adobe会在以后为我们带来什么惊喜~
Adobe为最新版的Flash开发了新的虚拟机AVM2,比以前版本的运算效率要高很多,并且重构了AS3.0,使ActionScript完全面向对象,在类架构上也有独到之处~Flash已经从以前做动画的软件,逐步向开发Web应用程序(也可以叫做RIA)转变了。我觉得,用Flash开发2D的网络游戏,完全是可以尝试的~
至于数据下载,我觉得Flash应该也有数据缓存机制吧,这样,第2次玩应该就不需要再下载基础数据了~我对此还不太了解,呵呵,不过我知道js能缓存图片和声音~
至于js,您所说的库函数太少,是一个限制js发挥的重要因素。现在,想要获得更多js功能,就必须加载第3方库~我比较喜欢mootools~
制约js的还有一个重要因素就是语言本身。目前,js还不属于面向对象的语言,以后,js的发展趋势就是面向对象~AS3.0已经实现了ECMAScript4,同样属于ECMAScript的Javascript,应该不会落后太多~不过由于Javascript内置在浏览器里,最终发展速度,还是要看各个浏览器开发商的态度~不过正是因为Javascript在不同浏览器中存在着差异,所以用js开发web应用程序没有flash好。  回复  更多评论   

# re: 浅谈网页游戏 2008-03-17 10:51 windever

呵呵~~我的qq是8952344,我们q上聊吧~
我们开发bs架构的网络游戏,第一个就是让玩家不需要安装客户端软件,flash做出来的东西可大可小,用做做休闲游戏还不错~
我曾经看过一个报道,一个玩家用js做了一个网页版本的星际争霸~实现的效果非常逼真~我的毕业设计也是这个题目,我也想通过这次机会研究下js  回复  更多评论   

# re: 浅谈网页游戏 2008-03-18 23:20 CoffeeCat

恩,好的~~已经加了~
用js做星际争霸很有意思哈~~js是一门很让人感到愉快的语言,学了js会爱上它,如果能用js写自己喜欢的游戏那真是太美好了,呵呵~~  回复  更多评论   

# re: 浅谈网页游戏 2008-06-12 12:08 mingk

我现在也是做b/s的网络游戏,也不是用flash做的,用到js,感觉js还是非常强大的东西,值得研究  回复  更多评论   

# re: 浅谈网页游戏[未登录] 2009-04-21 17:55 游子

你还在读书啊,不错不错。  回复  更多评论   

只有注册用户登录后才能发表评论。
<2008年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

公告

常用链接

留言簿(183)

随笔档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜