Java为什么不能写大型游戏?

所谓大游戏,一般指端游。必须是C++
没办法。C++和java的效率还是有很大差距的。

基本上所有东西都可以用java开发,但是java致命的一点就是不能直接操作内存,只能安装虚拟机,这就造成了java的开发有很多局限性。但是java提供了本地方法,可以调用C的类库。从而进一步提高了功能。因为java对于垃圾收集机制是自动的,所以游戏的流畅度大打折扣。所以java并不适合开发大型游戏(除非实现了垃圾回收之类的一些机制),这样java才能和c相提并论.因为java的初衷并不在界面和桌面游戏上。和企业发展。所以java不适合开发大型游戏。中小网游还可以。

Java在游戏行业能做什么?那是页游和手游的服务器。页游前端是Flash,手游前端是coco2dx(C++),unity3D(C#或JS)。可以看37场。上海易娱乐是集团旗下明朝网络先锋掌趣科技等游戏公司。都在找Java游戏服务器。

从性能上来说,java做页面游戏用的服务器是无压力的。为什么不用C++?
因为Java的开发效率比C++高,敏捷,游戏开发都是手忙脚乱。c++要求高,经验少的代码质量差,服务器容易挂机。对方是Java的人也比较好找,写的代码应该不会太差。一般服务不会有问题。

现在页游更多使用c++还有一个原因:历史。
为什么?
好像在jdk 4.0之前,没有NIO,所以所有的游戏服务器都是C++/C,后来NIO出了java之后,慢慢出现了netty mina等NIO框架和其他优秀的框架,用java做服务器。
NIO是什么?自己百度。光电探测器
NIO的包有一些新特性,即异步非阻塞通信。极大地提高了服务器的性能。
你现在用的Tomcat,其实是伪异步阻塞通信,也就是一个线程池在接收和发送,一个线程必须等待客户端接受才能解除阻塞。底层还是同步封锁。

现在很多手游服务器都用Java,至少在广州已经很成熟了。
搞C++的都不想转java,这也是服务器以c++为主的原因。Java至少在页游和手游的服务器上。毫无疑问,也有很多成功的产品。

如果想搞端游,请提醒我,搞端游的公司门槛很高,数量很少。现在剩下的端游公司真的不多了,都是巨头。如果打算搞端游,首先能不能达到那个高度?
二是公司太少,风险大。光电探测器

你可能感兴趣的:(java,游戏,开发语言)