标签:编辑 代码 功能 rgb 大量 操作 3d引擎 demo 工具
笔者介绍:姜雪伟,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游戏引擎的兴趣!
标签:编辑 代码 功能 rgb 大量 操作 3d引擎 demo 工具
原文地址:http://blog.csdn.net/jxw167/article/details/54601389