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

下载本文档

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

文档简介

剑侠情缘 网络版 剑侠情缘 网络版 开发回顾开发回顾 赵青赵青 文章要点 文章要点 国内的游戏开发团队都需要烧一些浮躁 都一些踏实 不论在管理方面 还是对游戏 的认识 或是技术方面 我们都有很多地方需要学习 改进 笔者一直觉得中国现在的游戏开发人员赶上了一个好时候 有这么多的人在关注游 戏行业 这在以往是无法想象的 不过游戏行业这么火爆并不是应为我们的研发实力有了多 大的提高 也不是因为为我们开发出了多少即叫好 又叫座的游戏大作 而是我们碰上了一 种好的盈利模式 仅此而已 策划是中国游戏开发团队最薄弱的一环 我接触过的大部分策划或者眼高手低 不切 实际 或者难以沟通 或者没有从开发商业产品的角度出发设计游戏 希望我这样说没有伤 害到广大策划朋友的工作热情 其实我提到的这些缺点 每个游戏开发团队中的每个岗位上 都会出现 只是游戏策划工作的超乎寻常的重要性 所以才会特别拿出来讨论 网络游戏中应该提供足够的 方便的玩家和玩家之间的交互方式 玩家在游戏中建立 的人际关系越多 越牢固 对这个游戏的粘着度就越高 2003 年的 1 月 我刚刚开发完 天王 项目 天王 是当时我参与开发的众多项目中 自己最满意的一个 虽然这篇文字主要是对 剑侠情缘网络版 一下简称 剑侠 这个项 目的回顾 但作为 天王 的项目经理和主程序 我还是想简单谈谈它 天王 有几个第一 它是西山居第一采用外购引擎来开发的游戏 第一个 3D 游戏 第一个动作类游戏 第一个 被我们自己开发人员所认同 并且愿意自发测试的游戏 虽然由于开发时间短 人员少以及 我们没有开发 3D 动作类游戏的经验 它还有很多不足之处 但从开发人员的观点来看 它 无疑是一个成功的项目 今后如果有机会 我会把 天王 的开发历程介绍给大家 不过现 在我要回到 剑网 的正题来 也就在这个时候 已经开发了很长时间的 剑网 出现了问题 项目延迟非常严重 原 项目负责人也离开了西山居 需要指出的是这种大的人员更迭已经发生过一次 最初的主程 序和项目负责人在 2002 年中期已经离开了西山居 公司找到我 希望我来做 剑网 的项目 负责人和西山居的技术总监 对于我而言 这是个巨大的挑战 当时的情况非常不好 一方 面是公司过高的期望和过紧的进度要求 一方面是项目组的普遍士气低落和项目进度的失控 不过我还是相信凭着自己项目控制的经验和热情 再加上项目组的开发实力和公司对完成这 个项目的决心以及准备投入的人力 物力和财力 是能够完成这一任务的 后来的事实证明 我当时的想法是正确的 在最后的几个月中 我们完成了一个不小的奇迹 6 月开始内测 9 月开始公测 12 月开始收费 最高在线人数一路攀升 更重要的是 剑网 的成功为公司 开发以后的产品积累了很多宝贵的经验 剑网 收费后 10 个月 使用几乎相同的技术 公 司就推出了第二个网络游戏 封神榜 现在 我把在开发 剑网 中的经验教训共享出来 希望能让其他的项目管理人员 项 目开发人员少走一些弯路 一 项目概述一 项目概述 开发规模开发规模 剑网 的开发人员更迭比较频繁 所以统计人数是件比较困难的事情 下面的数字只 能反映平均的人数情况 项目初期 共 4 人 都是程序 项目中期 共 25 人 6 个程序 5 个策划 14 个美工 项目后期 共 44 人 12 个程序 6 个策划 18 个美工 8 个测试 开发时间开发时间 从 2000 年 9 月项目准备开始 到 2003 年 12 月项目收费 整个项目的开发时间为 39 个 月 在这段时间内西山居还推出了 3 款产品 新剑侠情缘 月影传说 和 天王 目标平台目标平台 PC 平台的 MMORPG 游戏 目标市场目标市场 亚洲地区 尤其是华语地区 包括中国内地 香港地区 台湾地区以及日本 韩国 新 加坡等 开发硬件开发硬件 客户端开发硬件为 Intel P 800 512M 内存 Geforce2 MX400 显卡 服务端开发硬件为 Intel 双至强 CPU 服务器 2G 内存 开发软件开发软件 程序 MS Visual C 6 0 Intel Vtune Visual Assist Lua 美术 3Dmax 5 0 Photoshop 6 0 策划 Microsoft Office 系列软件 二 主要经验总结二 主要经验总结 从开发周期和投入的人力物力来看 剑网 都是西山居自 1996 年成立以来规模最大 曲折最多的项目 这个项目的开发过程中犯了很多错误 也使我们累积了宝贵的经验 在这 里 我先概要地列出一些 剑网 开发过程中的错误和经验 在下面的讨论中 对它们还将 更详细的阐述 开发网游和开发单机游戏有着本质的不同 他们的可玩性体现在不同的方面 单机游 戏的可玩性主要体现在人机互动 网络游戏的可玩性主要体现在人与人的互动 单机的 RPG 游戏常以精彩的剧情取胜 而网络多人在线 RPG 游戏则很难制作出丰富的剧情 单机游戏的 玩家比较成熟 大多凭兴趣玩游戏 很多网络游戏的玩家在接触网络游戏之前都没有玩游戏 的经历 他们只是把玩网络游戏当作交友或者消磨时间的手段 应该在项目开发的过程中时 刻提醒自己 我们要开发的是个网游而不是单机游戏 其实并不只是我有这样的想法 在和 大宇的姚壮宪先生聊天时他也表达了同样的观点 剑网 的开发人员大都没有开发网游的经 验 甚至没有玩网络游戏的体验 所以 剑网 中存在不少单机游戏的痕迹也就不奇怪了 游戏首先是一个商业产品 技术只是游戏的一个基础 或者说只是更好地表现游戏的 手段 而不是目的 但由于金山公司以程序员为主 西山居也不例外 实际上很多项目的关 键性决策都是由崇尚技术并追求完美的程序员做出的 所以 剑网 中有不少华而不实的 却极其耗时的技术研究 比如 剑网 中的 3D 显示模式的开发耗时巨大 但是最终由于效 率的原因 很少有用户使用 我建议是开发一个大型项目时 最好 80 的技术都使用成熟的 技术 比如 剑网 应该使用 剑侠情缘 2 的引擎 再花些时间研究客户端的换装和服务 器端技术 这样 剑网 至少可以提前一年推出 网络游戏中稳定的服务器端以及提供便捷的运营 维护 更新 信息统计工具是最重 要的几件事情 应该投入最核心的技术人员和充足的时间去研发和测试 但遗憾的是西山居 一直没有自己的服务器端的技术人员 而且对此也没有给予充足的重视 最终需要公司其他 部门的支持 而很多关键性服务器端的功能也只是在内测前几周才完成 缺乏足够的测试 说了这么多 剑网 中的不足 并不是说 剑网 的开发过程一无是处 西山居相对于很多国 内的开发团队和小组 更加负责 更加用心 更加细致 更加专业 这些不足说明了国内的游戏 开发整体上还处于一个初级阶段 三 项目起源三 项目起源 2000 年的时候 图形化网络游戏 万王之王 开始进入中国 金山公司也是候选的代理 运营商之一 但是文字 Mud 已经流行了很长一段时间 国外也有了 UO 之类的网络游戏大 作 但是 万王之王 是第一部进入国内的图形化商业化的网络游戏 我当时也参与了测试 这个游戏 即使在当时的技术水平下 我也觉得 万王之王 制作得比较粗糙 最让我不可 理解的是 他的同步策略大部分都是客户端的命令需要等待服务器的验证返回 这样的做法 使得客户端玩家的行为极为不流畅 这也是金山最终没有运营这款游戏的原因之一 当时 由于盗版和制作水平的问题 国内的游戏市场非常萎靡 西山居好像金山的一根 鸡肋 虽然开发了不少经典的单机游戏 但由于盈利太少 和其他国内游戏公司一样 一直 处在奄奄一息的状态 之后 万王之王 在大陆的运营取得了出乎意料的成功 也给公司高层极大的震动 自主研发一款网络游戏提上了日程 如果从那时起公司就投入足够的人力 物力 潜心完成 一款网络游戏 那么也许现在金山会占有国内网络游戏市场一半以上的份额 但遗憾的是由 于决策的失误 推动力的不足 以及精力过度的分散在其他游戏的研发上 使得 剑网 的 推出至少延后了 2 年 在竞争如此激烈的网络游戏市场 对一个产品来说 这么长时间的延 迟几乎是致命的 我一直觉得中国现在的游戏开发人员赶上了一个好时候 现在有这么多的人在关注游戏我一直觉得中国现在的游戏开发人员赶上了一个好时候 现在有这么多的人在关注游戏 行业 这在以往是无法想象的 不过游戏行业这么火爆并不是因为我们的研发实力有了多大行业 这在以往是无法想象的 不过游戏行业这么火爆并不是因为我们的研发实力有了多大 的提高 也不是因为我们开发出了多少既叫好 又叫座的游戏大作 而是我们碰上了一种好的提高 也不是因为我们开发出了多少既叫好 又叫座的游戏大作 而是我们碰上了一种好 的盈利模式 仅此而已 网络游戏杜绝了盗版 又给千万个网络终端前孤独 无聊的人们一的盈利模式 仅此而已 网络游戏杜绝了盗版 又给千万个网络终端前孤独 无聊的人们一 种有趣的交流 沟通手段 所以它的成功是一种必然 种有趣的交流 沟通手段 所以它的成功是一种必然 四 设计目标四 设计目标 开发初期 设定了一些我们开发的原则和最终目标 有些是对的 有些事错的 每个决 定当时都引起了西山居内部激烈的讨论 1 用即时战斗模式还是回合制战斗模式 我们最终采用了即时战斗模式 相对于回合制模式 这样的开发难度稍大些 不过我 觉得这不是一个错误的决定 2 否采用超大 无缝连接的地图 开发人员都有个美好的愿望 希望开发出超大的无缝连接的游戏世界 让成千上万的 用户可以方便的沟通 交流 很明显这是一个听起来很好 但做起来很难 而且是我们决定 了要这样做 更可惜的是最终我们花了不少时间也没能实现这个目标 这是个错误的决定 3 我们的核心技术人员都是 暗黑破坏神 的忠实玩家 也非常推崇它所使用的技术 模仿它做一个类似的客户端几乎获得了所有人的支持 最终我们完成了一个类似于它客户端 但显示效率差了很多 而且花掉我们太多人力和精力 这是个错误的决定 4 我们曾经有过一个听起来不错的想法 在开发 剑网 的同时 利用现成的资源和技 术再开发一个单机游戏 最终这个目标没有实现 我们低估了开发一个单机游戏所要投入的 精力 这是一个非常错误的决定 五 过程模型五 过程模型 剑网 采用的是快速原型的软件工程模型 这种方式比较适合游戏行业的特点 以及 我们项目具体的特点 一般来说 我们在第一个里程碑通常只会投入核心技术人员完成一个技术原型 以解决 规划中的游戏所需功能中可能的技术难点 这一点非常重要 很多游戏开发到中后期才会发 现还有不少技术门槛需要跨越 以至项目最终延期 同时我们在第一个里程碑会细化策划的 设计 在第一个里程碑结束的时候形成一个比较系统的 设计文档 这个文档越细致 越系 统 越接近游戏最终的设计方案 游戏开发的过程就越顺利 经过这么多年游戏的研发 我 深刻认识到 策划是一个游戏的灵魂 是一个游戏能否成功的关键 好的策划需要深厚的功 底 需要出色的沟通和表达能力 需要很强的逻辑推理能力 需要优美的文字功底 需要创 新精神同时更需要熟悉游戏业务 了解终端用户的心理 好的策划是项目经理 产品经理 制作人的合适人选 不过遗憾的是策划是中国游戏开发团队最薄弱的一环 我接触过大大部分策划或者眼高不过遗憾的是策划是中国游戏开发团队最薄弱的一环 我接触过大大部分策划或者眼高 收低 不切实际 或者难以沟通 或者没有从开发商业产品的角度出发设计游戏 希望我这收低 不切实际 或者难以沟通 或者没有从开发商业产品的角度出发设计游戏 希望我这 样说没有伤害到广大策划朋友的工作热情 其实我提到的这些缺点 每个游戏开发团队中的样说没有伤害到广大策划朋友的工作热情 其实我提到的这些缺点 每个游戏开发团队中的 每个岗位上都会出现 只是游戏策划工作的超乎寻常的重要性 所以才会特别拿出来讨论 每个岗位上都会出现 只是游戏策划工作的超乎寻常的重要性 所以才会特别拿出来讨论 第一个里程碑中还会确定核心游戏资源的数据模式 并且完成大部分游戏编辑工具 一 般情况下这些工具包括 地图编辑工具 图素编辑工具 模型 图片 编辑工具 特效编辑 工具 脚本编辑功能等 剑网 的第一个里程碑完成得非常不顺利 实际上很多应该在第一 个里程碑完成的功能知道项目进展到最后阶段才完成 我们只在第一个里程碑中完成了客户 端显示和换装系统的技术研究 而非常重要的服务器端的技术研究只是泛泛而过 没有形成 一个实用的 具评估价值的技术演示 这是 剑网 整个研究过程最失败的一点 同时由于 客户端过于复杂 地图编辑工具的研发也延迟到了项目接近完成时才最终完成 如果能够顺利完成第一个里程碑 我们会在第二个里程碑中扩展已有的功能 添加核心 游戏逻辑 形成一个游戏的原型 第二个里程碑完成后 已经可以看到游戏的雏形 这时候 如果发现游戏的可玩性不够 策划还可以做比较大的调整 这个里程碑中美工需要开始利用 已完成的编辑工具 来编辑游戏资源 虽然延迟了不少时间 但 剑网 第二个里程碑基本 完成 不过遗憾的是 我们仍然没有把服务器端技术原型的研发当作重点 底层网络模型 服务器架构 同步策略都在项目的最终阶段成为项目的拦路虎 以至公司需要抽调其他部门 的核心骨干 集体攻关 后两个里程碑 主要是游戏的内容制作阶段和测试阶段 也就是在第一 第二的原型基 础上根据策划的设计 不断完善游戏的功能 不断产品化 这两个阶段也非常重要 大部分 游戏功能 可玩性以及游戏的细节都是在这期间完成的 由于技术上已经不存在障碍 所以 一般情况下 即使这个阶段出现延迟 也不会对整个项目产生太大的影响 从软件工程的角度看 剑网 做得比较好的地方是非常注重测试环节 测试介入到了项 目开发 运营的全过程 这在西山居以往是不曾有的 也是我极力推动的一件事情 在我刚 刚担任西山居技术总监时 整个部门没有一位全职测试人员 而 剑网 结束时 我们的测 试人员和程序 策划人员的比例基本上达到了 1 2 测试人员在 剑网 的后期开发过程中 发挥了至关重要的作用 尤其是当 剑网 内测初期 公司缺少运营人员 测试人员就承担 了大部分的运营工作 保证了 剑网 内测的顺利进行 综合起来 特别需要注意的是 要在第一个阶段 也就是技术原型阶段完成真正重要的技术的研究和验证 确定项 目的可行性 降低项目的风险 第一个阶段中 策划提供的 设计文档 体现的是对美工和程序的具体需求 设 计文档 应当尽量要做到系统化 清晰 游戏是一个数据驱动的产品 开发阶段需要生成大量的游戏数据 自主研发的游戏 编辑工具非常重要 它的易用性会直接影响美工 策划的工作效率 六 技术要点六 技术要点 金山公司的创始人求伯君先生是个优秀的程序员 公司的核心骨干也大都是程序员出身 因此 崇尚技术 追求完美的程序员文化深深的影响着每一位金山员工 在西山居中 程序 员虽然在人数上只占到了很小的比例 但作为金山公司的一个事业部 其思考问题的方式和 文化氛围和金山公司一脉相承 都是以程序为主导的 这种以程序员为主导的开发方式在西 山居延续至今 有利有弊 从目前的实际情况看 弊大于利 游戏行业技术门槛较高 技术 更迭较快 许多技术甚至直接推动了个人计算机硬件的更新换代 无可否认 技术史游戏实 现的基础 同时目前国内缺乏专业的策划人员 所以以程序作为游戏开发的主导 起码在目 前的实际情况下 是一个正确的选择 但是毕竟最终决定游戏优劣的是游戏的可玩性 从长 远来看 培养和寻找合适的策划人员 由他们担任制作人 将游戏开发从技术主导转变为游 戏性主导 是我们努力的方向 相对于单机游戏 网络游戏的技术难点更多 一般情况下 我们会将网络游戏中使用的 技术划分成如下几个方面 1 1 通用底层功能 通用底层功能 包括游戏中各个模块都会使用的一些基础模块 大致上有 文件管理模块 日志功能模块 内建的调试机制 内存管理机制 性能统计分析模块 数学 物力模块 2 2 客户端的显示 客户端的显示 客户端的表现力和效率是游戏能否成功的一个重要决定因素 以一个 3D 游戏为例 大致 上的功能有 贴图管理模块 插件模块 模型 动画管理模块 场景管理模块 3 3 游戏逻辑 游戏逻辑 游戏逻辑指策划提出的与游戏性相关的各种功能模块 对于网络游戏 大致上有 战斗系统 角色人工智能 AI 组队功能 交易系统 人际关系系统 帮会系统等等 4 4 服务器逻辑 服务器逻辑 网络游戏中多台不同职能的服务器支撑起一个完整的游戏世界 他们之间的通讯和逻辑 决定了网络游戏的稳定性和负载的上限 网路游戏中不同职能的服务器大致上有 账号服务器 游戏逻辑服务器 完成游戏中角色 AI 计算 战斗中的伤害计算经验分配等游戏逻辑 相关计算的服务器 游戏逻辑集群总控服务器 协调各个游戏逻辑服务器的一个总控服务器 类似于一个 局域网中的网关 角色数据库服务器 5 5 内部开发工具的研发 内部开发工具的研发 游戏开发过程中 美术 策划会使用大量的我们内部开发的工具来制作 装换并生成最 终游戏数据 大致上有 场景编辑工具 图素编辑工具 模型编辑工具 贴图编辑工具 特效编辑工具 界面编辑工具 脚本编辑工具 具体到 剑网 开发过程中的技术难点主要集中在两大方面 客户端的显示和换装系统客户端的显示和换装系统 剑网 的客户端需要支持两种显示模式 纯二维的显示模式以及类似于 暗黑破坏神 的半三维的显示模式 这给 剑网 的研发带来了很大的困难 首先是资源格式的问题 同 样的资源格式可能适合二维显示 但不适合三维显示 事实上我们低估了这块工作的技术难 度 剑网 后期资源格式已经定型 大部分游戏资源已经生成 这时我们才发现提高三维显 示效率唯一可行的方式是重新规划游戏资源的格式和组织方式 但这对于已经进入一个研发 后期的项目来说几乎是不可能的 另外 由于 剑网 涉及到复杂的换装系统和数量众多的 角色类型 既能达到策划的需求 又能尽可能降低游戏客户端资源的容量 这也是个难点 服务器端的集群结构 网络底层通讯模型 游戏逻辑的同步策略服务器端的集群结构 网络底层通讯模型 游戏逻辑的同步策略 服务器的稳定性和流畅性是网络游戏玩家最关心的几个问题之一 大部分网络游戏的服 务器结构都可划分到如下两类 单游戏服务器结构和游戏服务器群组结构 采用单游戏服务 器结构的比如 奇迹 一个游戏世界由一台服务器支撑 这个种结构比较简单 每个游戏世 界承载的玩家数量比较少 但是正是由于简单 所以比较容易达到稳定 流畅的要求 剑网 采用游戏服务器群组结构 由多台游戏逻辑服务器协同运作 构成一个完整的游戏世界 比 如我们的一个完整的游戏世界由 80 个场景构成 单一服务器无法将这 80 个场景一起载入 我们就把这些场景分别放在 8 台游戏服务器上 每台大致有 10 个场景 这 8 台服务器协同工 作 构成一个完整的游戏世界 这种结构设计复杂 承载的用户数可动态调整 要达到稳定 流畅的设计目标 需要付出更大的努力 同时 选择一个高效的网络底层通讯模型也是我们的一个主要工作 不同的网络通讯模 型适合不同的应用 网络游戏对承载的用户数量要求比较高 针对这种具体的需求 我们在 Windows 平台下采用了 IO 完成端口的模型 在 Linux 平台下 采用了实时信号量的网络通讯 模型 由于 剑网 大部分的开发人员都不熟悉 Linux 下的编程方式 所以我们开发的大部 分时间都在 Windows 平台下进行的 直到大部分功能都已完成后才由专人移植到 Linux 平台 下 所以我们有两套网络底层库 最终 剑网 的服务器采用的是 Linux 这里我想重点谈谈同步策略 同步在网络游戏中是非常重要的 它保证了每个玩家在屏 幕上看到的东西大体是一样的 解决同步问题的最简单方法就是把每个玩家的动作都向其他 玩家广播一遍 但是这样做会占用比较多的带宽 所以我们要考虑一种比较高效的同步策略 其中涉及如下几个问题 同步的范围 即一条网络消息要向那些客户 玩家 传输 同步的内容 即多长时间同步一次 如何解决网络延迟带来的问题 如何优化 减少带宽的消耗 如何防止作弊 由于篇幅有限 这里只具体谈谈同步的内容 1 1 同步内容的分类 同步内容的分类 命令同步 即时发送 命令同步指游戏中的一些瞬间行为 比如玩家和角色的行 走 玩家和角色见的攻击 都可视为游戏命令 命令可能是客户端发起 也可能是服务端发 起 状态同步 按照一定平率 可以区分细节度发送 只有服务端发起 由于网络延迟 游戏中同步的内容如果只有命令同步 很容易在游戏进行一段时间 后 服务端和客户端的状态偏差比较大 所以需要间隔一段时间 同步一些关键的状态 校 正客户端和服务端的差别 2 2 逻辑对像属性的细分 逻辑对像属性的细分 游戏由不同的逻辑对像构成 比如玩家对像 角色对像 每个逻辑对像中会包含大 量的属性 我们需要在同步时区别对待这些属性 不同步的属性 服务端和客户端都可根据本地的配置文件载入 比如角色的名字 角色的速度等 需要在对象创建时同步一次 以后不会改变的 比如角色的类型 需要频繁同步的属性 比如角色的生命 3 3 逻辑对像行为的同步策略 逻辑对像行为的同步策略 客户端自己决定 不需要同步给其他客户 属于客户端专有对像的行为 比如用 来播放特效的特效对像 以及用来增加客户端表现力的各种小动物 这些对象不会对影响游 戏的进行 所以不需要同步 客户端发起命令 在发给服务器的同时 为了增加本客户端的流畅度 自己预测 命令执行的结果 服务器端将使用同样的算法执行命令 这种策略的缺点是发起命令的客户 和其他客户在执行命令上有个 Ping 值的延迟 比如玩家的行走命令 客户端发起命令 发给服务器 但本地不执行 等待服务器处理或者确认 返回 后再执行 这样所有的客户端行为基本一致 也不可能出现作弊 比

温馨提示

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

评论

0/150

提交评论