`

如何成为一名游戏开发程序员

阅读更多
本文原创版权归CSDN 刘星龙所有,转载请显式标明原文出处,以示尊重!
原文出处:http://blog.csdn.net/liu3xing3long/archive/2008/03/06/2155206.aspx

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

  游戏开发中的程序开发主要由如下几个方面组成:
  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++语言,数据结构,编译原理,算法等,另外线性代数、微积分、牛顿力学在图形和物理引擎开发方面用途也很广泛,如果要提高的话还有必要了解硬件相关的知识如计算机体系结构、汇编语言,这些对我们学习一个新的硬件平台、编写最优化代码、提高自己游戏的竞争力都是非常有益的。另外,保持有恒心、不怕苦(比如说通宵加班)的心态,对游戏的热情也是非常重要的。对于那些想进入游戏行业,但缺乏软件开发知识的人,可以通过参加游戏开发培训来

五、学习游戏编程有哪些好方法

  现在有很多人,计算机本科毕业,学了很多软件开发的知识,但是一旦要用到实际的项目开发时,感觉无从下手,这主要是在学校里运用知识的机会太少了。所以学习游戏编程最好的方法是能实际参与到一个好的游戏项目中和有丰富开发经验的人一起开发游戏,可能学到很多你从书本上学不到知识和技能。但有时候你一时还没有机会参与到一个好项目中,没有机会进入一家好的游戏公司,但是你对游戏开发有一腔热情,很希望学习游戏开发的技能,那你就应该去参加专门的类似GA(GAME ACADEMY)游戏教育基地一样游戏开发培训,因为游戏开发培训班中的老师都是一些有丰富开发经验的老师,一般都有五年丰富的项目开发经验,听他们的课,实际上就是在和他一起分享这么多年的开发经验,另外游戏开发培训课程中会专门设计一些项目和课题,它们本身就是可以直接运用游戏开发中,这样你可以不进入著名的游戏公司,但可以学到这些公司中一些常用的开发技能。另外还有一种方法经济实惠的方法,参加一些网上志愿者的开源项目,这些项目从品质来说有好有坏,选择一个好的项目非常重要,另外他们中间本身有许多是业内人士,本来你要进入他们公司,才能学习到他们的经验,但是通过开源项目,你就有向他们学习的机会了,说不定哪一天,你就进入一家知名的游戏公司了,不过目前开源的完整游戏项目好的不多,到是在图形引擎和物理引擎方面有一些很不错的开源项目,但要加入进去的话,你的基础一定要好啊,有些开源的团队也不是随便什么人就能加入的。

分享到:
评论

相关推荐

    怎样成为游戏开发程序员

    想要成为一名游戏开发程序员,可以从以下几个方面着手: #### 一、掌握必备编程语言 在游戏开发领域,最常用的编程语言包括 C/C++ 和 Java。其中,C/C++ 是游戏开发中的主流选择,因为它们提供了高效性能和对硬件...

    做游戏的程序员如何学习编程

    作为一名游戏程序员,学习编程是非常重要的。游戏开发大多使用 C++ 语言,因此掌握好 C++ 和设计模式是非常重要的。以下是学习 C++ 和游戏编程的一些重要知识点和学习方法: 一、书籍推荐: 1. 《数据结构(C 语言...

    一个游戏程序员的学习资料

    游戏程序员的学习之路是一个...总的来说,成为一个游戏程序员需要广泛而深入的学习,涵盖算法、数据结构、编程语言、图形学、人工智能等多个方面,并且需要不断地实践和提升,才能在这个快速发展的行业中保持竞争力。

    游戏程序员需要读哪些书

    游戏程序员在提升技能的过程中,书籍是重要的学习资源。以下是一些建议的书籍,涵盖了从基础知识到高级技术的广泛领域: 1. **C语言**: - 《The C Programming ...不断学习和实践,是成为一名优秀游戏程序员的关键。

    如何成为程序员如何成为一名C++程序员

    如果你对成为一名C++程序员感兴趣,下面是一条详细的路径指南,帮助你实现这一目标。 首先,你需要掌握基础编程概念。编程不仅仅是关于C++,它涉及到逻辑思维和问题解决能力。学习基本的编程概念,如变量、数据类型...

    怎样成为一名程序员的四个阶段

    根据给定文件的信息,我们可以将如何成为一名程序员的过程分为四个阶段,并详细探讨每个阶段的学习目标、内容及推荐工具。 ### 第一阶段:基础编程语言学习 #### 学习目标: 掌握一门编程语言的基础语法与基本操作...

    优秀程序员之路 C# 开发经验及技巧大汇总.rar

    首先,成为一名优秀的C#程序员,你需要掌握基本语法和数据类型。C#支持多种数据类型,包括整型、浮点型、字符型以及布尔型。理解变量的声明、初始化和作用域是至关重要的。同时,掌握控制流语句,如if条件语句、for...

    你能够使用C++编程:一名程序员的介绍(PDF)

    这本书旨在帮助读者掌握C++语言的基础和核心概念,从而成为一名熟练的程序员。PDF格式的电子版为学习者提供了方便的在线阅读和下载体验。 C++是一种广泛应用的面向对象的编程语言,由Bjarne Stroustrup于1983年创建...

    -一个程序员走过的路

    同时,C++广泛应用于游戏开发、实时物理模拟、高性能服务器等领域,是当今高性能软件开发的重要工具。 文件操作是程序员日常工作中的一项基础技能。无论是哪种编程语言,都离不开与文件系统的交云。文件操作包括但...

    经验分享:如何成为一名优秀的高级C++程序员?

    为了成为一名高级C++程序员,首先应当从语言本身入手。推荐《C++ Primer》作为学习的教材,这本书内容丰富且深入,能够帮助学习者打好基础。除了语言基础,还需要掌握一些图形用户界面(GUI)库的知识。C++有多种GUI...

    程序员述职报告ppt.docx

    从他的报告中,我们可以深刻体会到一名程序员在技术追求、职业发展以及个人成长方面的不懈努力和深刻变化。 大学毕业后,作者迈入了他的职业生涯的第一站——一家教育培训机构的网络部门。在那里,他负责web网站...

    C程序员成长攻略

    第5章则讲述如何成为一名合格的C程序员,提供了职业成长的建议;第6章通过一个用C语言编程的课题设计程序,展示理论与实践的结合;第7章通过一个算法演示验证程序,说明C语言在算法实现中的应用;第8章讲述如何扩展...

    送给所有程序员的9句箴言.docx

    例如,开发一个小游戏或自动化脚本来提高工作效率,不仅能带来成就感,还能在实践中学习新技能。 #### 不需要无所不知 面对浩瀚的知识海洋,试图掌握所有技能既不现实也不必要。程序员应该专注于自己感兴趣的领域,...

    C#知识点总结适用初中级开发程序员

    在IT行业中,C#是一种广泛使用的面向对象的编程语言,尤其在Windows平台和.NET框架下。本篇文章将针对“C#知识点总结”进行深入探讨,适用于初中级开发程序员的...持续学习和实践,是成为一名优秀的C#程序员的关键。

    程序员教程—大家可以看看 想成为程序员,需要哪些知识

    本文将深入探讨成为一名程序员所需要掌握的基础知识,以及如何通过PDG格式的学习资料来提升你的技能。 首先,编程语言是程序员的基石。你需要至少熟悉一到两种编程语言,例如Java、Python、C++或JavaScript。Java是...

    C++程序员进阶书籍3本

    通过阅读这三本书籍,C++程序员不仅可以提升自身的编程技巧,还能学习到软件开发过程中的各种实践经验,从而更好地适应大型项目的需求,逐步成长为一名优秀的软件工程师。同时,了解并应用这些知识,也能增强程序员...

    如何成为一个合格的C++程序员

    因此,成为一名优秀的C++程序员不仅是很多程序员的梦想,也是市场需求的重要组成部分。下面将详细探讨成为合格C++程序员所需具备的关键技能。 #### 一、熟练掌握C++语法 1. **语法基础**:C++作为一种静态类型的...

    中国中国最早的一批传奇程序员

    成为一名合格的程序员,需要具备七种素质:扎实的编程基础,持续学习的能力,解决问题的技巧,良好的团队协作精神,对新技术的敏感性,项目管理能力,以及创新思维。同时,避免程序员的四大忌:缺乏耐心,过度依赖...

    游戏开发基础 游戏开发基础

    针对这一需求,一套名为《游戏开发基础》的教学软件应运而生。这套教学软件主要面向具备一定编程基础的用户,旨在帮助他们掌握游戏开发的基本技能。考虑到许多游戏爱好者可能在Windows编程方面还比较陌生,因此该...

    C# 程序员开发指南(code)

    总的来说,C#程序员开发指南是学习和提升C#技能的宝贵资源,结合实际的源代码示例,将理论与实践相结合,有助于你成为一名熟练的C#开发者。通过不断学习和实践,你将在C#的世界里游刃有余,创造出更多高效、可靠的...

Global site tag (gtag.js) - Google Analytics