游戏程序开发的工作主要包括哪些方面

摘要:
7.游戏开发工具主要包括关卡编辑器、角色编辑器、资源打包管理、DCC软件插件工具等。
一、游戏程序开发的工作主要包括哪些方面   游戏开发中的程序开发主要由如下几个方面组成:  
1.图形引擎  2.声音引擎  3.物理引擎  4.游戏引擎  5.人工智能或游戏逻辑  6.游戏GUI界面(菜单)  
7.游戏开发工具  8.支持局域网对战的网络引擎开发  9.支持互联网对战的网络引擎开发   
下面逐一介绍每个部分:  
1.图形引擎主要包含游戏中的场景(室内或室外)管理与渲染,角色的动作管理绘制,特效管理与渲染(粒子系统,自然模拟
(如水纹,植物等模拟)),光照和材质处理,LOD(Level Object Detail)管理等,另外还有图形数据转换工具开发,
这些工具主要用于把美工用DCC软件(如3DS Max,Maya,Soft XSI,Soft Image3D等)软件制作的模型和动作数据以
及用Photo shop或painter等工具制作的贴图,转化成游戏程序中用的资源文件。   
2.声音引擎主要包含音效(Sound Effect简称SE),语音(VOICE),背景音乐(Background music简称BGM)的播放。
SE是指那些在游戏中频繁播放,而且播放时间比较短,但要求能及时无延迟的播放,VOICE是指游戏中的语音或人声,
这部分对声音品质要求比较高,基本上用比较高的采样率录制和回放声音,但和SE一样要求能及时无延迟的播放,
SE在有的时候因为内存容量的问题,在不影响效果的前提下,可能会降低采样率,但VOICE由于降低采样率对效果影响比较大,
所以一般VOICE不采用降低采样率的做法。BGM是指游戏中一长段循环播放(也有不循环,只播放一次)的背景音乐,
正是由于BGM的这种特性,一般游戏的背景音乐是读盘(光盘或硬盘)来播放。另外一些高级声音特效,如EAX,
数字影院系统(DTS5.1),数字杜比环绕等。   

3.物理引擎主要包含游戏世界中的物体之间、物体和场景之间发生碰撞后的力学模拟, 以及发生碰撞后的物体骨骼
运动的力学模拟(比较著名的物理引擎有havok公司的game dynamics sdk,还有open source 
的ODE—Open Dynamics Engine)。   
4.游戏引擎主要是把图形引擎、声音引擎、物理引擎整合起来,主要针对某个游戏制作一个游戏系统,其包含游戏关
卡编辑器,主要用途是可以可视化的对场景进行调整,光照效果和雾化等效果调整,事件设置,道具摆放,NPC设置,
另外还有角色编辑器,主要用于编辑角色的属性和检查动作数据的正确性。一般日本游戏公司的做法,他们会把关卡编
辑器和角色编辑器直接做到游戏中,所有的参数调整都在游戏中通过调试菜单来进行编辑,所以一般他们把这部分
调试菜单的功能做的很强大,同时在屏幕上实时的显示一些重要的信息,这样做的好处是关卡编辑器调整的效
果直接就是游戏的效果,但是对于程序的重用性来说可能不是很好,比如说要用到另外一个游戏项目中就比较难,
除非两个游戏类型相同,只要把场景和角色数据换一下,还有做下一代产品也没有问题,只要根据式样增加调
试菜单的功能就可以了。   

5.人工智能和游戏逻辑开发,这部分日本和欧美的游戏开发模式也有很大不同,在欧美游戏公司中运用脚本语言开
发很普遍,所以这部分程序开发主要是用脚本语言编写,而且脚本程序和游戏程序的耦合性很低,有单独的编辑、
编译和调试环境,这样比较利于游戏程序和关卡设计开发分开,同时并行开发,所以一般他们都会有专门做关卡设
计的程序员岗位。而日本游戏公司脚本语言一般和游戏的耦合性比较高,一般通过一些语言的宏功能和一些编译
器的特定功能来完成一个简单的脚本系统,所以一般这些脚本程序只能在游戏程序中进行调试,而不能在一个单
独的脚本编辑,编译环境中进行开发。   

6.游戏GUI界面(菜单),主要是指那些游戏中用户界面设计,有做的复杂,有简单的,做的简单就是
2D GUI界面,做的复杂有3D GUI界面。   
7.游戏开发工具主要包含关卡编辑器,角色编辑器,资源打包管理,DCC软件的插件工具等开发。   
8.支持局域网对战的网络引擎开发,主要解决局域网网络发包和延迟处理,通讯同步的问题,有同步通
讯和异步通讯两种做法,异步通讯用于那些对运行帧速要求比较高的游戏,同步通讯相对异步通讯来说效率相对低,
但是同步通讯的编程模型相对异步通讯来得简单一些。   
9.支持互联网对战的网络引擎开发,目前大部分网游都是C/S结构的,服务器端软件配置管理,服务
器程序的最优化,还有游戏大厅、组队、游戏逻辑处理、道具管理、收费系统等。另外还有一些网络系统是
C/S和P2P两种结构混合的,如XBOX Live等。   

