为什么Java不适合游戏开发?

作为一个多年的游戏服务器开发者,我来回答这个问题。只要你仔细看看招聘网站,就会发现招java的游戏很少(希望我不要说太多,说的很少,不是说没有)。那么为什么其他领域的霸主连游戏行业的一口汤都没有资格喝呢?其实主要有两个原因,而且都和程序员最关心的效率有关,一个是开发效率,一个是运行效率。可惜作为一个上不去下不来的java,不能两者兼得。

首先是开发效率。前几年手机游戏流行,游戏公司多,产品相似度高。那么如何最快的开发出游戏并投入运营,在快速迭代中试错,减少开发周期就是降低开发成本。在这种环境下,很多脚本语言成为了首选,比如nodejs、php甚至lua、python(这里还有一点,虽然lua语言本身很简单,但实际上lua在游戏领域的使用成本是很高的,至少是四种脚本语言中最高的,因为它只是一种胶水语言,依赖于c/c++,而作为围绕游戏的库,需要自己搭建或者找轮子,而对于引擎部分,面对这些脚本语言,java并没有优势。Nodejs可以用js写出来(html5的普及让这种情况越来越多)。而且php好用,开发简单,喜欢一些免费的视频教程。

如果你问我java适合开发游戏吗?我的回答绝对合适。java开发效率高,运行效率一般。在需要高效运行的地方用C或cxx写就行了。现在市面上大部分游戏都不是用单一编程语言开发的,没必要和语言纠结太久。

很多人说运行效率也很重要,但其实一般逻辑你是感受不到区别的。普通逻辑用java或者c#,或者这样开发效率的脚本语言,调试效率高的语言会让你开发起来更加得心应手。尤其是脚本语言。

c和cxx只在特别需要效率的地方使用。

哈_,这里是子期!Java开发游戏性能效率差,开发一些小游戏还可以。元彪老师说java是面向对象的,所有的方法都封装在类里。要想调用方法,就得有实例类,而游戏主要是看逻辑。

物体就像机器,有很多功能,但我的游戏逻辑只需要每台机器的一个功能,但要用的话,就要整台机器做出来。这就是面向对象的缺陷吧?

c是面向过程的,可以更灵活地设计过程逻辑,省去了很多不必要的东西,性能也大大提高。

java的优点是利用现有的各种类包,达到重用的效果,大大提高开发效率。

当然,java也可以只为逻辑设计类,但那不是java的强项,没有太大意义。