虽然目前排名第一的 @邓鋆 的答案说得很有道理,但是我依然要强烈反对这个答案。
---------------
应该放弃,确实没有什么意义。
---------------
几乎每个厉害的游戏客户端程序员都想着开发自己的引擎。就算自己还做不到,至少也不愿意看到unity这种引擎流行,使得不厉害的程序员甚至策划、美术来抢自己的饭碗,所以他们会使劲黑unity的。
还有不少人在其他问题的回答里面质疑我的”做游戏开发不一定要用c++, 只学脚本也能开发好游戏”的观点呢,问我是否确定,说这是SB观点,怀疑我是否会开发游戏。
但是历史的潮流不是觉得自己很厉害的程序员就能阻挡的!
--------------------
大公司的程序员,当然会提倡”自研引擎”啦,引擎怎么做,做成什么样,什么进度,都是自己说了算,不必被策划牵着鼻子走,不必管美术;可以养着一帮人,做这么高端大气上档次的东西,以后出来报上名来说:”我是在XX公司开发自研引擎的!你居然还问我unity这种弱智引擎会不会用?! ”
—————————————————-
但是,对公司来说,对游戏开发来说,应该放弃,确实没有什么意义。
--------------------
好吧,下面给出反对的理由。
特定类型的游戏需要特定类型的工具,这一点我非常赞同 @邓鋆 所说。而且,更进一步,我认为每个游戏都需要自己的特定工具集;游戏开发本来就应该工具先行。
可是,工具和引擎并不是同一个概念。说点实际的,有了unity之后,每个游戏的工具集都是围绕unity来做的,只是写代码的时候稍微关心一下如何方便unity editor调用就够了;偶尔自己写一些editor下的绘画,成了稍微专业一点的unity插件,仅此而已,而不会进化成独立的引擎。如果cocos2d进化的更好一点,以后某类游戏的特定工具也会演变成cocos2d地图编辑器的插件,而且不是通用插件,而是针对这个特定游戏的插件,甚至都不是特定类型游戏的插件。
这种工具,可以认为自古以来就是特定游戏的不可分割的一个组成部分,而不是一个独立的可以拿出来号称“自研引擎”的东西。
对于刚才这一句话,我是存在疑问的。也可能,因为这些东西做得确实很好,确实能够通用,某些公司里面确实就可以把这样的东西拿出来称作自研引擎;那么,目前排名第一的 邓鋆 的答案就是完全正确的。
------------------
这一点我也非常理解。我自己专做围棋应用开发,每次也都是把处理棋谱和棋盘绘画、操作的部分全盘拷贝到新项目,重新组织外围代码,改变游戏逻辑,做成新的游戏。对我来说,这些就是处理围棋游戏的核心引擎,虽然很小。
这种引擎,也许和各位看官心目中的引擎差别很大。
———————————————-
是否仅仅给这个特定项目用,还是会给接下来的三四个项目用?如果不具备通用性,我们应该称呼它为项目工具,还是游戏引擎?如果只是这一个项目用到,那么项目代码和引擎代码的分界在哪里?如果没有分界,那即使用在下一个项目中,我们是否可以认为,下一个项目继承了上一个项目的所有代码而不是所谓“引擎部分”的代码? 如果针对特定游戏的工具是建立在其它引擎比如unity的基础上的一个插件,那我们应该称呼它“插件”,还是“引擎”? 我的意思是,工具肯定是必须的,但是通常是不具备多少通用性的unity插件,少量是独立的解析数据格式的其它专用工具,不值得被称为“公司自研的独立引擎”;自研引擎只是一个很响亮的口号而已,背后当然有其正知涵义,也就是说需要有独立的引擎开发组至少也是引擎工程师,可以不那么关心项目的需求,有一些独立的话语权去空想一些可能会出现的为下一个游戏准备的通用需求;怎么称呼无关紧要,这种人员结构正是我所反对的。
————————————————
至于那些实实在在开发渲染引擎的公司,那就切合题主所问的了,在unity和cocos2d-x这么流行的今天,在通用引擎做得这么好还这么便宜的今天,继续做下去没有意义,应该放弃。
这些东西不是今天才做的,是历史遗留产物。当初没有这么便宜这么好用的引擎可用,只好自己写渲染,写引擎。那时候,要不就花大价钱买unreal这种,要不就自己开发引擎,做引擎这件事情太有意义了,不仅是核心竞争力,而且是不做引擎你根本就无法做游戏。
可是到了今天,这些意义就荡然无存了。
— 完 —
本文作者:kubisoft
【知乎日报】
你都看到这啦,快来点我嘛 Σ(▼□▼メ)
此问题还有 18 个回答,查看全部。
延伸阅读:
Unity、Cocos2d-x、UDK 等手机游戏开发引擎分别有什么特性,适合开发哪些类型的游戏?
为什么很多动作游戏都是 Unity3D 开发?相比 Cocos2d-x 更容易吗?