liboxue 2010-01-31
俺不敢说大型网游,是因为市面上那些pc网游我没有经验,不知道怎么做。先说说我经历的网游,wap网游,一款宠物为主的mmorpg,最高峰值在线2600+,现在我在一家sns游戏公司工作,一款类似开心农场的sns游戏日访问用户40万+,当然,这个网游是主程序架构达的非常不错,我才加入不久,正在学习中。我做了一个简单类似转盘的模块,每天将近30万独立用户玩。其实俺以前也做过笔记本连锁专卖店,培训用的商业模拟游戏,局域网玩应该没啥问题,几十人同时在线是可以的,呵呵。
对于wap网游的架构,一般是一个webserver,然后对应一个或者几个数据库,但从架构上讲,不属于分布式的,简单的说,一个用户进入游戏后,他所在的服务器是固定的那一台。类似于这样架构的游戏,应该大部分web网游和pc网游也是如此。当然,可能会把登陆服务器之类的剥离开来,部分功能实现分布式。而sns网游的架构很不一样,sns游戏中面对海量用户,在facebook上,月活跃用户超过10万的应用在1000以上。如果这个换成国内的pc网游,比如说5%的付费率,50元的月均每用户价值,意味着月均25万的收入。呵呵,当然,sns游戏的付费率应该比5%要低,月均每用户价值也要低很多。我目前见到的好几款火一点的sns游戏,在我看来都应该归于单机类,简单的说,就是游戏内用户之间的交互非常少,绝大部分操作一个人即可搞定。早先我认为这是sns游戏发展的早期阶段,后期可能还要回归现在流行的网游那种复杂的模式,经过这段时间的学习,我认为事情不是这么简单。
对于mmorpg,无论是wap网游,web网游还是pc网游,无论是回合制还是实时的,本质的玩法是很接近的。其中有很多团队协作,很多任务不组队根本做不了,没有公会很多东西得不到,战场上往往都有阵营。这些都是密集的玩家交流,我认为是这些东西决定了一个玩家,只能固定于某一台服务器,或者一个游戏区里。否则,几十万玩家同处一个虚拟的大服务器,这里面的通信成本太高了。但是聊天服务器估计就得撑爆,而且玩家根本没法看聊天屏幕。这不是简单的技术架构承载力跟不上的问题,有很多用户体验的问题。
对于wap网友,一台服务器支持2000人同时在线应该不错了。根据一些开私服的经验,一般的私服在线人数达到1000左右就不错了,当然,这和服务器的配置有关。如果把服务器部分做到分布式,可能能做到万人同时在线吧,据说以前冰岛有个游戏公司就是如此。不过最关键还是看一个区或者一个逻辑的游戏服务器,要占几台服务器。这个才是关键,因为这涉及到最终每活跃用户的技术成本。比如说,一台普通1万的服务器,一年的网络通信费用6000,大概16000每年,每月是1300左右的成本,如果对应于2000峰值同时在线,每月的活跃用户应该在2000*5-2000*10之间,取13000,这样每用户的成本是1毛。当然,这是技术上能达到的每用户成本。但往往很多时候服务器都到不了这个峰值2000同时在线的水准。比如这个数在1000,这样,每用户成本就在2毛了。当然,这个2毛对于一般的mmorpg来说,属于成本中较小的部分。所以,虽然技术架构上存在提升空间,但如果运营能力跟不上,可能并不能很好的利用这些技术成本的提升效果。结论是,mmorpg必须达到一定的用户量,有数十台服务器左右,才能较好的整体考虑降低硬件成本,在未达到规模效应之前,这些架构上的性能提升发挥的作用有限。比如就算达到4000人每服务器,需要的技术可能高很多,技术成本的提升就不止5万这个水准了,在没达到10台服务器之前,这技术成本的提升还不如多买几台服务器。所以,对于mmorpg,我认为核心的服务器端架构,在于开发效率和质量上,而不是在性能上,当然,这是在性能满足了2000人同时在线的条件下说的。所以,如果让我再做wap网游或者java手机网游,性能指标不会定的很高,会更多的采用脚本,以及一些能减少代码行数的成熟框架。当然,如果着眼于开发效率和开发质量,团队的成员的组成也会有所变化,更多的强调编码规范,增加一些测试成本。
如果换成sns游戏,比如40万的日活跃用户,这需要10台左右的服务器。而且sns游戏很多是flash,峰值带宽可能要求要高些,还需要cdn这样的技术分担服务器网络压力。这样硬件+网络成本就比较高了。系统是分布式架构。服务器费用10*10000+网络带宽50000+cdn费用50000=22万。同样大家可以看到,服务器购买加托管费用不占多少,但网络费用很吓人。由于一般sns的用户生命周期都较短,sns游戏的玩点决定了用户不太可能玩很久,这样,平摊到每月,每月的成本是2万。每用户的月均费用是0.05元。这个成本相对于我知道的sns游戏的平均用户价值,我认为还是偏高了,所以这个时候性能的提升还是很重要的。而且,大头在网络上。当然,架构的性能也很重要,性能好点差点,可以把初始的硬件成本大大下降。这个性能提升的价值可能到10万左右。因为基本上sns推广成本相对偏低,相对可以较快的让服务器达到它能承受的负载。对于sns的架构,我认为一是把单机游戏做的更耐玩,增加游戏黏性,这需要前期架构较易扩展,二是新的游戏开发周期较短,有较小的试错成本。为什么我不推荐sns游戏像mmorpg那样做大而全的呢?是因为我觉得sns游戏大部分都是非核心用户。就像现在的流行乐坛,陈小春这样的人歌都可能风靡一阵,偶像派盛行,实力派不是那么百战百胜的。梅艳芳,郑秀文这样的歌坛天后在办演唱会的时候,都有百变天后的称号。所以,sns游戏应该像梅艳芳,郑秀文这样的歌星学习,这样才有机会领10年风骚。而且sns游戏应该坚持做有趣的单机游戏,或者增加一点简单网对战,避免公会,阵营这样的设计,这样在系统架构上不会有多大改变。减少架构改变成本。
呵呵,本来我是一个比较偏重于架构性能的,但通过成本分析后发现,服务器性能提升带来的改变的收益真的不算很大,网络的优化可能相对更重要些,比如sns的web页面网游,可能不需要cdn,只需要双线,应该可以省一些网络成本。另外,峰值性能可能还不如峰值网络传输的优化重要。而且大家如果把服务器增加到100台,才发现这样可能省50万,但根据经验,由于摩尔定律,这个50万可能会打个对折。与对应规模的网游的人员工资比起来,真的不算什么。所以,对于规模尚小的网游开发团队而言,开发效率和开发质量是核心问题,对于测试,自动化脚本测试,以及动态部署,快速更新这方面,可能更需要引起重视。