注意:我们先对将要讨论的问题加以界定,“论游戏服务器”涉及到的范围只限服务器实现技术和实现过程中需要注意的事项。
为什么要有游戏服务器?
回答这个问题的方法是反证手法,假设没有游戏服务器会怎么样?一般人都回答说游戏者之间不能互动。当然只要懂点技术的人会说没有服务器我们可以用P2P呀,比如什么PSP不是都用ad hoc技术吗?没看见我们俩“玩怪物猎人”正high着吗?OK,你说的没有错。
那么我提出一个问题,如果对方作弊了怎么办?比如修改数据。好的,P2P的支持者肯定会说我们每个机器上都需要有个反作弊系统,那么反作弊系统所依赖的对方的原始的正确的数据从何而来?难道不是从对方的机器上获得吗?那么如果这个所谓“正确”的数据你就信任了?要知道如果前提条件都是假的那么后面的一切反作弊行为都是徒劳的。关于这点倒可以思考一些“第三方机构”的存在的必要性,比如淘宝,游戏服务器在整个系统中其实也担当着“第三方”的角色,当然其功能远不止如此。
我们再看看第一个答案“游戏者之间不能互动”,这个答案其实是被第一个答案否定了,也就是说即使不用游戏服务器,我们一样可以互动,那就是P2P的方式,但是P2P的方式一个比较不好的地方,那就是资源消耗过多。打个比方,如果一场游戏你需要和N的人玩,那么你得打通N个电话(不沟通如何互动?所以必须得打电话,当也可以写信),然后不断地将一份信息重复N次通过电话告知对方,这得付多少电话费才行,即使不为人父母你也能立刻体会一句话重复N遍有多累。所以我们开始妄想,如果有个东西能减少电话数,那该多好。好了这时候服务器就出现了,它让每个游戏者只用打一个电话,那就是打给服务器,然后服务器会将某游戏者的信息转告给其他游戏者。
让我们再专业一点看待服务器和P2P两种方式,我们可以将一般网游的结构称为星型结构,而P2P游戏网络称为全联通网络。星型结构有中心节点, 那中心节点就是游戏服务器集群,P2P游戏网络则没有中心节点;星型结构的成本主要由中心节点的建设者买单,P2P游戏网络的成本由游戏者共同买单。星型结构可以有效地监管游戏世界,P2P做不到(除非共产,除非人无恶念)。
所以不管以商业还是公平性和降低成本为目的,服务器的存在必要性显然很大,而星型游戏网络架构这也可以认为是“一种以合乎达尔文进化论的方式演变出来架构”,优胜劣汰,架构也是如此。
尾:写了大量废话,只为说明游戏服务器的存在的必要性,话说回来其实完全可以不用写这么多,只要一句“存在即合理”我想就能否定写这篇文章的必要性;
下一篇文章将尝试讲述游戏服务器的组成部分,请不用过分期待。