本是为公司新人准备的一个培训稿,因为也没有什么商业秘密可言,索性放到这里,为一些希望进入游戏程序开发行业的朋友提供一些信息吧.

程序部新员工培训准备稿(小志)

修订记录

审核人

Tidy

概述:

收集整理一份游戏发展史,当代游戏技术特点,游戏开发部门分工与协作资料,让新人更快更方便的了解游戏开发这个行业。

设计思路:

主要分为三大模块进行说明:

l 网络游戏发展史。

l 当代游戏的特点以及技术概述。

l 游戏开发流程和部分分工。

网络游戏发展史 首先,我们可以明白以下一点:

网络游戏是电脑游戏的一个分支类型,电脑游戏又是电子游戏的一个分支,电子游戏是游戏的一种类型。

游戏(任何动物都有的一种活动,游戏是生活中必不可少的一个环节,是动物们用来学习的一种基本形式)

l 游戏的两大特性:现实模拟性,交互性。

电子游戏(借用电子设备进行的游戏)

(1961年,SpaceWar, 美国辍学大学生,第一款电脑游戏,也是第一款网络游戏)

(1972年,PingPong, 雅各达公司, 第一款电子游戏,也是第一款商业化游戏)

电子游戏路线

1983 任天堂 8位

1988 世嘉 MD 16位

1994 世嘉 土星 32位

1996 任天堂 N64 64位

电脑游戏路线

l 1969-1977年,混沌阶段。(为什么69年?)

此时游戏特征:

1:非持续性,电脑重启后,信息丢失,无法模拟一个持续发展的世界。

2:游戏无法跨系统平台。

3:免费。

附:1969年传输控制协议(TCP/IP)出现。

l 1978-1992年,MUD阶段

游戏特征:

1:可跨平台。

2:收费。

3:用户之间的交互较强,但图形交互较差。

4:网络范围受限,仅依托于单一的服务商。

l 1995-至今。(为什么95年)

游戏特征:

1:MMORPG大型多人网络游戏。

2:图形方面很快获得了进展。

附:Quake带来了图形界的大变革。

中国电脑网络游戏路线

l 2000年开始,中国网游代理疯狂发展之时。市场混乱。

2000年 万王之王

2001年11月 传奇

l 2003年,一年内,中国网络依旧大肆代理,但个别本土单机游戏公司已经开始有动作,国外网游开始遭挫。

2003年1月 RO

2003年9月 剑侠情缘OL,大话西游

l 2004年开始中国网游已开始自主创作,运营的164款网游中,国产网游73款,占有率接近一半。

2003年12月 梦幻西游

l 2005年大陆网游消费能力不再疯狂上涨,市场趋于稳定。国家加大力度管理。网络游戏市场大规模洗牌。

2005年 WOW

游戏开发流程和部分分工 l 调研 – 开发 – 测试 – 运营

(我们公司的情况分析)

l 附加介绍:

游戏开发公司

游戏运营公司

游戏开发运营公司

开发部门构成: l 策划(灵魂)8-10人

l 主策划

l 执行策划

l 脚本策划

l 文案策划

l 关卡策划

l 数值策划

l 界面策划

l 程序(骨肉)8-10人

l 主程

l 客户端引擎

l 服务器端引擎

l 逻辑程序员

l 3D程序

l AI程序

l 物理程序

l 脚本程序

l 数据库程序

l 编辑器,工具程序员

l 美术(皮肤)20-30人

l 人物原画

l 人物建模美术

l 材质贴图美术

l 人物动作美术

l 场景原画

l 场景建模美术

l UI界面,图标平面美术

l 动画CG美术

l 特效美术

l 音乐音效

l 其他管理部门

  1. 开发组长(部门协调)

  2. 项目经理(项目整体把控)

通常开发流程是:

l 项目经理(产品经理):立项。(前期预估项目成本,风险,市场情况。中期重新评估)

l 主策划:游戏原型策划。(消费群体,能力,产品定位,游戏风格。)

l 执行策划:写初部策划案。(将主策的想法具体的细节实现,提前3-4月)

l 美术,程序:实现(基本是同时动工)

  1. 主要构架,测试主逻辑,测试引擎。

  2. 主功能,(图形,脚本,AI,数据库,网络的测试)

  3. 主逻辑模块,(战斗,聊天,换线,任务)

  4. 附逻辑模块,(好友,队伍,小地图等等)

  5. 游戏整和调试,(关卡串联,置入音效,策划数值调整)

