JAVA能写大型游戏么?
不能 ,首先游戏现在分为手游、端游、页游、VR游戏和AR游戏,而所谓的大型游戏一般都是指端游(例如:英雄联盟、DOTA2、魔兽世界等)。而端游的服务端开发必须是C++,这没办法C++和java的效率还是有很大差距的。
java什么东西基本都能开发,只是java致命的是不能直接操作内存,只能安装虚拟机,这样使java在开发的时候造成很多局 限性,但是java提供了很多API,可以调用c的类库,使得功能进一步提升,又由于java对于垃圾回收机制是自动的,使得 游戏在流畅性上有很大的折扣。所以java不适合开发大型游戏(除非自己实现垃圾回收等一些机制),使java能与c相比 ,又因为java的初衷就不在界面和桌面游戏上,而在企业开发。因此java不适合开发大型游戏,中小型网络游戏还行。
在游戏业Java可以搞什么?
那就是页游和手游的服务端了,页游的前端都是Flash或者WEB,手游的前端是coco2dx(C++),unity3D(C#或JS)、虚幻引擎 ,可以看看现在很多公司像腾讯互娱、网易游戏、英雄互娱、边锋网络、巨人网络、37互娱、掌趣科技等等游戏公司他们都在招Java游戏服务端,一般技术要求也不低。
为什么做页游手游的服务端都是用的JAVA而不用C++?
现在很多页游手游的服务端都用Java了,因为Java的开发效率比C++的要高,开发周期时间也较短,游戏公司每天在游戏的开发和运营上花费较多的财力,使得游戏公司在上一款产品时都是在抢时间,另外c++的要求门槛高 ,而且经验少的代码质量差,服务器很容易挂掉,还有就是做Java的人也比较好找,写的代码只要不是太烂,一般服务也不会有什么问题。
为什么游戏行业以前用c++做手游服务端比较多,现在很多人用Java做手游服务端?
好像在jdk 4.0之前JAVA是没有NIO的,所以那时游戏服务端的天下都是c++/c,后来java出了NIO后,慢慢出现NIO的框架,如 netty、mina等等优秀的框架,慢慢就出现有人用java来做服务端了。 NIO是什么,自己百度吧。 NIO的包,有一些新特性,就是异步非阻塞通讯,大大提高了服务端的性能。
Java现在所用的Tomcat,其实是伪异步阻塞式通讯,就是一个线程池在接受发送,一个线程必须等客户端接受完毕才解除 阻塞,底层还是同步阻塞的。
另外搞C++的人也不愿意转Java,因为需要花费一定的时间和精力,所以现在游戏行业端游的服务端都是c++的天下,而手游和页游的服务端大多数都是java,并且现在拿Java去做页游和手游的服务端也比较轻松,市面上也有很多成功的产品。
假如我是做JAVA的,现在想去做服务端的端游好做吗?
假如你想搞端游,提醒一下,搞端游的公司门槛很高,而且数量极少,现在剩下的端游公司真心不多了,都是些巨头,如果打算搞端游的话,问一问自己第一个你技术达不达到那种水平? 第二,公司太少了,市场上的岗位也太少。当然了,如果你觉得你是技术大牛对C++/C语言可以很轻松搞定的话,那可以考虑去做做。