做游戏开发都需要掌握哪些知识,沈阳有没有相关培训_第2页回答

2020-09-16 21:32发布

做游戏开发都需要掌握哪些知识,沈阳有没有相关培训

做游戏开发都需要掌握哪些知识,沈阳有没有相关培训

11条回答
Emma - QQ:1548057217
2楼 · 2020-10-02 10:04

 1、喜欢游戏的心于坚持下去的动力


  有爱有动力,才能坚持,做游戏也是一门“手艺”,一下子就成功的例子也不多,有的游戏开发周期长,坚持下去要顶住很多的压力,但是只有有爱才有动力,才能完成。


  2、一定的经济基础与受教育程度


  我觉得如果想要做独立/同人游戏,还是自己经济上不要有压力的为好,制作独立游戏风险很大,市场也不成熟。另外,一个人的品味,学识,教育程度,技能程度,前瞻性,往往和经济基础相关。家庭条件不好,高中辍学说要做游戏的案例很多,但是往往不会有太好的结果。还是应该先“忍辱负重”混入大学,虽然国内大学教育有些蠢,但方向基本还是对的,到了大学再转行也不是问题。


  3、英语


  为啥我把英语的重要性甚至放在程序之前了,是因为我觉得真的英语太重要了。我个人学生时期一直不喜欢英语,英语也一直不好,好不容易才低分混过了Toefl,导致申请的学校也不是很好,但是我从没否定过英语的重要性。我很早开始就是强行限制自己用英文操作系统,玩英文游戏,有问题用英文问Google,给自己一个英文环境慢慢记忆单词和提高阅读能力。英文最大的作用就是,给你一双眼睛,能让能够看到更多的第一手信息。现在主流的游戏引擎的文档,官网的教程,YouTube的教程,基本都没有中文的,中文的游戏开发社区和英文的社区也是差距很大。会英文能够极大的扩大你资料搜索的范围和搜索能力,外国网站也更容搜索到技术问题的答案,举个例子,当你用百度搜索查找Unity的API脚本bug,结果搜出一个百度知道时。。。那种崩溃的感觉不用我说了吧。另外,英语能够提高一个人其它各方面的修养,社交能力,对游戏很有好处。


  4、至少一门编程语言


  具体是哪一种语言,我是觉得无所谓的,特别对于完全不会编程的人来说,选择哪一门语言入手完全不重要。因为很快,当你成为码农的时候,同时会几门编程语言一定会成为家常便饭的。。。不过如果是想做游戏,还是非常推荐大家使用Unity+C#的组合。C#这门语言非常不错什么的知乎大概已经讨论过1w次了,这里就不说了。


  不过这里要特别说一下C++,现在这么多语言,唯独C++是特殊的存在,因为目前几乎所有引擎游戏脚本语言可以千变万化,但是渲染底层都是C++的。C++是最涉及到计算机原理,渲染原理的语言。3D渲染都有个“渲染管线Render Pipeline”的问题,基本都要从C++的层面去理解,虽然不一定要使用C++,但是得大概知道,你这么做大概会有个什么结果。


  5、一定的游戏用数学知识


  无论做3D游戏还是2D游戏,将会大量涉及到的一个东西就是游戏的数学问题。主要集中在线性代数,特别是矩阵坐标的各种变换。当然在实际游戏或者编码中,是不需要自己去演算的,但是编码的时候要知道用什么公式能出什么结果。比如向量的加减意义,矩阵相乘的意义,旋转变换矩阵,四元数等等。 如果有机会,自己可以试着看一下引擎的数学函数库的每个函数是干嘛的,就能基本都了解了是为啥了。当然有的复杂的变换也不是随时要用,需要的时候去查也行。 比如要把一个物体从UI的镜头空间里变换到游戏场景的空间里去,需要什么样的计算大概有个数基本就可以了。


  6、渲染管线


  这方面的知识匮乏,是主要决定了国内大部分独立游戏制作者只能制作2D游戏,大部分美术工作者无法参与制作3D游戏,或者3D游戏画面粗糙的原因。对于新手来说,也听不太懂什么叫做“管线”这个英文单词是Pipeline,我觉得应该翻译成流程更好,说白了就是图形渲染的过程,其中包括多边形绘制,采样着色渲染,也包括动画导入播放等等。目前大部分游戏引擎都简化了这个步骤,也提供了很好的预设,但是理解其背后的意义与实现方法还是很有必要的。总的来说,这一块大概就是一个模型如何正确的导入引擎,如何渲染出想要的效果等一系列的综合知识。想要学习的话,对于新手来说,可以从专业名词开始一个个理解,知道分别是什么,不过进一步深入学习还是需要一个比较长时间的积累和一定C++基础的。


  7、Photoshop等平面图片处理技术


  这个就不用多说了,一般游戏都离不开的工具。可以用来制作各种2D,UI素材和模型贴图。做游戏的话其实也不一定要会画画,但是基本的剪裁,调整图层等技巧还是要会的。PS不难学,还是很快能掌握的,而且平时生活上PP图还是很有用的。


  8、一款/数款3D建模,动画制作软件


  3D建模常用软件有 3DSMAX,MAYA,Blender等,各有优劣。个人觉得对于游戏来说Maya建模+3DSMAX制作动画是比较好的流程。3D建模动画软件对于新手来说,还是相对比较复杂的,因为刚接触的时候会一下子接触到很多新的概念,不过这方面很多的概念和渲染管线的重合度很高,可以互相学习借鉴。


  9、美术综合技巧,美感与品味


  以上所说的软件说到底只是工具,但核心还是综合美术的技巧,美感与品味,游戏做出来效果如何,UI怎么摆,游戏镜头怎么处理等等一系列问题,都是个综合美术的技巧,不是说某个环节非常厉害,全局把握就厉害的,当然也有能够全局把握好的美术高手。制作游戏,特别是初期实现阶段,不懂技术的话,容易没有话语权,没有话语权的话设计也就轮不到你了。


  10、游戏性的设计


  这个是个很大的范畴,但是我个人觉得,其实电脑游戏从最初到现在,基本上大部分游戏的玩法都有人做过,只是有的做的成功有的不成功。 比如说迷宫在暗黑2,在仙剑中的感觉和轩辕剑的感觉都是非常不同的。游戏的很多元素都是可以剥离出来的,比如需要增加游戏时长就可以做更大的地图,想要增加紧张感就加大操作频率,想要显得游戏智商高就做点巧妙的解谜。如何抽丝剥茧的把不同的玩法整合到一起,配上比较好的剧情美术等等,就是很不错的游戏了。游戏的制作实现是技术的工作,而游戏最终的成功,一定是游戏设计的成功。


  11、故事情节编写


  游戏的设计和故事情节一般都是分不开的,(除了有些完全不需要故事情节的游戏)大部分正儿八经的游戏还是需要一个故事情节的。故事情节要和游戏其他的设计结合好。由于游戏制作中可能有许多限制和困难,游戏并不是什么都能表现的出来的,那么有点时候修改游戏剧情为游戏设计方面的问题服务,让整个剧情结合游戏看起来合理也非常的重要,总的来说需要一个全局的考虑。


  11、音乐/音效制作技巧


  游戏的音乐音效总的来说还是比较容易外包出去的,价格一般还比较合理,而且免费的资源和付费的资源包也非常多,总的来说这个问题很容易解决,而且玩家对这些也不是很敏感,只要不难听就不会有人吐槽了。所以如果不懂音乐,那至少也要会找正确的人帮你做音乐。当然音乐极好的游戏,肯定是游戏的加分项。


  12、版本管理


  这个版本管理确实应该专门说一下,因为确实非常重要。开发的时候,特别是坑挖的比较大的时候,会发现乱七八糟的事情,代码,美术资源会越来越多,多人合作的时候项目不同步也是大问题。版本管理虽然是个“小事”但是实际工作的时候会发现这东西其实没那么容易,能正确使用也是一门“手艺”。这里我们使用的是Perforce,Git的话虽然很火,但是其实感觉没想象中那么好用(也有可能是我用的不熟练的问题)也要考虑到很多人不会用命令行的问题。


  13、游戏引擎


  游戏引擎选用也比较重要,这个年头我觉得如果是想做游戏而不是搞技术,那还是用别人的引擎把。游戏引擎现在比较火的 Unity Unreal CryEngine等等基本都是跨平台的,给人区分的第一印象都是画面的好坏。但是我个人觉得游戏引擎选用还是应该优先考虑合适不合适这个问题,还有引擎容易不容易上手,工具多不多的问题。说到底无论什么引擎最终都是要通过Dx或者OpenGL之类的图形接口来渲染的,只是各种引擎预先配制好的渲染功能和方便调整效果的工具不同导致画面不同,如果水平高,Unity也能做出类似CryEngine的效果(当然没那么方便了),但是用CryEngine做手游,估计就没Unity方便了。游戏画面好不好,美术的水平也很重要,容易用容易上手的引擎,可以让一般的美术工作者稍微学一下就能开引擎自己调整游戏中的效果,这点也是很重要的。游戏工具多不多也非常重要,因为不可能全部的功能都自己去实现,针对这个引擎的“插件”多,也能大大简化开发的流程,或者做出一般人做不出的效果。


  14、Shader或材质


  写Shader是个很高级的事情,因为需要综合能力特别多,需要懂程序还要懂美术,不过现在好多引擎都附带了材质连连看,很多美术就都能做了。但是怎么连效果好资源占用少,还有很多选项的意义,就需要有一些渲染方面的知识了。当然有的东西连连看解决不了的时候,就需要自己去写了Shader了,然而这方面的学习资料少的可怜。


  15、整合能力,其他综合性技能,学习能力


  以上说了这么多,最终能够整合到一起,还需要有很多工作,比如各种小工具,各种小技巧的运用积累,都是需要比较长的时间去慢慢体会提高的。学习能力是保持自己不断进步的前提,也是开发过程中带来提升的动力。