l 宣传。(游戏官网以及周边的游戏功略说明书,游戏截图宣传等)

l 技术测试:白盒内部测试。代码效率,可扩展性,DEBUG功能移除,封包,加密测试。

l a测试:黑盒测试部测试。游戏内部测试(功能性测试)

l b测试:黑盒BEBUG测试。主要进行各种不合常理的行为操作的测试,和GM功能测试。

l 内测:重点测试服务器压力。

l 公测:获取用户群的信息表,已确定游戏的一些商业运营方式。

当代游戏的特点以及技术概述 整体行业近况:

l 运营成本增加,盈利模式趋同。

(由于国内游戏开发环境已经逐步完善,游戏与游戏之间,游戏公司与游戏公司之间的竞争加剧,游戏的商业化运营更加正式,做为游戏的重要的宣传手段,运营的投入也大幅增加,于是便分化出了游戏运营商和开发商。

根据Ireasch的2007年报告来说,中国67%游戏已经是PayToPlay转化为FreeToPlay,典型的有盛大的招牌《传奇》,都转为免费游戏+收费道具。)

l 产品老化严重,用户忠诚度很低。

(用户:蝗虫族。2/3以上玩家兼玩2种或2种以上的不同类型游戏。平均蜜月期不足1年半,国外玩家平均蜜月期为3年3月。

新的网游很多,但是能够冲破 WOW,传奇,西游 三大霸主的地位难度还是很大。很多游戏是热门抄作期一过,就完了。)

l 游戏产品类型五分天下,玩家群分化严重。

