为何要学习游戏引擎底层技术

原创 2017年01月18日 16:56:28

笔者介绍:姜雪伟IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。

最近这段时间,开始写一些关于3D游戏引擎底层实现的文章并附上源代码,目的是唤起开发者学习引擎底层的兴趣。随着引擎封装的越来越好,很多人都抱着会用的思想,把人家的东西用到极致作为奋斗的方向。作为我们开发者来说这是非常可悲的,这会导致写引擎底层的人越来越少,最终这些技术都会掌握在少数人中。以Unity引擎为例,Unity3D引擎降低了开发门槛,只要懂C#语言就会用Unity,傻瓜式的操作,大量的插件,作为开发者的我们不用费力气就可以把一款游戏搭建出来,回想一下,你在搭建的过程中学到了什么?估计是只是熟悉了几个插件的使用而已。

      现在Unity3D引擎已经占领大部分市场了,游戏开发已经进入了量产的阶段了,成千上万的开发者,只是会写点简单的逻辑而已。很多人都想成为技术大牛,但是又苦于自己对底层技术一窍不通。记得我大学毕业去网易面试时,面试者对于项目的开发并不是特别在意,而最在意的是你对底层技术的掌控,问的问题都是涉及底层的开发比如数据结构中的二叉树,它内部是如何实现的?或者让你自己动手写一个List类封装等等。网易也有自己的引擎研发团队,他们的游戏好多都是用自己的引擎研发出来的,在运行性能和包体都可以自己掌控。很多人可能会说,现在什么年代了,还自己研发引擎?作为游戏公司,自己研发的引擎至少代表了公司的研发实力,久游公司大家估计都听说过,他做的也是很大,但是它做了那么多年没有自己的游戏引擎,都是使用别人的,最终还是败落了。苏州蜗牛一个至今还没上市的游戏公司,公司拥有自己研发的3D引擎,至今做的还是不错的,《太极熊猫》、《九阴真经》等给公司带来了很多的利润。另外游族公司并购了北京青果灵动科技有限公司,该公司拥有完全自主知识产权的跨平台开发引擎Fancy3D,可支持企业开发基于跨平台的大型复杂多人交互式3D游戏应用。目前,基于Fancy3D引擎研发的包括《黑暗之光》在内的游戏产品10余款。其中,《黑暗之光》月流水峰值达到1.5亿,最高同时在线人数达到20万。并购的钱也是很多的,还有很多类似的案例在此就不一一列举了。

       在这里不是鼓励开发者自己去研发引擎,引擎的研发是一个团队的努力,虽然我们不能去开发引擎,但是作为单个的个体,我们不能还局限于逻辑的开发,自己应该主动的去学习了解引擎内部的实现。拿虚幻4引擎为例,很多人应该看到了,它现在也把代码放出来了,但是用的人非常少,或者只局限于用蓝图实现几个漫游功能,如果开发产品,还需要对它的引擎底层进行优化,如果我们对底层开发一无所知,谈何优化?谈何修改?

        拿我自己再举个例子,我从事IT行业已经十多个年头了,算是行业中的一名老兵,没有辉煌的成就,平平淡淡,做了十多款游戏,没有月流水几千万的,只是够养活团队的。从一名普通程序员逐步成长到上市公司技术总监,在知名的IT公司也做过,在创业公司也做过,经历了这么多,自己在业余时间也开发过几款3D游戏引擎,虽然不是很成熟,但是都可以用它们实现几个Demo,比如实现的海水渲染引擎,获得了国家发明专利。现在在创业公司负责公司整个项目研发工作,对于公司的产品渲染使用的是自己研发的3D游戏引擎。公司项目的效率优化,工程设计,Shader编写都是我一个人去做,我之所以能够做这些与我平时自己学习3D游戏引擎有很大的关系。

         现在的IT开发者对于3D引擎底层的学习关注度越来越少了,这样持续下去,中国游戏行业的高级工程师会逐渐衰退,最后沦落为编写逻辑代码工具,一旦遇到底层引发的问题束手无策。这样的程序员如何能开发好产品?现在开发的产品要想把效率优化好,除了编写逻辑合理外就是优化底层代码。

         学习引擎底层技术会帮助你逻辑理清思路,至少你在编写逻辑时如果遇到问题,能快速的定位到问题位置。如果遇到系统问题,你可以自己封装做到可控等等。

          人工智能在快速发展,人工智能的开发是硬件跟软件的结合,软件就需要哪些会底层开发的程序员去做。底层开发不仅局限于编程语言还有一些底层算法的封装,如果我们对于底层算法的封装了然于胸就是后面跨界都没有任何问题。啰哩啰嗦了这么多,大家还是要去多关注一些底层算法的封装,学习这个其实不难,网上很多开源的3D游戏引擎,比如开源引擎Ogre,另外Cocos2dx也做了一部分3D的工作,我在博客中也做了一个系列讲座,我还编写的一本入门级3D游戏引擎书籍《手把手教你架构3D游戏引擎》电子工业出版社,都可以用来学习,一点一点的学习,假以时日肯定会成为真正的大牛。

     仅以此文唤起大家学习3D游戏引擎的兴趣!