樱田妮妮NiNi
3楼 · 2020-10-17 14:58

(1)软件开发技术

很多人认为,干吗要学习软件开发啊,那还不如直接去学什么JAVA、C++、C#了。要知道,在以后的软件测试工作中,你就会发现软件开发与软件测试之间是什么样的关系了。没有软件开发,就没有软件测试,有了软件测试,软件开发出的软件产品才能够达到用户满意的地步,他们之间是相互依赖关系。有了更多的软件开发知识,就会更好地能理解软件产品,就知道在哪个环节开发人员容易犯错误,知道在哪个逻辑结构、哪个接口或函数,甚至是从内存的管理机制上都可以找出问题。

软件开发所用的程序设计语言有很多种,所以要精通其中一门,其他能看懂代码,会对你的测试工作有更好的帮助,另外也会帮助开发人员进行快速缺陷定位。

而且在软件测试工作中,要编写一些辅助测试的小工具,都需要有软件开发基础。象测试过程管理工具、测试用例管理工具、缺陷跟踪工具、性能检测工具等等。

不要老是认为软件开发难,什么事都是从不会到会,从不精通到精通,都需要一个过程。没有人一生下来就什么都会的,都需要自己的不断努力才能成功。

(2)网络技术

软件是从字符界面产品发展到图形界面产品,从单机版到网络版(C/S结构和B/S结构),经历了一个漫长的过程。计算机网络的出现,改变了现实社会中人们的相互沟通方式,把一个小小的地球变成了一个地球村。所以,目前所有的软件产品都从传统的单机模式向网络模式转变,网络技术就更加关键。