(回合制MMORPG:大话,梦幻,问道,水浒Q传

2D ARPG:传奇,征途

3D ARPG:魔兽。热血江湖,RF,天堂2,天龙八部

休闲游戏:跑跑卡丁车,劲舞团,街头篮球

棋牌类:QQ游戏,联众

l 跨行业合作性强。

(可口可乐,康师傅,百事可乐均进入游戏合作推广,游戏作为一种宣传媒体,这种宣传模式越来越被认可)

l 整体来说:中国网络游戏行业,面临机会和挑战并存。

(一部分厂商凭借稳固高质量的游戏产品和务实的运营开始崭露头角,一部分则因为产品运营原因,关门大吉。网游市场多极化发展,用户拥有了广泛的选择,对产品质量和用户氛围也越加注重,游戏公司必须和市场一起成熟起来,才能适应今后的发展。)

l 游戏程序发展方向:

  1. 代码重用性。出现引擎。

  2. OO思想和效率的兼顾。C++语言的流行。

  3. 游戏可扩展性,灵活性。脚本语言的流行。

  4. 硬件的发展。3D将成为主流,虚拟现实VR,Web3D也大肆发展。

  5. 网络的发展。网络游戏的适用范围越来越大。分布式服务器的流行。(EVE)

  6. AI,物理在游戏中占的比例越来越大。

1:引擎的作用。

将不同游戏的共同功能抽象出来,做为核心底层的封装的代码就是引擎。

最底层大致包括:计时器,内存管理,错误处理,输入设备处理,网络通讯,IO输入,基本的数据结构,取随机数大小值等基本数学方法函数,不同格式的文件数据类型读取。

稍高一层大致包括:音效管理,网络通讯管理,UI管理,对象管理,寻路,场景管理,渲染器管理,脚本管理,物理模拟库,AI状态机,数据库管理,图形管线,角色对象管理系统等。

若是3D游戏的话,在图形图象部分还要多出一些部分:Shader,粒子系统,渲染对象管理,2D精灵系统,地形,BSP树拣选,八叉树拣选,包围盒,摄象机,动态模糊,动态光照,碰撞检测,鼠标拣选,HDR等。

2:C++语言的发展。

相对C来说,OO思想更符合现在大型项目的开发思路,在效率上C++较之JAVA,C#等语言效率很高,可方便的嵌入汇编优化。

汇编: 快,超快又小巧。要是天才汇编程序员,比其他语言程序员做出的程序强大的多的多。可以学习起来极难,编写一个程序,需要极多的代码。完全没有任何移植性可言。我们不可能用它来做一个游戏,但是,局部可以汇编优化。MMX指令集。

VB: 容易上手和学习,但是没有由于照抄BASIC,丝毫没有结构感,OO表现难度过大。即时编辑和良好的插件还是很不错。但是应用系统太大,运行时间过长,运行时还需要一个左右的运行库,另外,支持且仅支持Windows,他是完全基于WindowsAPI开发。

JAVA: 强大。J2EE的企业级开发库支持的细节是非常强大的。但是做中小型项目又实在没有必要,J2SE的功能又凌杂的有些可怜。纯粹且完全的OO语言,使得非面向对象的思想完全活不下去。正因为JAVA的强大细节把握性,导致JAVA代码通常很冗长,没有做到轻便化。而且!最重要的是,不支持操作符重载,实在非常烦人。所谓的平台无关性也是一种说法而已,它本身就需要一个JVM运行环境,环境本身就是一个平台。JAVA的设计目的是安全性,可移植性,于是对内存地址访问被CUT了,所以在性能上容易有一些损失。总之一句话,它很象一个对C++的封装。

C#类似JAVA不重复多说。

3:脚本语言。

工作流程:脚本 – 行处理器(词法分析,语法分析) – 字节码流 – 解释器

特点:容易学习,代码可维护性强。

Lua,Pyth,Ruby,Perl各有优势,但Lua以轻量化,与C结合紧密出众,获得亲睐。

Ruby: 慢, Debug难度较大,没有成熟的作品(RM特殊),在日本流行度较高。

Lua: 轻量化,与C结合紧密。但教程极少,接口设计不够巧妙,也没有对大型应用设计出良好的支持。但游戏开发已经足够了。WOW,大话梦幻等。

Python: 老的脚本语言了。强大,有极高的阅读性,很好的扩展性,开发人员可以用C++等语言对Python本身进行扩展。当我们进行比较大型项目,将其拆分为大量单元,交由多数人进行开发时,阅读性,高效性,可维护性是脚本语言比较重视的部分,Python在这里做的很好,所以,Google,微软,Nokia都用Python.

4:3D成为主流。

3D的画面表现力比2D强,仿真性强,给人带来的代入感好,随着硬件的更新,3D是一种不可抗拒的趋势。

5:分布式服务器结构。

单服务器结构,开发效率快,逻辑简单,但是容量小,随着网络的发展,已经被抛弃。1500-2000

多服务器结构,可分为按地图划分服务器和按功能划分服务器。

按地图划分为服务器,大致会分为 世界服务器,地图服务器,网关服务器。当负责分配的世界服务器出现鼓掌,将使所有的地图服务器失效,因为数据是依照地图独立存储的,当某一地图服务器挂掉,将可能失去大量的数据。

按功能划分服务器是符合OO思想的一种设计,将一些密集型的功能分离开来,单独由一个服务器进行控制,这样的话,当一个服务器出现问题时,不会影响其他模块的运行,而且扩充性也比较优秀简单。

分布式服务器构架:支持远程对象调用,动态的分布节点吞吐,保证服务器受压平衡。但是在开发难度上较大。

6:AI,物理模拟在国内网络游戏开发中并没有过多的使用该功能。带过。

新人程序员应当熟悉的资料 l 主程

l 客户端引擎

l 服务器端引擎

l 逻辑程序员

l 3D程序

l AI程序

l 物理程序

l 脚本程序

l 数据库程序

l 编辑器,工具程序员

首先,我们看一下上面说的游戏程序员的种类,我们来谈一下,需要大致了解的东西。

【3D Graphics API 】
   DirectX 9.0 SDK - Direct3D
   OpenGL 2.0
   【2D API】
   DirectX 9.0 SDK - DirectMedia
   Win32 GDI
   【Input Device】
   DirectX 9.0 SDK - DirectInput
   【Audio】
   DirectX 9.0 SDK - DirectSound / Direct3DSound / DirectMedia
   OpenAL
   【OS API】
   Win32 SDK
   MFC
   【Network】
   DirectX 9.0 SDK - DirectPlay
   Socket library

l 注意,Lib库和引擎和API库是不同的。

Lib重点是拿来用它的接口的,大部分内部结构和命名比较糟糕,不推荐学习,有兴趣的话可以学习其中的算法。

API库重点是拿来用它的接口函数,对于内部结构,相当多的都被封装了,结构性和命名更加糟糕,例如,”_”是底层库专用,”__”是编译器专用。建议熟悉API的大致功能即可,对于其中的参数和API名称,没必要死记。

引擎是最值得研究的,它的重点是设计思想,对于项目开发来说,需要把作者的设计思路,和接口设计完全弄清楚才算合格。