版权声明:本文为博主原创文章,未经博主允许不得转载。

游戏开发学习路线——游戏引擎原理

对于像学习游戏引擎原理的人来说,需要制定自己明确的长期目标:  1) 首先,一开始可能对游戏引擎没什么概念,建议先使用一两个游戏引擎(我推荐C++程序员学习虚幻4游戏引擎,现在是免费开源的,非常...
  • beginner9
  • beginner9
  • 2017年03月23日 15:42
  • 1397

Unity3d 引擎原理详细介绍

体系结构    为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则。 Unity3D 引擎    Unity3...
  • Anzhongliu
  • Anzhongliu
  • 2015年11月28日 02:40
  • 1235

Unity3d 引擎原理详细介绍

体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则。Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于创...
  • Xingaaaxing
  • Xingaaaxing
  • 2015年11月03日 13:22
  • 1265

阅读开源引擎源代码的方式学习游戏引擎好吗?

不好!源代码可以告诉你具体实现,但不会告诉你为什么这么实现,通常背后的原理比具体实现要重要的多。如果你只知其表,不知其里,那你其实什么也学不到。而且游戏引擎一般跟游戏项目深度绑定的(比如Unreal引...
  • bill2ccssddnn
  • bill2ccssddnn
  • 2016年06月15日 14:28
  • 528

用Fortran来实现DLL的编程和应用(2)

  Fortran程序中,很多用到了COMMON来进行数据的交换,如何在DLL中处理也必须面对,在这里根据Fortran手册的程序,实现在Fortran程序间的调用。但是在Fortran与C之间,好像...
  • PolyUp
  • PolyUp
  • 2006年08月18日 14:00
  • 2612

【Visual C++】游戏开发笔记三十五 站在巨人的肩膀上:游戏引擎导论

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。  文章链接: http://blog.csdn.net/zhmxy555/article/details/8250057作者:毛星云(浅墨...
  • zhmxy555
  • zhmxy555
  • 2012年12月03日 02:40
  • 72130

LingEngine——实验轻量级游戏引擎(更新至0.71)

【为什么要做这个游戏引擎】为了挣钱?除了几个出名的引擎外,其他的引擎是很难卖出去的。即使能卖出去,一般也入不敷出,因为那些成功的商业引擎销量大、售价低,你无法卖得比他们贵。而且,没有成功的游戏验证过,...
  • Nightmare
  • Nightmare
  • 2010年04月04日 15:57
  • 7099

手把手教你开发galgame 游戏(galgame 游戏引擎开发入门经典教程)

  首先要给大家说明的是:软件工程知识,就是利用好现有游戏引擎这样省时省力比如吉利吉利系统就是开源免费的,做自己的引擎也是好主意,这样可以充分享受DIY的乐趣!   我最近回味魔兽学院 MAN AT ...
  • luozhuang
  • luozhuang
  • 2008年10月04日 13:05
  • 13926

开源物理引擎

1.  Havok:老牌的君王,支持功能如下:http://www.havok.com·         Collision Detection - including Continuous Phys...
  • Augusdi
  • Augusdi
  • 2014年03月01日 22:03
  • 5411
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:为何要学习游戏引擎底层技术
举报原因:
原因补充:

(最多只允许输入30个字)