今年的剑侠情缘网络版开发回顾_第1页
今年的剑侠情缘网络版开发回顾_第2页
今年的剑侠情缘网络版开发回顾_第3页
今年的剑侠情缘网络版开发回顾_第4页
今年的剑侠情缘网络版开发回顾_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、剑侠情缘(网络版)-开发回顾 -赵青文章要点: 国内的游戏开发团队都需要烧一些浮躁,都一些踏实,不论在管理方面,还是对游戏的认识,或是技术方面,我们都有很多地方需要学习,改进。 笔者一直觉得中国现在的游戏开发人员赶上了一个好时候-有这么多的人在关注游戏行业,这在以往是无法想象的。不过游戏行业这么火爆并不是应为我们的研发实力有了多大的提高,也不是因为为我们开发出了多少即叫好、又叫座的游戏大作,而是我们碰上了一种好的盈利模式,仅此而已。 策划是中国游戏开发团队最薄弱的一环。我接触过的大部分策划或者眼高手低、不切实际,或者难以沟通,或者没有从开发商业产品的角度出发设计游戏。希望我这样说没有伤害到广大

2、策划朋友的工作热情,其实我提到的这些缺点,每个游戏开发团队中的每个岗位上都会出现,只是游戏策划工作的超乎寻常的重要性,所以才会特别拿出来讨论。 网络游戏中应该提供足够的、方便的玩家和玩家之间的交互方式,玩家在游戏中建立的人际关系越多、越牢固,对这个游戏的粘着度就越高。2003年的1月,我刚刚开发完天王项目。天王是当时我参与开发的众多项目中自己最满意的一个,虽然这篇文字主要是对剑侠情缘网络版(一下简称剑侠)这个项目的回顾,但作为天王的项目经理和主程序,我还是想简单谈谈它。天王有几个第一:它是西山居第一采用外购引擎来开发的游戏,第一个3D游戏,第一个动作类游戏,第一个被我们自己开发人员所认同、并且

3、愿意自发测试的游戏。虽然由于开发时间短、人员少以及我们没有开发3D动作类游戏的经验,它还有很多不足之处,但从开发人员的观点来看,它无疑是一个成功的项目。今后如果有机会,我会把天王的开发历程介绍给大家,不过现在我要回到剑网的正题来。也就在这个时候,已经开发了很长时间的剑网出现了问题,项目延迟非常严重,原项目负责人也离开了西山居。需要指出的是这种大的人员更迭已经发生过一次,最初的主程序和项目负责人在2002年中期已经离开了西山居。公司找到我,希望我来做剑网的项目负责人和西山居的技术总监。对于我而言,这是个巨大的挑战!当时的情况非常不好,一方面是公司过高的期望和过紧的进度要求,一方面是项目组的普遍士

4、气低落和项目进度的失控。不过我还是相信凭着自己项目控制的经验和热情,再加上项目组的开发实力和公司对完成这个项目的决心以及准备投入的人力、物力和财力,是能够完成这一任务的。后来的事实证明我当时的想法是正确的。在最后的几个月中,我们完成了一个不小的奇迹。6月开始内测,9月开始公测,12月开始收费,最高在线人数一路攀升。更重要的是,剑网的成功为公司开发以后的产品积累了很多宝贵的经验。剑网收费后10个月,使用几乎相同的技术,公司就推出了第二个网络游戏封神榜。现在,我把在开发剑网中的经验教训共享出来,希望能让其他的项目管理人员、项目开发人员少走一些弯路。一、项目概述开发规模剑网的开发人员更迭比较频繁,所

5、以统计人数是件比较困难的事情,下面的数字只能反映平均的人数情况 项目初期,共4人,都是程序 项目中期,共25人,6个程序、5个策划、14个美工 项目后期,共44人,12个程序、6个策划、18个美工、8个测试开发时间从2000年9月项目准备开始,到2003年12月项目收费,整个项目的开发时间为39个月。在这段时间内西山居还推出了3款产品新剑侠情缘、月影传说和天王。目标平台PC平台的MMORPG游戏目标市场亚洲地区,尤其是华语地区,包括中国内地、香港地区、台湾地区以及日本、韩国、新加坡等开发硬件 客户端开发硬件为Intel P 800、512M内存、Geforce2 MX400显卡 服务端开发硬件

