大家好,又见面了,我是你们的朋友全栈君。
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,后来java出了NIO后,慢慢出现NIO的框架 如netty mina等等优秀的框架,慢慢就出现用java来做服务端了。
NIO是什么,自己百度吧。 光电探测器
NIO的包,有一些新特性,就是异步非阻塞通讯。大大提高了服务端的性能。
你们现在所用的Tomcat,其实是伪异步阻塞式通讯,就是一个线程池在接受发送,一个线程必须等客户端接受完毕才解除阻塞,底层还是同步阻塞的。
现在很多页游手游的服务端都用Java了,起码在广州已经是很成熟的。
搞C++的不愿转Java,这就是为什么服务端都是c++的天下了,java起码在页游手游服务端毫无疑问的,也有很多成功的产品。
假如楼主你想搞端游,提醒一下,搞端游的公司门槛很高的,而且数量极少,现在剩下的端游公司真心不多了,都是些巨头,你打算搞端游的话,第一个你达不达到那种高水平?
第二,公司太少了,风险很大。光电探测器
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140680.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...