如何自学引擎游戏引擎的开发

技术改变世界 创新驱动中国 – 《程序员》官网
作者: baiyuzhong
&&阅读:52,068 次
本文作者是一位游戏设计师,文中他将结合自身实践分析“门外汉”学习编程的难点,并分享利用可视化编程游戏开发工具学习游戏编程的经验。
开发游戏可能是学习编程的理由中最吸引人的一条了。但如何从零开始入门,达到能够开发游戏的编程水平,是困扰无数勇敢少年们的传统难题。作为一名游戏设计师,我没有系统地学习过编程。从5年前开始,我有了自己从头完整开发游戏的念头,于是断断续续地看了很多书,试过了很多入门方法和开发环境,但直到近半年才找到正确的门路。现在我在Unity开发环境下独立制作游戏原型和利用成型的框架完善游戏功能已不成问题。
本文会介绍如何从零开始学习游戏开发编程的方法,希望能为和我一样挣扎在编程大门之外的游戏开发爱好者们提供帮助。不过事先要说明的是,这种学习思路是为了帮助你在做游戏的过程中逐渐学习编写程序,不适用于其他领域,但作为一种入门方法,它能让你在半年到一年的学习之后,做到独立制做小游戏(或原型)。
门外汉学编程的难点
介绍学习方法之前,我们先看看门外汉学编程最常遇到的问题。
第一,程序员们经常说程序语言只是编程工具,但市面上常见的教程都喜欢从语法、算法和程序语言的使用思想开始教学,而不是把编程语言当做解决实际问题的工具来入手。因此,初学者经常耗费很大精力才能理解书上写的算法和思想,却完全不知道理解之后能用来做什么。
第二,很多编程教程虽然配有实例,但一方面例子的学习难度曲线增加得很快,刚看完一个“Hello World”实例,下一个例子可能就变成教你如何分配内存(真实的故事,我的一本学习Objective-C的教程就是这样的)。另一方面初学者在对开发流程不熟悉的情况下,很难做到举一反三,从一个实例里总结出做另外三个游戏的方法,我经常遇见看了三个不同类型的游戏实例,放下书后却连一个游戏都做不出来的情况。
图1 从Hello World到实际的游戏项目之间,有一条门外汉难以跨越的鸿沟
第三,很多编程教程为了提高普适性,在使用现成架构方面都很保守,导致了很多重复造轮子的教程出现。例如在前几年Cocos2D(一个用于iOS平台游戏开发的游戏引擎)还没有现在这么火时,几乎所有的iOS游戏开发教程讲的都是如何使用OpenGLES来制作游戏图像,而这些底层架构的实现对初学者来说是根本不可能完成的任务。
因此,适合初学者的学习方针是:从实际需求出发;“怎么做”优于“为什么”(为什么可以在入门之后再慢慢理解);使用允许你偷懒的工具或架构(需要做的越少越好)。这些要求其实很容易满足,答案恰恰在看起来和编程关系不大的领域——可视化编程工具里(Visual Programming Tools)。
可视化编程游戏引擎让你先做再想
可视化编程泛指一切使用可视化元素的操作代替文本输入的程序设计方式,大体上就是像画流程图一样通过连接若干“盒子”和“箭头”来实现程序逻辑。这个概念在游戏开发工具上的应用越来越流行,近年来还有井喷趋势,从老牌的GameMaker、RPGMaker、TorqueGameBuilder、到新兴的GameSalad、Construct 2和Unity都是其中的代表。尽管这些工具和引擎各有不同的开发方式,但它们都能让初学者在完全不懂编程语法和复杂算法的情况下快速实现自己的游戏设计。
图2 在Construct 2下用了7个小时制作的游戏原型,包括一个特别的同色连击系统
我之前的态度是宁可抱着“看也看不懂,看懂了也不会做”的书苦学XNA(一个微软发布的使用C#的游戏开发架构)和Cocoa(苹果发布的使用Objective-C的应用开发架构),也不屑于使用GameMaker、GameSalad之类的图形界面开发工具。认为这些工具属于“业余型”,就算能做出游戏来也是旁门左道,不能修炼内功。
直到有一次参加了柏林独立游戏BIG Jam的活动,接触了很多非常优秀的游戏开发者。他们大部分人都把GameMaker和Flash这些简单的工具当做制作独立游戏的最佳选择。原因是他们多年以前开始学习游戏开发时使用的就是这些工具,常年的使用经验让他们能在最短的时间里用这些工具实现想法。而使用这些工具从头到尾制作了大量游戏的经历,也在他们以后学习用编程语言开发游戏时打下了很好的基础。
从那之后,为了快速开发原型,我开始物色入门级的可视化编程游戏引擎。HTML5游戏引擎Construct 2偶然进入了我的视线。花十几分钟学习教程实例之后,我很快用几个小时做出了一个一直在构思的游戏想法(当然想法本身就很简单,而且制作过程中碰到实现困难的设计都进行了进一步简化)。说来惭愧,尽管在主机游戏业从业多年,这次使用Construct 2的开发过程中我第一次感觉到对游戏开发的整个过程和架构有了初步认识。
首先,可视化编程工具里一般都有一个现成的游戏场景(任何游戏开发过程中都需要一个画布或一个摄像机来描述玩家可以看到的图像范围),然后你需要把游戏中需要的各个元素(一般称为Actor,例如主角、敌人、子弹等,这就是编程语言里对象的概念)放进场景里,然后通过关联逻辑模块来让它们快速互动起来。Construct 2的逻辑模块使用了非常贴近编程语言的按行号从上到下的执行顺序。而且你将从教程中学习到,原来游戏开始运行后每一帧都会按顺序执行一遍所有的逻辑,这就是游戏开发的基本框架中最常说的主游戏循环(Main Game Loop)。
除此之外,用户使用逻辑模块时不用担心语法错误和算法的设计,一般这类引擎里都会提供大量现成的算法模块可供挑选。只要专注于设计游戏逻辑,其他事情可以说都是软件自动帮你完成。在观看教程和其他范例项目时也一目了然,学习别人的设计思想更加容易。
通过使用Construct 2独立完成了第一个游戏原型后,我学到了相似的游戏元素可以共享一部分属性(编程语言里使用类和继承的概念);学到了所有活动的游戏元素都需要在每一帧的循环里进行驱动,每帧只运动一小段距离;还学到了应该在主游戏循环的什么位置判断是否Game Over,以及Game Over时进入另一个循环来等待玩家重新开始游戏等内容。
这段经历让我认识到有能力从头到尾制作游戏(或者原型)对于游戏开发的理解有多么重要。但有一个问题出现了—如果可视化工具那么好用,那为什么还要继续学习编程呢?我当时也光顾着高兴了,并没有从可视化编程工具转到真正编写代码的计划,直到……
由需求出发向编写代码的转型
直到我打算做个稍大一点的战略游戏项目,才开始在各种游戏开发工具中碰壁。接连尝试了Construct 2、GameMaker、Stencyl,可不管哪一个工具都无法很容易地提供我所需要的数据结构。重新审视了需求的增加和工具的局限性之后,我才决定开始学习Unity下的C#编程。在请教了团队里的程序员和有针对性地学习了一部分数据结构知识后,我终于在Unity中搭建出了设计需要的基本游戏结构。并在之后开始正式学习Unity的C#脚本,一步步地掌握了C#里类的继承、列表和字典的使用与委托等难以读懂,学了也不知道怎么用的概念。
<img class=" wp-image-13158 " title="图3 Construct 2的Event编辑器其实就是主游戏循环的逻辑描述" ),完成了从可视化编程到代码编程的转型。
这就是Unity下的可视化编程插件很适合用来学习编程的原因:和其他较为简单的工具的区别在于,Unity使用JavaScript和C#作为脚本语言,这个环境下的可视化编程插件只是把C#函数和脚本打包成了可视化的逻辑块,并没有改变其设计思路。
对于初学者来说,用可视化插件组装起来的游戏逻辑和用C#手动编写的游戏程序几乎是一一对应的,有时甚至能精确到函数段落(例如Antares Universe里的函数块就和Unity的全部函数功能一一对应)。在已熟悉整个设计流程的情况下,只需查阅Unity官方的脚本参考手册,就能完成从可视化编程到文本编程的翻译。我经过可视化工具的启发,很快就发现插件有些臃肿和烦琐,也无法实现一些需求实现。在接下来的两个原型中就越来越多地开始手动编写代码,对工具的依赖越来越小,直到完全抛弃。
现在可以回答前面提出的“为什么有了不用编程就能开发游戏的工具,还要学习编程”的问题了。如果你的所有设计需求都可以被可视化游戏开发工具完成,那么确实不需要进一步学习编程。但如果有的需求无论如何都不能用其他工具完成,那么自己写代码来实现就是唯一的出路,这时你有强烈的需求和目标,就可以通过询问或搜索“怎么做”来学习编程并满足需求。我的程序员好友经常说:“能否学会编程其实只取决于你的需求是否强烈,不得其门而入、或半途而废的都是需求不够明确或不够强烈的人。”
可视化编程工具对于游戏开发者来说就是一个筛选需求的过程:在硬啃编程书籍时,感觉自己有100个需求,但都不知道从哪开始学习、如何去实现;使用可视化工具,可以轻松实现90个需求,剩下10个就被放大并明确化了。接下来依靠上网学习或向他人请教,终究也能自己实现(个别超出能力的需求不要强求,请别人做或者放弃都比钻牛角尖要好)。
图5 和Unity API里的函数几乎一一对应的Antares Universe的可视化编程
可视化编程工具能够培养我们由浅入深的思考习惯。先尽可能地用简单的逻辑去实现设计,如果用“盒子”和“箭头”无法完成,那么你在寻求代码上的解决方案时,就回答了“为什么要用这样的程序设计思想”的问题。经历了这个过程,你对“为什么”的理解会比一开始就去看专门讲解“为什么”的大部头程序书籍深刻许多。而通过实践理解了需求和程序设计之间的关系后,再去系统地阅读程序设计教程效果会好得多。
可视化编程虽然依赖于工具,但也能帮助你时刻把“程序语言即工具”的概念装在脑袋里。之后无论换什么引擎,用哪种语言,首先应该问自己:“这个工具能帮我做什么?我要怎样做才能实现需求?”另外,程序设计和画流程图之间的距离没有想象中那么大,通过反复用可视化编程工具画“流程图”的过程,能够从实践中学习各种游戏设计的实现方法,当你能准确地画出逻辑完美的流程图时,离你写出同样逻辑完美的程序距离已不远了。更重要的是,在这个过程中你实现了自己的想法,创造出了和书上的例程完全不同的东西,对于增强信心和进一步明确自己的学习需求的作用都是巨大的。
想学写程序,就要做程序员的朋友
最后讲下如何从身边的程序员那里获得帮助。初学者想要学写代码,有个程序员朋友能让你获益良多。当你遇到难题时,请把询问的重点集中在需求思路和关键字上,而不是一味求代码。高手提供了思路以后自己实现,或通过关键字自己寻求解决方案,都更有助于水平的提高。
从可视化编程到代码的转化中,也可以尝试使用程序员写的功能库或常用的架构。前文中提到不要重复造轮子,当抛弃可视化编程工具时,就要用现成的功能库来代替。在选用功能库时,自己信任的程序员推荐的东西总会是一个非常不错的选择,他能告诉你一个库的优缺点并且在使用过程中提供技术支持。
我在学写代码的过程中,先是自己用最简单的方式实现功能,然后一边不断阅读和学习同个独立开发团队里程序员的项目结构和代码,再使用程序员设计或惯用的架构来组织自己的代码,这样既能最快地完成工作,又能逐渐养成较好的编程习惯和深入理解程序设计思想。
流行的可视化编程游戏开发工具及简单点评
GameMaker是已有十多年历史的老牌独立游戏开发引擎,也是在世界范围内最受独立游戏开发者欢迎的引擎。巨大的用户基数和独立游戏圈用户们乐于分享的精神使得学习GameMaker非常容易。该引擎有自定义的脚本语言GML,方便用户使用脚本代码实现更高级的功能。最新版本的GameMaker Studio可以发布到iOS、Android和HTML5等各种平台。
比起GameMaker学习起来更容易的HTML5游戏引擎,它的事件编辑界面(Event Editor)非常接近写单一过程的程序代码的模式和习惯,可以帮助初学者学习最基本的游戏循环构架。Construct 2本身的泛用性不如GameMaker,但仍然处在高速发展期,新功能添加的很快。
这是一个很受业余爱好者和游戏开发初学者的图形界面引擎,逻辑功能全部都放在一个Library里,用户只要把需要的功能拖拽出来,填上参数,再和其他功能建立连接就可以实现游戏逻辑。只能在Mac下使用,可以发布到iOS和Android。
使用Flash内核的游戏开发引擎,总的来说和GameSalad比较接近,可视化编程的部分由很多拼图积木组成。逻辑积木的组合方式比较灵活,可以尝试很多解决问题的思路。
非常流行的民用商用二合一引擎,不过其可视化编程的模块(PlayMaker、uScript、Antares Universe)需要另外购买,对于初学者来说,最大的好处是一开始可以把大部分的功能交给工具完成,然后一点点地添加必要的代码,直到可以完全不借助工具也能写出完整的游戏原型。
作者王楠,毕业于浙江大学,2008年加入德国YAGER工作室至今。2010年联合组建了aBit Games独立游戏开发团队,首个作品《Super SheepTap》获得IGF China 2011最佳音效奖。
全球最大中文IT社区
专注于移动应用开发者的创优和创富
做领先的云计算技术传媒
面向软件开发者及管理者的专业月刊
CSDN和《程序员》创始人
CSDN&《程序员》总编
《程序员杂志》iPad下载
- 285,536 次 - 238,171 次 - 193,922 次 - 140,798 次 - 127,476 次 - 121,097 次 - 112,413 次 - 105,622 次 - 103,979 次 - 101,059 次
敏捷实践中您都采纳了哪些方法?
AMDD(敏捷模型驱动模型)
AUP(敏捷统一过程)
Crystal Methods(水晶方法族)
DSDM(动态系统开发方法)
FDD(特性驱动开发)
MSF(微软解决方案框架)
RUP(统一软件过程)
XP(极限编程)
&Loading ...如何自学游戏引擎的开发?
【张静vinjn的回答(29票)】:
没有必要刻意的区分和游戏,对于而言,得多了,自然会把可重用的部分提取成 library。而这 library 逐渐丰富起来,便成了引擎。
如果你一开始就抱着我想做的是引擎,而不是游戏的态度,那这个事情就有点扭曲了。如果你没开发过游戏,你怎么知道游戏引擎里需要哪些组件呢?是吧。
所以想开发引擎,最靠谱的方法就是,去开发游戏,各种类型的游戏。俄罗斯方块、2048、第一人称射击等等,0D、1D、2D、3D、4D 都需要试试。
以下是哗众取宠的跑题时间(居然被一名学生批评哗众取宠,不开心呀)
0D 就是说没有任何画面 RGB(0, 0, 0),可以用麦克风来控制、再用音乐来反馈。
1D 就是只有一维,比如一个点在一条线上移动。
2D、3D 大家熟悉。
4D 是 3D 配上奇怪的电子设备,比如 Kinect、Arduino、Oculus Rift、Vibrator(咳咳)等。
【知乎用户的回答(8票)】:
我们公司引擎部门新员工,一般会有两个入门练习:
一是只用类似DrawPixel的函数,实现一个软件光栅化。
二是使用自家引擎做一个完整游戏。可以比较简单,但必须完整。
一个去鹅厂的小伙伴也做过类似跑酷类手游作为练手。
所以我觉得,从学习的角度,其实两个项目一起做,并不冲突。
做一个自己的引擎出来,满足技术好奇心,也能试验想法;
用开源引擎做一个类型的游戏,能了解组成部分和主要需求。
楼上有好多关于做游戏还是做引擎的讨论,都是有道理的。
如 等所说,如果没做过一个完整的游戏,直接只做引擎,学习的效率和引擎的质量都不会太高。
但在很多人心里,会把引擎开发的这个工作神话。这种时候自己做一个引擎,对提高自己的信心会有帮助。大部分贬低引擎开发工作的人,至少都是有能撸一个的底气的(且不说质量)。
-------------------------------------------------------------------------------------------------------------
所以对两个方面,我都推荐一些自己感觉不错的资料:
游戏逻辑方面:推荐一个网站, ,作者把自己的书放github上,供读者提意见。
引擎架构方面:Game Engine Architecture,这本得看中文翻译的。
图形引擎方面,主要是算法和API,引擎架构抄一套别人的。
图形基础算法书籍:在lz的基础上,推荐一个3D Game Engine Design,里面的3D算法和原理讲解很详细,可惜有点老。
高级图形技术:除了Real Time Rendering 3和GPU Pro系列以外,可以跟KlayGE和OpenGPU。这个方向量力而行,国内现在的行情是转手游的多,一些复杂的效果研究太深入也可能发挥不了。
软件光栅化可以简单理解为,只给你一个画点的函数,你需要用C++实现一个三维物体显示的过程。一般这个工作是由Direct3D/OpenGL的驱动实现来做的。
这个工作可以做的很难,也可以很简单。我们公司貌似所有客户端程序都会做这个,但要求跟老大有关。
最基本就是实现一个固定管线,包括顶点坐标的矩阵变化,画线,三角形填充光栅化算法,裁剪,Gouround光照,纹理坐标插值,ZBuffer等等。
要做好点,就可以把一个引擎Renderer部分的借口都实现了,用C++写个VS/PS,跟D3D/OpenGL平级。
【刘然的回答(6票)】:
一点一点回答
题主问的图形引擎开发:
刚好写过一个,这个你一开始可以参考ogre看看,你需要主要研究的内容主要包括但不限于以下部分
场景管理(关键中的关键)
渲染流水线结构Shader场景Culling算法下层图形接口的抽象
最好的学习方法还是从利用现有引擎开发游戏做起,和其他答案说的一样,游戏引擎本来就是抽象出来的一个东西,没写过游戏就写引擎,还是算了。
涉及游戏引擎开发的公司有哪些?
一句话,如果你想做研发,建议还是来我司。
这些公司对游戏引擎开发的职位要求是什么?
招人的时候一般是研发的统一招,不会单独招做引擎的,这个是进来以后的事一般没有新人做引擎的情况以及将来面试时应该如何应对?(把自己写的Demo给他看?)
这个说明不了什么,研发岗位更注重的是表面上看不到的东西,我指的架构程序的能力。当然如果你有水平做这个,面试的时候可以多讲讲,水平高下自然能看出来。
基本就是这样。
【知乎用户的回答(7票)】:
想做图形引擎开发就问怎么学做图形引擎开发,别跟游戏扯上关系。图形只是游戏的一部分而已。
觉得图形引擎技术含量高?AR,CV这种简直笑蛤蛤。
一说游戏必提3A的,不是门外汉就是干了几年还摸不到门道的主儿。
言归正传,想学游戏引擎开发,三个步骤:
1,用现成的引擎写个游戏。
2,自己随便找个开源的造个轮子,把之前写的游戏里用的第三方引擎替换掉。
3,各种看siggraph,隔几天就想办法把里面提的东西实现下加自己的轮子里。
当然其中最难的是第一步,最枯燥的是第二步,最顺理成章的是第三步。
做完这三步,题主绝壁比去虚幻啊ce啊这种国外的引擎公司去当螺丝钉的家伙不知高到哪里去了。
【大萨比的回答(7票)】:
苦心开发游戏引擎的人很少,哗众取宠的回答都被顶到了前面。
我虽然也不是什么专家,但是在这里也试着给LZ一点自己学习的心得。我假设LZ的目标是去Crytek,Epic之类一流公司做引擎开发的有志青年。
首先推荐给LZ一个论坛,
这上面有不少和LZ一样正在学引擎开发的小伙伴。不要去gameres,那里的东西都是过期的,看了没好处。
你提到的那几本书是要看的,没错,都看。
其他需要的书知乎上蛮多人都讨论过了(我觉得已经被问烂了),你可以看看Milo Yip在知乎上答过的问题。clayman推荐的一些书你也可以看看,
我的个人建议是推荐LZ去学11,实时图形学的历史本来就不长,你还抓着10年前的API不放真是说不过去。
关于DEMO,我觉得十分必要,亲自写了才知道自己还缺什么需要学,另外写DEMO很有成就感。
至于招聘的情况不容乐观,国内做3D引擎研发的非常少,腾讯招人,但开出的条件都是AAA工作室的要求,尤其是要工作经历的比较多。(忍不住吐槽:本来还很期待天刀,现在横看竖看都不是AAA,糟蹋人才)
你看看其他的答主就能理解其他厂商都在做什么了。投钱搞研发不如直接做游戏挣钱,“钱”要越快越好。
据说国内大批的游戏人都通过育碧走向了全世界,capcom在国内也招人。
顺便YY一下游戏机进来了国内也会有一定缺口。
最后我说的都是空话,如果你没能力下苦功钻研几年。
------------------------------------------------------------------------------------------------------
看了回复我发现不少人对我的回答存在误解,我觉得要再码点字。
题主加了个PS,说主要是问图形引擎,即便不加,题主问的也是图形引擎。
正如大家都说的,游戏引擎不过就是把游戏重用的部分提取出来,所以研究价值不高,但是各位可以看看大型游戏公司发表的论文,公布的技术,几乎全是实时图形学的研究,无论是siggraph,GDC。有谁见过游戏公司出席物理学会议的么?
如果题主只是在问游戏引擎的话,也就是说图形引擎也用中间件,那么纯粹是个组装拼凑的熟练活,“做一个完整的游戏”更能练手。
关于AAA,有人一看到这个词就像打了鸡血一样跳出来骂我,大可不必,这个回答又不是在教你“如何混进AAA工作室”
我只是个在校的学生而已,知乎上只会摆资历不讲实在话的人不少,我们天朝人的浮躁就在此暴露无遗。
我不想被人说是在“装b”,所以贴一个自己的博客。
一来题主可以和我交流,我也是从头开始一点点自学的。二来喷我的那些“工作经历x年”的人们,你们大学时代在做什么?你们进公司当螺丝钉都是高抬了。
另外我进的公司还真不是BAT那样的大公司,引擎开发今年只进了我一个。
【李洋的回答(4票)】:
自己写引擎都是坑有木有。。。
以前在某公司参与过自研引擎的开发(工作需要,本身渣水平),当然目的还是要做游戏(当时cocos2d-x才刚出来,很不成熟,也没啥人用)。当时我不是负责图形部分(游戏引擎不仅仅只是渲染引擎一个模块),因为要配合游戏开发,所以当时的引擎特性根本定不下来。接口三天两头的改,前一天编译无误的代码第二天可能就因为别人某个模块API名称或者参数个数的变化导致编译出错。更不要提各种bug了。
=========吐槽的分割线==========
好吧,言归正传。回过头来,感觉很多东西不经历一遍是很难做到完美的。引擎也是,不写上几次估计都不能算入门。初学最好的办法就是模仿。找几个出名易用的引擎,看看他的整体结构如何,怎么划分的模块。有什么特点。最好再多用用,体会一下对方为什么这么设计。然后思考一下对方的有什么缺点,自己如何改正,然后试着模仿一个出来。不过估计第一次都会痛苦嘛,以后就好了。
你看苹果发布的SpriteKit跟cocos2d有多像,几乎就是换了一个名字。cocos2d简直成了2d引擎的代名词,各种模仿也由此而来。而且cocos2d-iphone,cocos2d-x,cocos2d-js的代码也很容易获得,是个参考研究不错样例。
3D引擎在移动端基本上一家独大了,不过可惜不开源,看不到实现,不过整体思路倒是可以参考。其实还有一些开源的3d引擎,不过现在不太流行就不赘述了。真想学习的话,Irrlicht是个不错的东西。而且这东西很容易编译到移动端。
最后,游戏引擎是一个综合工程,不仅仅只是图像的堆砌,还有声音,网络,UI,物理等等模块。而且很多底层都要有坚实的高等数学和线性代数基础。
希望以上文字对你有用。
【AlexZhu的回答(3票)】:
基本上正如
说的那样,引擎就是从游戏里来的,所以早期的引擎就是游戏的复用部分,像QUAKE(开源),通用引擎是很后来的事情了。既然题猪提到了游戏引擎架构这本书,我就拍一页做范例加了些框框给你参考(希望没侵权= =)。这是作者理解的游戏引擎的共通的组成部分,上层的是游戏开发者会用到的,底层的是引擎开发商提供的。题猪正在学习和深入的DX其实是底层的其中一个方面(试试找找?:)——换句话来说,世界很大,术业有专攻 :)
常用的引擎有哪些?UE(腾讯英佩),Cocos(触控), Unity比较多吧。通用引擎大同小异,学会了一个对其他也有质的帮助(咦,我没有在说C)。QUAKE、OGRE等开源引擎是很好的学习/理解材料,但是对题猪在国内找工作可能没太大帮助。
游戏/引擎的开发我觉得更像是拍电影,有很多的组成部分特别是艺术的。建议题猪把目标放在尽可能多的开发不同种类的游戏上,积累了足够的理解和经验后再着手引擎的学习,相较于学习引擎然后面试一份工作要合理一些。
Good Luck!
【知乎用户的回答(5票)】:
引擎复引擎,引擎何其多,吾生待引擎,游戏成蹉跎。
所以,还是直接做游戏的好。
不同类型的游戏做多了自然而然就会产生引擎了。
大公司一般都自己培养人,小公司基本都是抄open source。
初学者进公司不可能让你负责引擎的,没几年的业务积累,根本不知道引擎业务到底是做什么。
都是从一线业务开始,比如UI之类的比较繁杂的东西。
所以还是从最基本的做起吧。
做引擎真没啥高大上的,又不是黑科技。
为做游戏而做游戏,而不是造引擎。
游戏逻辑之类还有编辑器搞起来比引擎复杂多了。
【牛大宝的回答(1票)】:
首先声明我水平不高
我觉得游戏引擎开发和游戏开发需要的知识内容是一样,学游戏开发和学游戏引擎开发没有本质区别,除了现在国内普遍的快速开发门槛较低以外
鉴于有人看不懂我在说什么,补充一点
题主可以参考这篇文章,比较全面
其中的知识我觉得不管对游戏引擎开发还是对游戏开发来说都是必要的,随意我觉得两者没有本质区别
【芦小的回答(0票)】:
。游戏引擎作为一个整体,是从游戏中不断抽象出来的。不论是技术角度还是商业角度,引擎都不可能脱离游戏而单独存在。
但是就个人发展而言,楼主应该是对技术比较赶兴趣,而对游戏本身兴趣不大,所以才只想去做引擎(或者只是简单觉得写引擎技术含量更高)
如果没有一定的游戏开发经验,应该不大可能驾驭的了引擎整体架构这种工作。但是深入研究游戏引擎的某一个领域对于楼主可能是比较好的出路吧,比如图形,智能,网络。确实也认识不少不玩游戏,只是喜欢某个技术而入行的。
【知乎用户的回答(0票)】:
《游戏引擎架构》这本书好像可以满足题主接下来的需要,虽然我也没看过。。。
【乌不归的回答(0票)】:
自己从c++开始写游戏才有用。公司自研引擎的目标都是做游戏。以做引擎为目标去做引擎,10个引擎9个都没用,没用的引擎等于没做。
的说法“如果没有一定的游戏开发经验,应该不大可能驾驭的了引擎整体架构这种工作。”,建议楼主专攻一个领域。比如图形,另外Dx不是基础,要学图形题主应该从基础开始。例如《Real-Time Rending》这种书应该看在Dx前面。
【逍遥剑客的回答(0票)】:
自己写游戏
【GameOrange的回答(0票)】:
先研究下开源游戏引擎是怎么回事,先学会用游戏引擎开发游戏,再研究游戏引擎。 推荐学习研究下开源的OGEngine,也可以加入OGEngine开发者讨论群和开发者讨论
【Huangzhidu的回答(0票)】:
先把c++玩熟,再把图形学要用到的数学和物理基础吃透(这部分涉及的可不少),再看图形接口的书,顺便向底层拓展一下。之后就可以一边练小程序,一边攻克渲染方面的难题了……(我也不是学图形学的,一直在摸索前进,所以答案仅供题主参考,共同努力吧)
&&&&&本文固定链接:
【上一篇】
【下一篇】
您可能还会对这些文章感兴趣!
最新日志热评日志随机日志

我要回帖

更多关于 android游戏开发引擎 的文章

 

随机推荐