6、为Intel双至强CPU服务器,2G内存开发软件 程序:MS Visual C+ 6.0 、Intel Vtune、 Visual Assist、 Lua 美术:3Dmax 5.0 、Photoshop 6.0 策划:Microsoft Office系列软件二、主要经验总结从开发周期和投入的人力物力来看,剑网都是西山居自1996年成立以来规模最大、曲折最多的项目。这个项目的开发过程中犯了很多错误,也使我们累积了宝贵的经验。在这里,我先概要地列出一些剑网开发过程中的错误和经验,在下面的讨论中,对它们还将更详细的阐述: 开发网游和开发单机游戏有着本质的不同,他们的可玩性体现在不同的方面。单机游戏的

7、可玩性主要体现在人机互动,网络游戏的可玩性主要体现在人与人的互动;单机的RPG游戏常以精彩的剧情取胜,而网络多人在线RPG游戏则很难制作出丰富的剧情;单机游戏的玩家比较成熟,大多凭兴趣玩游戏,很多网络游戏的玩家在接触网络游戏之前都没有玩游戏的经历,他们只是把玩网络游戏当作交友或者消磨时间的手段。应该在项目开发的过程中时刻提醒自己,我们要开发的是个网游而不是单机游戏。其实并不只是我有这样的想法,在和大宇的姚壮宪先生聊天时他也表达了同样的观点。剑网的开发人员大都没有开发网游的经验,甚至没有玩网络游戏的体验,所以剑网中存在不少单机游戏的痕迹也就不奇怪了。 游戏首先是一个商业产品,技术只是游戏的一个基

8、础,或者说只是更好地表现游戏的手段,而不是目的。但由于金山公司以程序员为主,西山居也不例外,实际上很多项目的关键性决策都是由崇尚技术并追求完美的程序员做出的,所以剑网中有不少华而不实的,却极其耗时的技术研究。比如剑网中的3D显示模式的开发耗时巨大,但是最终由于效率的原因,很少有用户使用。我建议是开发一个大型项目时,最好80%的技术都使用成熟的技术。比如剑网,应该使用剑侠情缘2的引擎,再花些时间研究客户端的换装和服务器端技术,这样剑网至少可以提前一年推出。 网络游戏中稳定的服务器端以及提供便捷的运营、维护、更新、信息统计工具是最重要的几件事情,应该投入最核心的技术人员和充足的时间去研发和测试。但

9、遗憾的是西山居一直没有自己的服务器端的技术人员,而且对此也没有给予充足的重视,最终需要公司其他部门的支持。而很多关键性服务器端的功能也只是在内测前几周才完成,缺乏足够的测试。说了这么多剑网中的不足,并不是说剑网的开发过程一无是处。西山居相对于很多国内的开发团队和小组,更加负责,更加用心,更加细致,更加专业。这些不足说明了国内的游戏开发整体上还处于一个初级阶段。三、项目起源2000年的时候,图形化网络游戏万王之王开始进入中国,金山公司也是候选的代理、运营商之一。但是文字Mud已经流行了很长一段时间,国外也有了UO之类的网络游戏大作,但是万王之王是第一部进入国内的图形化商业化的网络游戏。我当时也参

10、与了测试这个游戏。即使在当时的技术水平下,我也觉得万王之王制作得比较粗糙,最让我不可理解的是,他的同步策略大部分都是客户端的命令需要等待服务器的验证返回,这样的做法使得客户端玩家的行为极为不流畅。这也是金山最终没有运营这款游戏的原因之一。当时,由于盗版和制作水平的问题,国内的游戏市场非常萎靡。西山居好像金山的一根鸡肋,虽然开发了不少经典的单机游戏,但由于盈利太少,和其他国内游戏公司一样,一直处在奄奄一息的状态。之后,万王之王在大陆的运营取得了出乎意料的成功,也给公司高层极大的震动,自主研发一款网络游戏提上了日程。如果从那时起公司就投入足够的人力、物力,潜心完成一款网络游戏,那么也许现在金山会占

11、有国内网络游戏市场一半以上的份额。但遗憾的是由于决策的失误,推动力的不足,以及精力过度的分散在其他游戏的研发上,使得剑网的推出至少延后了2年,在竞争如此激烈的网络游戏市场,对一个产品来说,这么长时间的延迟几乎是致命的。我一直觉得中国现在的游戏开发人员赶上了一个好时候,现在有这么多的人在关注游戏行业,这在以往是无法想象的。不过游戏行业这么火爆并不是因为我们的研发实力有了多大的提高,也不是因为我们开发出了多少既叫好、又叫座的游戏大作,而是我们碰上了一种好的盈利模式,仅此而已。网络游戏杜绝了盗版,又给千万个网络终端前孤独、无聊的人们一种有趣的交流,沟通手段,所以它的成功是一种必然。四、设计目标开发初

