|
本文已经GAD-腾讯游戏开发者平台授权发布
游戏引擎的目的在于迅速高效的完成游戏的搭建。而编程语言的目的在于律令计算机等电子设备完成我的目的。
在小说中,牛逼剑客都有自己的剑。独孤求败的剑就是他自己,是我们的编程语言。他手里握的剑是自己外在表现形式,是游戏引擎,是为了完成击败对方突破自己而存在的。令狐冲也是。叶孤城,西门吹雪更是。我们的内功是编程,外功是引擎。气宗是编程,剑宗是引擎。等等,我们只不过是想制作游戏啊。有引擎这种神器不就够了吗?为何还有专门搞语言啊。而且,游戏在于体验,在于内容,为何还要搞语言啊.
游戏编程
▌新刚
游戏开发本身就隶属于IT行业,在这样的日新月异的一个行业中,如果只是在井中望月的话,那么即使你狠精通一门游戏引擎,那么第二门呢?只有在你自己理解了游戏引擎的一个设计架构,设计原理,你才能在后续开发引擎中立于不败之地,这是一个循序渐进的过程,如果只是对游戏引擎钟意,那么充其量你仍然只是某个游戏引擎的使用高手,在后续的发展中,你将会被淘汰,大家很多人在做塞班时代的时候,谁会想到安卓时代的到来呢?只有不断的提高,才能将自己得到升华。游戏开发就是一生的学问,无论从策划还是程序出发,被局限住了你就需要比别人落后更多,又需要花更多的时间来去学习。倒不如打好基础,再面对各种的引擎都可以游刃自如,而且你还可以针对各种引擎做优化。
▌Games
支持先学习游戏编程,学习游戏编程是基础。游戏引擎说白了就是对特定功能的封装,固然游戏引擎让一些常用的功能实现更加简便快捷,但要想理解其实现的机理和在,还需要游戏编程的基础。
举个例子:cocos2d-x引擎是使用c++语言封装的。
如果从游戏引擎开始学,很快可以学会精灵移动和各种动画,但设计到高级编程如内存优化等游戏开发深层次的东西,是只学习引擎不能够掌握的。只有了解深层c++实现机理才行。如果从c++开始学,虽然学习c++的过程是漫长的,但从c++转为cocos2d-x游戏引擎的时间确实非常快的,也能够明白其底层实现,对这个引擎的了解掌握程度也更好。
从时间和遇到的问题角度分析
先学游戏编程
遇到的问题
在最困难阶段:问题从未接触过,通过用c/c++的底层理论解决引擎中的高级问题,以前学过理论X,用理论X来解决现实问题Y
从先学习引擎开始
在最困难阶段:问题从未接触 过,完全无从下手,只好从c++底层实现重新学起。现在遇到实际问题Y,不知道该学习理论来解决,即使知道也到先学会理论X后才行
结论:所以先学习引擎似乎是一种本末倒置,一般短期培训公司会这样,只教会你鱼,而不教渔。高等院校的教育一般都是先渔,然后自己探索从而得到自己的鱼。先从游戏编程,从底层语言开始学习,一步一个脚印才会都得更加扎实。以后无论遇到什么样的引擎,知道底层语言扎实一起都OK!
▌何小成
我来发表下个人观点啊,首先,我是一名在职游戏开发人员,我明白写游戏的过程中内功底子有多么重要,所以我的观点偏向于游戏编程。说到底,引擎也是由编程所构成的,引擎不过是踩在巨人的肩膀上进行游戏开发而已。最早游戏引擎的产生不过是为了不要做重复造轮子这种事情,但是如果抛弃造轮子,光有个空架子,开发工作也是进行不下去的,当引擎的作用不能满足满足当前需求的时候,没有编程的内功,又如何重构新的框架呢。总而言之, 引擎只是前人搭建好的的一个框架,是前人指引的一条道路,让你可以更方便的往前走,可是真正走多远,还是要看你编程的内力有多深厚,又或者,你才是大牛,可以走出另一条路,写出另一个游戏引擎!
▌何必太丶認真
有了编程基础,学什么引擎都快。引擎会随着市场不断的迭代,编程基础确实永远的。
▌OAOAAce
引擎,对于我这种初学者来说,实在是太高深了,我刚开始接触cocos2d的时候,就是仗着会一点点C++,然后觉得应该站在更高的层面上来学习cocos2d。接着就是狂啃引擎源代码,导演、场景、层、精灵、Node,我在引擎源码找了一个遍,算是统统看过一遍了。但理解得特别浅,没有任何的实践,仅仅是稍稍懂了一些运行流程。但要我说个引擎的所以然来,我还是不理解,说不上来。
过了快一个半个月了。我觉得可以开始琢磨写个游戏来跑跑了,我一打开Cocos Code IDE,整个人的呆了,我连基础的cocos2d代码都不知道从哪开始写起,敢情看了那一点点的引擎源码对我的游戏开发能力作用是这么小,我草草的把场景的生命周期几个函数列了出来,就关掉引擎源码的界面。
开始了我游戏编程的实战经历。
我跟着Cocos2d中的提供的教程一步步的去跟、去写、遇到不懂的问题查api,整个过程中,我没有一次是用到引擎源码的知识的。目前为止我已写了无数多个小的demo,跑在我的手机中,被我欢快的玩耍中。
终于开始要根据自己的思路去搭建一个自己想做的游戏了,编码的过程中,遇到了一些比较难搞的问题,这时我去翻看了引擎的源码,我发现,在有了我前面写了这么多杂七杂八的demo中学到的函数的使用,以及各个函数的调用时机等等的一些小知识,我在看引擎源码的时候,理解得比之前快多了,虽然我还是没有改源码的能力,但我至少知道为何必须要这样去使用这些已经封装好的api。
在这样的体会中,我坚定的认为对多数人来说,先学游戏编程才是重中之重,只有你在理解的游戏编程中各个函数的意义,知道游戏的开发流程之后,再去学习引擎,提高你自己对引擎的理解,这样你以后在遇到api层面上理解和解决不了的问题时,有了引擎的知识一定会助你一臂之力的。
总结:学习引擎是提高的游戏编程的关键,但要先学习游戏编程,一步步打牢基础,有了一定的实践知识,再去学习深层次的知识和理论。
我依然新手,还在学习各种游戏编程的小知识,但我觉得游戏编程带来快乐会比引擎多,所以我仍旧新手,仍旧学习ing...
游戏引擎
▌石啸天
1.编程思想,抽象化思维才是正道。
2.应该先学引擎,接受更多关于游戏编程的小技巧,不必去重复制造轮子。
3.很多时候,走之前要先run起来(来自钢铁侠1的台词,一语多意吧,写程序大多也是这样,先run)。
很多时候,我们写出来一个小工具,但是没用多久,就会发现,有人做出来比你更好的。原因很简单,这些路都是别人走过一遍的,你只要看过一遍,就不需要自己再走。正所谓站在巨人的肩膀上得到得更多。据我所知,所有的引擎,抽象出来的接口,大同小异,只是底层实现细节不一样。例如物理引擎,例如渲染引擎,这些东西当然你也可以自己实现,只是,路途要坎坷得太多。况且,大多数游戏得开发,并不是游戏程序设计的有多棒,而是游戏的内容设计的有多精彩。
换个角度去看,就好像用剑的剑客一样,只有用多了之后,才会知道自己需要什么样的剑,才会去自己打造一把剑。而你从一开始就研究如何造剑,那你将不是一个剑客,而是一个锻造师。。。。
从编写游戏的角度出发,其实并不能肯定的说,有好的引擎就能设计出好的游戏。就好比你练剑成了剑圣,树枝也可以打出剑气。但是练到这样的化境,已经是入行多久多久多久以后的事情了。
我的观点,用剑->御剑->人剑合一
▌无言
游戏开发,先学游戏引擎
原因1:先学引擎,掌握游戏开发思路,我们是想做好一款游戏,而不是做一个程序高手。
游戏开发新手,重在实战中获得知识增长技术能力。胸有万壑,乃成方圆。游戏引擎的好处在于,已经将编程语言具象化为制作游戏的工具。开发者不需要考虑底层实现,只需要实现业务逻辑,不需要考虑设计模式,只需要考虑如何实现想要的功能,不用考虑内存地址,析构函数,只需要考虑何时需要什么资源,不需要考虑贴图顶点坐标,反锯齿如何实现,只需要考虑模型怎么换贴图,什么时候播放什么动作。
归纳:游戏引擎使游戏制作不用考虑太多底层面的事情,节省开发时间,降低开发门槛,学习从简入深循序渐进
2.学习编程也应该知道学哪些方向,先学引擎可以帮助学习编程定位方向
众所周知,现在各行各业充斥着各种程序员编写的程序,网页,浏览器,操作系统乃至于我们生活中的GPS,红绿灯,电梯,楼宇广告。程序的应用面这么广,如何才能从浩瀚的程序中学会自己想要的那一部分,先学会引擎,对于这一认知有着巨大的帮助。在Unity里,你会懂得如何把一个脚本拖拽到摄像机上,然后在脚本中用一个对象来控制场景里的盒子,然后知道怎么用脚本代码来使用键盘控制盒子移动。经过这一系列的熟悉,就算是一个从没有学过编程的新手,也会理解脚本中的obj代表的就是盒子,也知道obj.后面的点是用来调用盒子上的脚本方法。这比一般从变成的初级教学入门学面向对象来的更加直观。游戏引擎,是一条直路,遇到问题,分析问题,解决问题,是学习力的良性三大要素。
归纳:实战检验实力,学会技能,在实战中进行验证,从而达成进步
3.引擎本身就是一个老师,在学会怎么使用引擎的同时,引擎也在教会你学什么样的编程
再强大的引擎,也不能归纳所有的功能,一方面是开发引擎有其局限性,一方面是引擎还是可能有考虑不全的地方。那么如何让引擎工作得更如开发者的意,本身引擎就有各种脚本语言,c++,ActionScript,c#,javascript,lua,一个新手游戏开发者面临这么多编程的语言,该学什么,该学到什么程度才能编出自己想要的游戏,用户其实是很难选择的。当你看到市面上有一款游戏,你知道那个游戏是你想做的类型,他是用XX引擎做的,我的建议,你直接就去学那个引擎就好了,别人能用那个引擎做出来你想要的游戏,你也可以。
归纳:先选好一个引擎,然后再决定学什么编程语言,至于学到什么程度可以做出你想做的游戏,不妨直接开始做,遇到不知道该怎么才能实现的东西,也有目的的去询问别人,这样成长得才快。
▌`Alcohol 、
在引擎成熟的情况下, 我支持先学引擎.
其实我是传统型过来的, 我也熟知这个套路的优缺点,
但现在我们的工具, 引擎, 思想, 越来越抽象, 越来越简单,
我们完全可以按需求培养人才, 让这个职业的门槛变低,
让我们更容易找到 ABCD级别的程序员,
一些程序问题, 是可以通过经验来积累的, 人总要慢慢熟知.
我这样说, 是因为培养一个传统型代价还是很大的, 不如培养出抽象派, 让他自己挖掘代码的深浅.
所有程序员最终都会走向越来越深, 我们做一个系统不全都需要昂贵的资深人士,
我们需要的是一个资深人士 带着几个ABCD级的菜鸟, 互帮互助, 做到熟练而又配合稳定的境界.
这样即是形成了团队, 有服从, 有竞争, 有超越.
这个行业的浮躁, 让更多慕名而来却无法进入的人太多了, 我们常常在面试时无法深意定向.
最后要强调的是, 不管大牛也好, 菜鸟也好, 更重要的是人员素质, 心理素质, 人员性格配比出的团队力量.
就算他是世界第一牛, 我也不要那种鄙视任何人, 永远是教育别人的口吻, 的那种.
大牛是内在, 不是摆姿态, 姿态型的人是我们这个行业追捧过渡造成的.
作为菜鸟, 脚踏实地, 比你闯话逞能来的更快, 不要试图与谁比较, 同样的路, 没人能跳过哪一步.
菜鸟的问题在于 代码习惯 以及 隐患
但大牛在一起嘀嘀咕咕浪费时间的时候也不少
最后还是 素质决定的
点击“阅读原文”参与讨论 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|