目前网络的发展,使得网络速度进一步提高。目前,家庭网速达到1M~2Mbps,企业达到4Mbps,据说要到2012年家庭的网络速度要达到20Mbps。那么网络硬件从传统的电缆到目前的光纤技术、无线通信技术。从目前的发展速度,三网(电信网、电视网、计算机网络)合并是迟早的事情。

网络硬件协议的测试,也是网络设备生产商要做的工作,比如华为和中兴电子。

(3)数据库技术

现在的数据信息是海量的。在目前的软件产品中,底层架构中就需要有数据库进行数据存储,那么对数据的增删改查的操作是软件测试人员必须要必备的技能。数据库测试也是测试技术的一种。

(4)测试与质量保证技术

精通软件测试理论,熟悉软件测试流程,理解软件测试的哲学思想,掌握软件测试每个阶段的文档编写技巧,掌握软件测试的策略与各种测试方法,掌握测试用例的设计方法。掌握单元测试、集成测试、确认测试、系统测试、验收测试等每个阶段的测试技术。软件质量保证知识、测试项目管理、测试团队建设知识也是必须要具备的。

掌握软件测试自动化工具,理解软件测试自动化测试框架,能够学会如何进行测试项目管理、回归测试以及性能测试,能够把性能缺陷进行定位。

软件测试还是一个崭新的学科,还没有形成一个独有的知识体系,还需要我们不断的研究与实践。

(5)行业知识