12、期,设定了一些我们开发的原则和最终目标,有些是对的,有些事错的。每个决定当时都引起了西山居内部激烈的讨论:1、用即时战斗模式还是回合制战斗模式。我们最终采用了即时战斗模式,相对于回合制模式,这样的开发难度稍大些。不过我觉得这不是一个错误的决定。 2、否采用超大、无缝连接的地图。开发人员都有个美好的愿望,希望开发出超大的无缝连接的游戏世界,让成千上万的用户可以方便的沟通,交流。很明显这是一个听起来很好,但做起来很难,而且是我们决定了要这样做,更可惜的是最终我们花了不少时间也没能实现这个目标。这是个错误的决定。3、我们的核心技术人员都是暗黑破坏神的忠实玩家,也非常推崇它所使用的技术,模仿它做一个类

13、似的客户端几乎获得了所有人的支持。最终我们完成了一个类似于它客户端,但显示效率差了很多,而且花掉我们太多人力和精力。这是个错误的决定。4、我们曾经有过一个听起来不错的想法,在开发剑网的同时,利用现成的资源和技术再开发一个单机游戏。最终这个目标没有实现,我们低估了开发一个单机游戏所要投入的精力。这是一个非常错误的决定。五、过程模型剑网采用的是快速原型的软件工程模型。这种方式比较适合游戏行业的特点,以及我们项目具体的特点。一般来说,我们在第一个里程碑通常只会投入核心技术人员完成一个技术原型,以解决规划中的游戏所需功能中可能的技术难点。这一点非常重要。很多游戏开发到中后期才会发现还有不少技术门槛需要

14、跨越,以至项目最终延期。同时我们在第一个里程碑会细化策划的设计,在第一个里程碑结束的时候形成一个比较系统的设计文档,这个文档越细致、越系统、越接近游戏最终的设计方案,游戏开发的过程就越顺利。经过这么多年游戏的研发,我深刻认识到,策划是一个游戏的灵魂,是一个游戏能否成功的关键。好的策划需要深厚的功底,需要出色的沟通和表达能力,需要很强的逻辑推理能力,需要优美的文字功底,需要创新精神同时更需要熟悉游戏业务,了解终端用户的心理。好的策划是项目经理、产品经理、制作人的合适人选。不过遗憾的是策划是中国游戏开发团队最薄弱的一环。我接触过大大部分策划或者眼高收低、不切实际,或者难以沟通,或者没有从开发商业产

15、品的角度出发设计游戏。希望我这样说没有伤害到广大策划朋友的工作热情,其实我提到的这些缺点,每个游戏开发团队中的每个岗位上都会出现,只是游戏策划工作的超乎寻常的重要性,所以才会特别拿出来讨论。第一个里程碑中还会确定核心游戏资源的数据模式,并且完成大部分游戏编辑工具。一般情况下这些工具包括:地图编辑工具、图素编辑工具、模型(图片)编辑工具、特效编辑工具、脚本编辑功能等。剑网的第一个里程碑完成得非常不顺利,实际上很多应该在第一个里程碑完成的功能知道项目进展到最后阶段才完成。我们只在第一个里程碑中完成了客户端显示和换装系统的技术研究。而非常重要的服务器端的技术研究只是泛泛而过,没有形成一个实用的、具评

16、估价值的技术演示,这是剑网整个研究过程最失败的一点。同时由于客户端过于复杂,地图编辑工具的研发也延迟到了项目接近完成时才最终完成。如果能够顺利完成第一个里程碑,我们会在第二个里程碑中扩展已有的功能,添加核心游戏逻辑,形成一个游戏的原型。第二个里程碑完成后,已经可以看到游戏的雏形。这时候如果发现游戏的可玩性不够,策划还可以做比较大的调整。这个里程碑中美工需要开始利用已完成的编辑工具,来编辑游戏资源,虽然延迟了不少时间,但剑网第二个里程碑基本完成。不过遗憾的是,我们仍然没有把服务器端技术原型的研发当作重点,底层网络模型、服务器架构、同步策略都在项目的最终阶段成为项目的拦路虎,以至公司需要抽调其他部

