腾讯游戏游戏 > ChinaJoy2011 > 正文

腾讯技术分享实录:游戏后台开发九问

2011年07月30日18:49腾讯游戏[微博]
字号:T|T

[导读]腾讯游戏讯,7月30日消息,第九届中国游戏商务大会网页游戏论坛30日在上海浦东嘉里大酒店展进行相关主题论坛活动。

30日,在上海chinajoy嘉里酒店进行了游戏开发者大会,腾讯游戏的研发部助力总经理聂志明进行了演讲。

他为大家演讲的题目是“游戏后台开发中的九个选择”,他解释,使用这个标题的原因,是因为我们在生活中总会遇到很多选择,这个道理同样适用在游戏开发中。

这九个选择分别是:

第一,选择什么样的架构。

第二,选择单线程还是多线程。

第三,如何在游戏中使用脚本。

第四,如何处理网络通讯。

第五,如何处理游戏通信协议。

第六,如何设计存储结构。

第七,如何设计网络同步。

第八,如何定义性能基准。

第九,如何在不同项目间进行代码复用。

聂志明先生在他的PPT里详细地为大家讲解了这九个问题,具体情况请参看演讲实录。

以下是演讲实录: 聂志明:大家好!我们现在开始演讲,我先自我介绍,我是腾讯游戏研发部助理总经理。我今天的题目是“游戏后台开发中的九个选择”,为什么用这个题目?在生活中我们有很多选择,对这些选择的不同处理方式会决定不同的品质,我们在游戏开发里面会遇到很多选择,我今天说九个,但不一定每个人都碰得到,我在这里会把一些经验给大家分享一下。

首先介绍一下在腾讯开发跟别的公司会有不同,在我内部遵从两个岗位,每个公司里面是按照不同模块来分。为什么会这样分?前台是通过便,后台讲究的是不便,我们不是追求新的技术,而是解决问题。

下面我开始演讲,这是北京最盛名的一座桥,每次都不知道怎么走,越来越复杂。我们每天都会遇到很多选择,所以导致人也不是很愉快。

我现在来讲九个选择,从Q1到Q9,后面一一按照这个顺序做个阐述。

第一,选择什么样的架构?其实是SNS特点决定的,不同的特点决定不同的架构。玩发围绕的是玩家之间偏真实的关系链,位置对玩家是不重要的,玩家之间没有物理上的距离概念,SNSGame是大世界的模式,通用大世界方案的系统必须平行发展。MMO的特点,前几年是一个发展重点,很多人了解也不是很多,它的特点是存在世界地图,位置很重要,有地形概念,每个玩家都有自己的物理坐标。交互频繁,逻辑复杂,交互的实时性要求高,严重依赖于预先设计的游戏内容。小世界有小世界的好处。第一易于就近部署及,减轻国内网络复杂与MMO对网络要求高的矛盾。大家知道网络有很多问题,大家知道问题也解决不了。对MMO来讲,是一个很高的类型,所以会用小世界。

通过分区服务,降低了因为架构导致的运营问题的严重性,小世界的内部在架构上也需要有一定的可伸缩性,这取决于游戏的设计。并不是所有的小世界只有一台服务器搞定,因为它的元素、它的特点对它也会有不同的要求。

在我选择这种架构的时候,我们会有原则,选择什么样的架构取决于游戏自身的设计,这取决于某些特点,并不是所有服务都有同样的需求,并不是大世界就好,小世界就不行。我们不从纯技术角度追求大世界的架构,大世界需要游戏内容的支持,通常美术策划无法支撑百万在线的世界,这是最根本的原因。大世界在架构上有困难,但这是部分不可克服的。

我讲大家非常熟悉的一个例子,通常最复杂的大区概念,大区通常是做帐号,服务器在服务器里面按角色区分。线,就是有的游戏有,有的游戏没有,在这些线里面只是为了扩展这个世界的流量上线,线目前来说只是一个方便,这是一个样对复杂的示意部署视图(PPT)。

我们看一个架构,如果展开来讲,左边是一些辅助服务,右边的Worldsvr像公会的那种会放在这个里面,加在服务器上面,不同的游戏会有不同的处理。这是一个简单的示意图,在不同的游戏里面会有不同的区分。

第二,选择单线程还是多线程?不同的公司会有不同的做法,这个问题并不是所有人都碰到,也有个概率,但是大家也会有争论。争论的原因,通常是双方关注的重点不同,单线程程序的执行只有一条主线,容易跟踪、调试和定位。我们腾讯也不是一定说要这样选择,我们理由非常理由,单线程加异步模式可以提供更好的性能,我们会选择单线程模式。现在我们游戏开发周期很长,在漫长的运行周期里面每周都会更新,交接过程中会有问题的,使用多线程容易导致问题。这个时候我们会进行一些处理,我们对里面的要求角度来看,运行的周期很长、节奏很快,为了达到要求我们可以想更简便的方式。

新形势,对我们也是有一些影响,现在有一些四核以上的CPU出现,这个时候我们会尝试把一些通用的服务,把相对固定的进程变成简单化,这是一个新趋势。

这是适应新趋势的原则,只在必须的时候才使用多线程,如果使用了多线程,尽量减少线程间的交互需求,这样我们就好把握。

相关专题:

ChinaJoy2011
订阅

推荐微博:

注册微博
[责任编辑:yamiye]
如果你对游戏频道有任何意见或建议,请到交流平台反馈。到微博反馈

企业服务

推广信息