目前软件测试涉及的行业是多种多样的,从金融产品到电信、游戏、汽车、杀毒、网站、企业管理、学校教育、本地化产品等等,各行各业的软件产品都需要大量的测试,所以相关行业知识的储备也是必须的。

(6)职场规范

职场礼仪是必须的,你是否适合某个企业,能否融入这个企业,基本的职场规范是要学习的。必要、有效的沟通也是软件测试人员所必须掌握的技巧。


相关问题推荐

  • 回答 6

    第一步:对着Assets点击右键,选择ExportPackage第二步:选择场景文件以及和场景相关的资源或者素材,然后点击Export第三步:给导出的资源取名,并且选择要保存的位置即可

  • 回答 87
    已采纳

    玩游戏玩的很好,说明你对于游戏里面的规则、剧情设置还是比较了解的,对于从事游戏相关岗位来说也是优势之一。但是学习游戏开发还是要对游戏开发的工作内容做进一步的了解,游戏开发涉及代码较多,可以通过进一步的了解,判断自己是否适合学习这个方向,另外...

  • 回答 18

    个人觉得如果有一定的技术基础的话还是可以考虑自学,如果零基础的话可能会有些难度

  • 回答 11

    游戏开发入门不难。后期发展需要你有丰富的奇思妙想。游戏开发肯定是培训好,自学学得不系统,并且不易发现自身薄弱之处。游戏开发的学习时长还是要看你自己对知识与技术的掌握能力,一般来说,游戏开发的学习时长大约在五个月左右。...

  • 回答 10

    问题还是出在粒子的sorting fudge。在unity的2d模式下,游戏本身的背景相当于是sorting fudge的0,当你把粒子的sorting fudge设为0以上的时候,粒子就都会被背景盖住。所以在3d模式下给alpha正值来给add垫底的话,到了2d模式下就会通通不显示。所以遇上这样的...

  • 回答 17

    虚幻4引擎,你会看到和平精英加载页面左下角有这个图标。

  • 回答 8
    已采纳

    转载知乎上的两位答友的回答,各有道理。作者:风小锐链接:https://www.zhihu.com/question/322249959/answer/675883379来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。未来Unity有可能出现3A大作吗? 有可能。基于Unity已...

  • 回答 11

    在Assets文件夹里面.点击右键Create/Material即可以创建材质球

  • 回答 23

    可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...

  • 回答 18

    粒子系统由粒子发射器、粒子动画器和粒子渲染器三部分组成,主要用于游戏场景中一些特殊效果,如水、烟火等等

  • 回答 18

    首先,Python开发游戏非常尴尬,原因是没有好用的游戏开发库。Python开发游戏仅推荐PyGame,PyGame是对多年以前很流行的游戏开发库——SDL的封装。但是说实话功能太简陋了,做个动画都得考虑刷新的问题。楼主要做简单小游戏,只需要画一两周熟悉Unity引擎,然...

  • 回答 9

    1.标记水体碰撞的位置2.计算水波的传递 通过波动公式,3D或者2D 波动公式都行3.水面顶点采样波动传递结果计算结果做顶点Y轴偏移

  • 回答 15

    Unity3D中两种阴影的实现传统的ShadowMapShadowMap说起来十分简单,把摄像机和光源的位置重叠,那么场景中该光源的阴影区域就是那些摄像机看不到的地方,主要应用在前向渲染路径中。具体实现分以下几个步骤:如果有平行光开启了阴影,Unity就会为该光源计算它...

  • 回答 18

    Doozy UI是Unity UI视图层的框架,本身使用的还是UGUI的组件,但提供了一套强大的UI管理功能,可以很方便的实现一些炫酷效果,方便的UI系统管理与事件传递机制。

  • 回答 12

    Unity3d更好,因为U3D占有的市场更大,目前cocos大都是用来开发棋牌游戏的,在这方面它有着巨大的优势。而Unity3d既可以用来开发大型3D游戏,也可以用来开发vr游戏、vr应用,这是比较不错的,未来有着巨大的前景。另外ue4也是个不错的选择,近年来用ue4开发的...

  • 回答 11

    当Unity 需要做热更新的时候(2013年开始),而普通的C#又做不到的时候,而对于游戏行业来说Lua脚本热更新已经是很成熟的方案,自然Lua 热更新就成为了Unity热更新的首选。

没有解决我的问题,去提问