二、游戏公司中有哪些和程序员相关的岗位   
程序员在游戏公司中的岗位在日本游戏公司和欧美的游戏公司有些不同,日本游戏公司中程序员的
岗位主要有技术监督(Director),主程序员(Main Programmer),程序员(Programmer),
在日本游戏公司里负责游戏项目开发的程序员,一般不会专门根据工作内容划分程序员,除了独立的
系统研究室和声音系统制作部门(这两个部门是比较独立的,往往同时给好几个项目服务),负
责每个游戏项目开发的程序员,随时都可能一人多职,比如说主程序员除了负责整个游戏系统以外,可
能还要负责图形或声音引擎开发等,程序员除了人工智能以外还有菜单制作等。这种情况在欧美的游
戏公司比较少见,他们分工的比较细,一般有图形程序员,声音程序员,人工智能或游戏关卡程序员,
物理程序员,每个组中可能还会有一个Leader。   
三、游戏公司一般是如何招聘程序员的   这一点,日本公司和欧美公司也有些不同。日本公司一般喜欢
从一些高校中招聘一些应届优秀毕业生,一方面比招聘有经验的人要来的成本低,另方面新人是一张白纸,
容易培养,像SEGA、KONAMI等都是按这种原则招聘员工的,所以想进入日本游戏公司,你要学好
你的软件课程。而欧美公司希望招聘进来,能马上进入项目的开发中去,所以他们一般希望招聘有工作
经验的人,即使不是行业中,在相关行业中工作2、3年的也可以,所以想进入欧美游戏公司你的工作
经历很重要。   
四、想成为一名游戏开发程序员应该具备哪些条件   我觉的一个游戏软件程序员,最起码的要求是熟练掌
握计算机本科专业所学的知识,主要包括C语言或C++语言,数据结构,编译原理,算法等,另外线性
代数、微积分、牛顿力学在图形和物理引擎开发方面用途也很广泛,如果要提高的话还有必要了解
硬件相关的知识如计算机体系结构、汇编语言,这些对我们学习一个新的硬件平台、编写最优化代码、
提高自己游戏的竞争力都是非常有益的。另外,保持有恒心、不怕苦(比如说通宵加班)的心态,对
游戏的热情也是非常重要的。对于那些想进入游戏行业,但缺乏软件开发知识的人,可以通
过参加游戏开发培训  

免责声明:文章转载自《游戏程序开发的工作主要包括哪些方面》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ubuntu 查看磁盘空间大小命令<转>【转】C#中Graphics的画图代码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

任正非致歉华为前程序员:回来吧,公司错了

近几日,因着任正非连续签发邮件,无处不在热议华为,其中与所有的技术人可谓密切相关。 除了一员工因说真话,被晋升两级,根据其自愿选择工作岗位及地点,并由无线网络产品线总裁邓泰华保护其不受打击报复之外,更有标红的 90 号总裁办新邮件流出。 这次,任正非对其曾经的一名员工点名道姓地呼唤其回归,并且印发成文件分发至全体员工。该邮件大标题是《我们要紧紧揪住优秀人物...

RPA-UiPath学习之启程

因公司需要将部分原人工的业务采用RPA技术进行替代,把我抓了壮丁。 于是我开始学习起RPA。 公司选择的是目前市场占有率最高的Uipath。 UiPath这个Studio工具,大概是采用wpf开发。 在uipath实现的项目可以有两个选择VB和C#,两者都是基于.NET FRAMEWORK生态下的。 所以,这对C# .NET程序员而言,学习成本相对很低。...

API的理解

API(Application Programming Interface,应用程序编程接口:是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 通俗的讲API就是接口,就是通道,负责一个程序和其他软件的沟通,本质是预先定义的函数。 API通常是以Http的形式提供,它隐...

程序员成熟的标志《程序员成长路线图:从入门到优秀》成熟篇(节选3)

《程序员成长路线图:从入门到优秀》成熟篇(节选3) 程序员成熟的标志 程序员在经历了若干年编程工作之后,很想知道自己水平到底如何?自己是否已经成为成熟的程序员?虽然程序员会对自己有一个自我评价,但是,自己的评价和社会的评价、专业的评价会有差异,所以程序员自己并不能肯定这个评价。现实中,除了各种证书之外,很少有人会专门给出一个程序员的成熟度的评价。人们往往是...

成为高效程序员的搜索技巧(转)

   对于缺乏编程知识的人来说,完全有可能编写一个网页或小程序。如果在用Google搜索相关示例时幸运的话,可以搜到现成的代码。即使是经验丰富的程序员,通常也会为了节省时间和精力而在网上搜索解决方案。   如果不借助搜索技术、网络及集体智慧,现代化高效编程是难以想象的。因此,搜索技巧对高效程序员变得愈发重要。   现在,我们不需要了解和记住如何解决众多的编...

9本Java程序员必读的书

本文列出的9本书在Java程序员界都是被认为很棒的书。当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java。这个问题也就表明,相对于其他的教程和博客,Java书籍还是很重要的参考,主要表现在以下两点 ●通常书籍是由比较权威的程序员来撰写的。 ●相比其他媒介,书籍对于内容的描述更加详细,解释更加明确。 本文列出的九本...