楼主,你的水平很好,只是你走错了路子。如果你的视野更开阔一点,不要眼里只有Java,你肯定能走的更远。

先说适用范围,用Java写不是不可以,只是只能用来写上层逻辑。你这个2D的,只有纹理贴图,在商业级的产品里,真的只是一些上层逻辑,用任何语言都可以做,用Java来做,只是一个蹩脚的选择而已。客户端如果需要做出一点效果来,比如 Particle ,或者 Shadow,用纯Java是无法胜任的。如果硬要用Java来做,也只能是用C来写关键部分,然后bind一个Java的JNI来写。例子就是android上的游戏,Java只是一个wrapper,关键的东西还是C/C++。

再说灵活性,做一般的服务器需求,有丰富的库和框架,Java还可以胜任。但是如果要商业级,产品级的游戏,Java写起来又显得太罗嗦,到时候JAVA的开发周期会比C++短吗,这个是一个仁者见仁的问题。如果你有大量的东西需要策划去做,你还觉得Java是一个可行的方案么?脚本策划会写JAVA代码吗,不会。但是脚本策划会写Lua代码。

最后再说性能,就拿web服务器来说,nginx + Lua 和 Apache。 谁性能高,不多说了吧,虽然普通的web服务 Apache足以。参考TEngine和OpenResty。

最后,在实际项目里。可能拿JAVA一门语言和 C + Lua 两门语言一起比,不太公平。但是,C + Lua两门语言的学习成本有JAVA高吗?主程写底层C,新人写Lua。为了达到灵活的需求,Java那些厚重的抽象层,和简单的脚本比起来。不比了,比多了都是泪。

上面提到的MC, MC无疑非常成功,Java功不可没。但是持续关注MC,你会发现,新版本的MC xbox360 (XNA C# + C++ ) 。 MCPE (Android C++, IOS OOC),你有再看到Java的身影么? 为什么后续版本没有继续选择Java? IOS 不支持Java就算了, Android呢?Java可是Android开发的首选语言 ?为什么MC不选择Java呢?

PS:我也够无聊的了,这是第一次参加语言论战。

想起两个个笑话。老梗了。

一个女神和一个程序员在一起,女神说:“你要是让一群程序员吵得不可开交的话,今晚我就和你走。”程序员说了一句python是世界上最好的语言,接下来就吵起来了,等到之后大家吵得不可开交的时候女神告诉程序员,今晚上我是你的了。程序员说道:“你回去吧!,我必须说服他们Python是世界上最好的语言”。

一群男程序员酒后乱逛,正要集体侵犯一个女子。女子见势不妙,问:那你们说最好的

文本编辑器是哪个?程序员们就地讨论了三天三夜不欢而散,女子趁机顺利脱身