17、门的核心骨干,集体攻关。后两个里程碑,主要是游戏的内容制作阶段和测试阶段,也就是在第一、第二的原型基础上根据策划的设计,不断完善游戏的功能,不断产品化。这两个阶段也非常重要,大部分游戏功能、可玩性以及游戏的细节都是在这期间完成的。由于技术上已经不存在障碍,所以一般情况下,即使这个阶段出现延迟,也不会对整个项目产生太大的影响。从软件工程的角度看,剑网做得比较好的地方是非常注重测试环节,测试介入到了项目开发、运营的全过程。这在西山居以往是不曾有的,也是我极力推动的一件事情。在我刚刚担任西山居技术总监时,整个部门没有一位全职测试人员,而剑网结束时,我们的测试人员和程序、策划人员的比例基本上达到了1:

18、2,测试人员在剑网的后期开发过程中发挥了至关重要的作用,尤其是当剑网内测初期,公司缺少运营人员,测试人员就承担了大部分的运营工作,保证了剑网内测的顺利进行。综合起来,特别需要注意的是: 要在第一个阶段,也就是技术原型阶段完成真正重要的技术的研究和验证,确定项目的可行性,降低项目的风险。 第一个阶段中,策划提供的设计文档体现的是对美工和程序的具体需求。设计文档应当尽量要做到系统化、清晰。 游戏是一个数据驱动的产品,开发阶段需要生成大量的游戏数据。自主研发的游戏编辑工具非常重要,它的易用性会直接影响美工、策划的工作效率。六、技术要点金山公司的创始人求伯君先生是个优秀的程序员,公司的核心骨干也大都是

19、程序员出身。因此,崇尚技术,追求完美的程序员文化深深的影响着每一位金山员工。在西山居中,程序员虽然在人数上只占到了很小的比例,但作为金山公司的一个事业部,其思考问题的方式和文化氛围和金山公司一脉相承,都是以程序为主导的。这种以程序员为主导的开发方式在西山居延续至今,有利有弊。从目前的实际情况看,弊大于利。游戏行业技术门槛较高,技术更迭较快,许多技术甚至直接推动了个人计算机硬件的更新换代。无可否认,技术史游戏实现的基础。同时目前国内缺乏专业的策划人员,所以以程序作为游戏开发的主导,起码在目前的实际情况下,是一个正确的选择。但是毕竟最终决定游戏优劣的是游戏的可玩性。从长远来看,培养和寻找合适的策划

20、人员,由他们担任制作人,将游戏开发从技术主导转变为游戏性主导,是我们努力的方向。相对于单机游戏、网络游戏的技术难点更多。一般情况下,我们会将网络游戏中使用的技术划分成如下几个方面:1、通用底层功能包括游戏中各个模块都会使用的一些基础模块,大致上有: 文件管理模块 日志功能模块 内建的调试机制 内存管理机制 性能统计分析模块 数学、物力模块2、客户端的显示客户端的表现力和效率是游戏能否成功的一个重要决定因素,以一个3D游戏为例,大致上的功能有: 贴图管理模块 插件模块 模型、动画管理模块 场景管理模块3、游戏逻辑游戏逻辑指策划提出的与游戏性相关的各种功能模块,对于网络游戏,大致上有: 战斗系统

21、角色人工智能(AI) 组队功能 交易系统 人际关系系统 帮会系统等等4、服务器逻辑 网络游戏中多台不同职能的服务器支撑起一个完整的游戏世界,他们之间的通讯和逻辑决定了网络游戏的稳定性和负载的上限,网路游戏中不同职能的服务器大致上有: 账号服务器 游戏逻辑服务器:完成游戏中角色AI计算,战斗中的伤害计算经验分配等游戏逻辑相关计算的服务器 游戏逻辑集群总控服务器:协调各个游戏逻辑服务器的一个总控服务器,类似于一个局域网中的网关。 角色数据库服务器 5、内部开发工具的研发游戏开发过程中,美术、策划会使用大量的我们内部开发的工具来制作、装换并生成最终游戏数据,大致上有: 场景编辑工具 图素编辑工具 模

22、型编辑工具 贴图编辑工具 特效编辑工具 界面编辑工具 脚本编辑工具具体到剑网,开发过程中的技术难点主要集中在两大方面:客户端的显示和换装系统剑网的客户端需要支持两种显示模式:纯二维的显示模式以及类似于暗黑破坏神的半三维的显示模式。这给剑网的研发带来了很大的困难。首先是资源格式的问题,同样的资源格式可能适合二维显示,但不适合三维显示。事实上我们低估了这块工作的技术难度。剑网后期资源格式已经定型,大部分游戏资源已经生成,这时我们才发现提高三维显示效率唯一可行的方式是重新规划游戏资源的格式和组织方式,但这对于已经进入一个研发后期的项目来说几乎是不可能的。另外,由于剑网涉及到复杂的换装系统和数量众多的

