❶ 我想成为游戏开发程序员
一、游戏程序开发的工作主要包括哪些方面
游戏开发中的程序开发主要由如下几个方面组成:
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++语言,数据结构,编译原理,算法等,另外线性代数、微积分、牛顿力学在图形和物理引擎开发方面用途也很广泛,如果要提高的话还有必要了解硬件相关的知识如计算机体系结构、汇编语言,这些对我们学习一个新的硬件平台、编写最优化代码、提高自己游戏的竞争力都是非常有益的。另外,保持有恒心、不怕苦(比如说通宵加班)的心态,对游戏的热情也是非常重要的。对于那些想进入游戏行业,但缺乏软件开发知识的人,可以通过参加游戏开发培训来
五、学习游戏编程有哪些好方法
现在有很多人,计算机本科毕业,学了很多软件开发的知识,但是一旦要用到实际的项目开发时,感觉无从下手,这主要是在学校里运用知识的机会太少了。所以学习游戏编程最好的方法是能实际参与到一个好的游戏项目中和有丰富开发经验的人一起开发游戏,可能学到很多你从书本上学不到知识和技能。但有时候你一时还没有机会参与到一个好项目中,没有机会进入一家好的游戏公司,但是你对游戏开发有一腔热情,很希望学习游戏开发的技能,那你就应该去参加专门的游戏开发培训,因为游戏开发培训班中的老师都是一些有丰富开发经验的老师,一般都有五年丰富的项目开发经验,听他们的课,实际上就是在和他一起分享这么多年的开发经验,另外游戏开发培训课程中会专门设计一些项目和课题,它们本身就是可以直接运用游戏开发中,这样你可以不进入着名的游戏公司,但可以学到这些公司中一些常用的开发技能。另外还有一种方法经济实惠的方法,参加一些网上志愿者的开源项目,这些项目从品质来说有好有坏,选择一个好的项目非常重要,另外他们中间本身有许多是业内人士,本来你要进入他们公司,才能学习到他们的经验,但是通过开源项目,你就有向他们学习的机会了,说不定哪一天,你就进入一家知名的游戏公司了,不过目前开源的完整游戏项目好的不多,到是在图形引擎和物理引擎方面有一些很不错的开源项目,但要加入进去的话,你的基础一定要好啊,有些开源的团队也不是随便什么人就能加入的。
❷ 程序员工作时可以听音乐吗
个人认为工作的时候
尤其是做复杂的逻辑编程时候需要大脑高度集中的思考
最少不要听音乐
如果干累了可以听听缓解一下压力
有时候就算遇到困难
也许听听因为会
休息一下
问题可能就解决了
至少我经常这样
❸ 为什么程序员工作时喜欢戴耳机
网友一:
哈哈哈,看到这个问题后,我立刻就联想到我们公司的那些神经质的程序猿们。
他们的脑洞,真的是我们常人无法比拟的。而且我行我素,带着耳机,甚是与世隔离。我是一个性格比较外向的人,比较闹腾点,而程序猿们的世界需要安静,所以,他们很是拿我没办法,哭笑不得。
我特别注意过,我有项目需要给他们安排时间,规定计划的时候,他们对这个时间很是排斥,开会的时候也是带上耳机,也不知道他们在听什么。
有一次,实在忍无可忍,我对他们大发雷霆。拿过来他们的耳机,你猜我听到了什么?居然是。。。相声,郭德纲的相声。我还想呢,他们在敲代码的时候,还咯咯咯自己傻乐。
后来沟通后得知,他们听的都是一些抒情的歌曲/节奏,或者是各种各样的相声,他们的目的就是放松放松自己的精神,或者是一种发泄。
所以,我们尽量不要打扰他们,他们需要安静的敲代码,让他们稳稳地活在密密麻麻的代码世界中。
网友二:
我们公司也很多程序员。工作时间经过,一眼望去,还真的很多人都在戴着耳机。
曾经有好多次,收到其他部门的投诉,说应该禁止研发部跟设计部的程序员跟设计师在上班时间戴耳机。
因为其他部门的同事找他们的时候,很多情况尽管在同一个空间的办公室喊了很多声都没人回应,只能跑到他们的座位,动一下他们才有慢慢反应过来。
这在其他职能部门或者销售部门来说,程序员工作的时候戴着耳机是不专心工作的表现。
他们对其他同事呼喊的“漠视”,让其他同事觉得他们一副高高在上的感觉。
于是后来研发老大内部发了个公告,说上班时间禁止戴耳机。
公告之后,同样在办公时间呼叫程序员,他们这次没戴耳机了,结果他们还是好像听不到一样,没有回应。
因为当他们真正在深度思考的时候,真的戴耳机跟没戴耳机一个样。
所以,很多程序员上班时间戴耳机就是为了防止外界干扰他们写代码的思路。我问过一些程序员,他们普遍都说,当他们正在解决一个bug或者写一个算法的时候,如果刚好有外界干扰打断了他们的思路,他们真的会想sha人的。
所以,他们可能耳机里放着歌,其实是在想怎么写代码。
网友三:
因为正好在研发类型的公司工作过,周围基本都是程序员和工程师,所以对这个题目还是颇有共鸣的。别说程序员哥哥们喜欢在工作时戴耳机,当时走出那一站地铁口,基本所有穿格子衬衫,背着电脑双肩包的IT小哥哥,走路也都是戴着耳机的。
为什么他们要戴耳机?其实戴上耳机是在表明一种态度,就是在对外宣布:“不要打扰我,让我一个人静一静”。大家都知道程序员要写代码。
但事实上,高级程序员上班时候大部分时间都是在思考,而不是在写代码,正常高级程序员每天的代码产出量大约是20行,一行行代码会在各种情况下被运行无数次,不深思熟虑的话肯定会出错。
所以程序员的核心工作是思考,而不是写代码。思考就需要一个相对安静和独立的环境,不想被外界干扰。
那么,他们在听什么?当然,大部分时候都在听歌咯,有人喜欢舒缓温柔的背景音乐,有人喜欢欧美流行歌曲,甚至可能还有程序员小哥喜欢听各种段子和笑话来缓解工作的压力。
不过也有人其实什么都没有听,耳机里面是没有声音的,戴上耳机只是个习惯,用来隔离外界的噪音而已。
网友四:
作为一个互联网公司的项目leader,我来归纳下他们可能在听什么:
没声音。只是因为他们敲代码需要一个非常专注安静的环境,戴着耳机可以避免其他人频繁的打扰。要知道打扰程序员敲代码,他们从代码世界出来的时间需要5分数,然后再次回去又需要十分钟。帮助更好的创作。代码在我们非专业人士看来,一堆字母非常枯燥,但是对程序员来说,却是一种创造设计的工作,代码的背后是实现一项项功能的基础。听着音乐,可以更好地帮助他们创造。无聊解压。有时候敲代码或者改bug,是他们能力范围之下或者经常重复的动作,这样的工作不用怎么深度思考,所以戴着耳机,听些振奋人心的歌曲或者舒缓的音乐,可以帮助他们度过这段无聊的时间,也激发他们工作的动力。
有些追求极致的程序员,甚至都会选择一些品质好的降噪耳机,这样带上去他们真的会沉浸在他们的创作世界。
有些公司禁止员工上班时间戴耳机,但是都会把程序员除外。因为既然耳机对程序员来说是工作的利器,干嘛要禁止呢?
所以如果你真的想要了解程序员他们的行为,那么你首先要了解他们的工作,他们的需求与心理想法。
从程序员这么专注的精神角度看来,他们是值得很多单身女性交往的对象。
网友五:
我想程序员的心理我最懂了,也知道他们为什么工作的时候戴耳机。
Hello Word ,这个词是不是很熟悉,没错,这是学程序时老师教的第一个程序,在学习Java,Android,iOS,PHP,JavaScript语言时,第一个案例,就是Hello Word。
一个Hello Word开启了代码的世界,从此一发不可收拾。在代码的世界里徜徉,就像一个人独自在月光下行走,周围是那么的安静,没有喧嚣,没有浮华,只有敲打键盘的声音。
思维就像高速行驶的动车一样运作,沿着一条线快速的向前跑,这是只有沉浸在代码的世界才能感受到的。此时无疑是效率最高,思维最敏捷的时候。
怎么样才能在公司保持有这么好的编程环境呢,戴耳机听音乐是最好的办法。
他们一边想问题一边听自己喜欢的音乐,声音不要太大,让心平静下来就好。听音乐有助于程序员提高编程效率,进入到代码的世界。就像李白喝酒后诗兴大发,做出了流传千古的诗句一样。
别问我怎么知道的,因为我就是程序员。我
所在的几家公司,没有一家公司有过程序员不准听音乐的规定,因为程序的老大,上司也是程序员过来的,所以程序员的上司,老大都懂。只有这样的规定,听音乐要戴耳机。
网友六:
其实程序员带上耳机通常是告诉其他人不要打搅我。所以实际上根本没有在放音乐,或者是其实忙起来根本不知道自己听的什么歌??尤其遇到bug时候。
程序员其实上班都比较比较苦闷的,他们的世界好像都是与世隔绝,忘了吃饭忘了时间脑海里只有代码和没有实现的逻辑。
他们戴上耳机即使不听音乐也行,静静的数自己的心跳使得自己足够的安静下来工作,带上耳机隔绝一些嘈杂的声音使得自己更专心自己的编程。
程序这个东西着迷以后有特别的灵感和思路的时候是停不下来的,在程序员尽兴的正在写程序的时候最好别打扰,因为创做和灵感就在一瞬间的事情。
不过不是每个人都能接受程序员工作的时候戴耳机的。
我以前就听一个运营总监在批评手下的一个开发人员,因为这个开发程序员一直戴着耳机听音乐,完全不关心外面的世界,以至于他领导每次叫他很多次,叫很多声他都听不见,惹得那个运营总监最终发火了。
另外,其实从安全和健康角度看,也不太好一直戴耳机听音乐的,对耳膜的伤害非常大,所以程序员哥哥们,还是应该适当拿下耳机休息一段时间,多和周边的同事沟通交流一下,这样再回到工作中,也许状态更好。
❹ 程序员的交接工作
人在场的情况下进行,如果有一段交接期就更好了,可以让接替人在这段时间内参加交接人的项目,根据该程序员的重要性按下面顺序[重要性递增],交接工作主要针对未完成的项目任务进行:
1.目前未完成的软件代码和文档,代码和文档应相对应,关键代码应该有详细注释,各个模块的解释性文档,设计文档等.[这块如果公司有好的规范是很方便的,如果没有一个好的规范一般只有代码没有文档就很麻烦了,要求重新写出代码说明,规范代码注释.对关键代码要求交接人和接受人之间有口头的说明和解释]
2.目前未完成的设计任务,其中按其担当职责不同有下面几个东西需要交接:模块设计文档[系统架构/主程序员],模块变动文档[主程序员],模块测试文档[主程序员/程序员],系统测试文档[主程序员/系统架构],系统分析书[系统架构],需求分析书[系统架构/主程序员].要求所有交接必须项目经理,交接人,接收人三人在场,并口头解释说明.
3.人事关系交接,这块应该不属于项目交接了呵呵.
4.长期有效的联系地址或电话.
交接工作的成效考核:接收人必须对原有项目有充分的认识,能够完全代替交接人进行工作.所有文档符合规范,代码有充分的注释.已完成的测试文档必须详细.至此交接工作应该算是圆满完成了.
上面是一般性交接工作的流程和需要注意的地方,一个好的交接必须有完善的规范做支撑,才能达到事半功倍的效果,希望对LZ有帮助.
❺ 程序员的交接工作应注意些什么
程序员离职后进行交接工作时要考虑全面,具体有以下这些方面:
技术层面:
最后修改的代码提交入库Git或SVN。
自己整理过的技术文档。
自己使用设备(实体服务器、虚拟机、Docker等)的IP、用户名、密码。
自己的项目进度文档。
非丛野技术层面:
归还公司的工牌或者钥匙。
归还弯羡公司的设备。
办好离职埋郑拍手续。