23、角色类型,既能达到策划的需求,又能尽可能降低游戏客户端资源的容量。这也是个难点。服务器端的集群结构、网络底层通讯模型、游戏逻辑的同步策略服务器的稳定性和流畅性是网络游戏玩家最关心的几个问题之一。大部分网络游戏的服务器结构都可划分到如下两类,单游戏服务器结构和游戏服务器群组结构。采用单游戏服务器结构的比如奇迹,一个游戏世界由一台服务器支撑。这个种结构比较简单,每个游戏世界承载的玩家数量比较少,但是正是由于简单,所以比较容易达到稳定、流畅的要求。剑网采用游戏服务器群组结构,由多台游戏逻辑服务器协同运作,构成一个完整的游戏世界。比如我们的一个完整的游戏世界由80个场景构成,单一服务器无法将这80个场

24、景一起载入,我们就把这些场景分别放在8台游戏服务器上,每台大致有10个场景,这8台服务器协同工作,构成一个完整的游戏世界。这种结构设计复杂,承载的用户数可动态调整,要达到稳定、流畅的设计目标,需要付出更大的努力。同时,选择一个高效的网络底层通讯模型也是我们的一个主要工作。不同的网络通讯模型适合不同的应用,网络游戏对承载的用户数量要求比较高,针对这种具体的需求,我们在Windows平台下采用了IO完成端口的模型;在Linux平台下,采用了实时信号量的网络通讯模型。(由于剑网大部分的开发人员都不熟悉Linux下的编程方式,所以我们开发的大部分时间都在Windows平台下进行的,直到大部分功能都已完

25、成后才由专人移植到Linux平台下,所以我们有两套网络底层库。最终剑网的服务器采用的是Linux。)这里我想重点谈谈同步策略。同步在网络游戏中是非常重要的,它保证了每个玩家在屏幕上看到的东西大体是一样的。解决同步问题的最简单方法就是把每个玩家的动作都向其他玩家广播一遍,但是这样做会占用比较多的带宽,所以我们要考虑一种比较高效的同步策略,其中涉及如下几个问题: 同步的范围,即一条网络消息要向那些客户(玩家)传输 同步的内容,即多长时间同步一次 如何解决网络延迟带来的问题 如何优化,减少带宽的消耗 如何防止作弊由于篇幅有限,这里只具体谈谈同步的内容: 1、同步内容的分类 命令同步,即时发送。命令同

26、步指游戏中的一些瞬间行为,比如玩家和角色的行走,玩家和角色见的攻击,都可视为游戏命令。命令可能是客户端发起,也可能是服务端发起。 状态同步,按照一定平率,可以区分细节度发送,只有服务端发起。 由于网络延迟,游戏中同步的内容如果只有命令同步,很容易在游戏进行一段时间后,服务端和客户端的状态偏差比较大,所以需要间隔一段时间,同步一些关键的状态,校正客户端和服务端的差别。 2、逻辑对像属性的细分: 游戏由不同的逻辑对像构成,比如玩家对像,角色对像。每个逻辑对像中会包含大量的属性,我们需要在同步时区别对待这些属性。 不同步的属性,服务端和客户端都可根据本地的配置文件载入,比如角色的名字,角色的速度等。

27、 需要在对象创建时同步一次,以后不会改变的。比如角色的类型。 需要频繁同步的属性,比如角色的生命。 3、逻辑对像行为的同步策略 客户端自己决定,不需要同步给其他客户,属于客户端专有对像的行为,比如用来播放特效的特效对像,以及用来增加客户端表现力的各种小动物,这些对象不会对影响游戏的进行,所以不需要同步。 客户端发起命令,在发给服务器的同时,为了增加本客户端的流畅度,自己预测命令执行的结果。服务器端将使用同样的算法执行命令。这种策略的缺点是发起命令的客户和其他客户在执行命令上有个Ping值的延迟,比如玩家的行走命令。 客户端发起命令,发给服务器,但本地不执行,等待服务器处理或者确认,返回后再执行,这样所有的客户端行为基本一致,也不可能出现作弊

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论