java游戏开发(为什么Java不适合游戏开发?)
为什么Java不适合游戏开发?
作为一个多年的游戏服务器开发者,我来回答这个问题。只要你仔细看看招聘网站,就会发现游戏里的java招数很少(希望打孔机不要推杠,我说很少,不是说一个都没有)。那么为什么其他领域的霸主没有资格在游戏行业喝汤呢?其实主要有两个原因,而且都和程序员最关心的效率有关,一个是开发效率,一个是运行效率。可惜作为一个可怜的java,你不能两者兼得。
首先,开发效率。前几年手机游戏开始流行,游戏公司多,产品相似度高。那么,如何才能以最快的速度开发出游戏,并投入线上运营呢?通过快速迭代中的试错,减少开发周期就是减少开发成本。在这种环境下,很多脚本语言成为了首选,比如nodejs、php甚至lua、python。(这里再多说一句,虽然lua语言本身很简单,但实际上游戏领域使用lua的成本是很高的,至少是四种脚本语言中最高的,因为它只是一种胶水语言,而且还得依附于C/C,作为围绕游戏的库,你得自己搭建或者自己找轮子。同时,对于发动机部分,对于发动机部分,它是最高的。Java相对于这些脚本语言没有优势。Nodejs开箱即用,可以和js一起写前后(html5的普及让这种情况越来越多)。Php好用,开发简单,和一些使用http的弱交互游戏一样,热更新简直不要太爽,没有修复bug的感知。一些简单的休闲游戏可以用这些脚本语言快速完成。以之前流行的刀塔传奇为例。这些脚本语言完全没有压力,尤其是对于桌游,脚本语言是首选。
其次,我们来谈谈运营效率。在一些计算密集型游戏中,C是首选。在一些大型游戏中,计算要求高,业务逻辑复杂的情况下,提高效率可以容纳更多的在线人数,也是一种成本的降低。同时对内存要求也高。用C可以算内存写代码(手法太夸张了【捂脸】)。当对象被应用和释放时,程序员说了算。gc消耗不存在。但是java生成字节码,代码执行要通过jvm运行,所以中间的消耗对于那些对性能要求严格的程序来说是绝对不能接受的。
总结以上两点,java是介于运行效率和开发效率之间的语言,在游戏行业自然不会受到青睐。
为什么Java不适合游戏开发?
做游戏引擎,当然要看性能。c的性能最好。Java的性能其实很好。让我们看看谁能提出一个简单快速的框架。
0-@qq.com
JAVA可以用于游戏服务器的开发,也就是网络游戏的开发。网络游戏具有高实时性、高并发性和高数据一致性的处理要求。而且由于自身JVM的垃圾收集机制对服务器内核的性能要求很高,处理这部分数据会占用一定的资源。游戏的实时性意味着大量的数据会被频繁的改变和替换。
不是说JAVA不行,而是对开发者的能力要求很高!如果能充分利用JAVA的并发优势,是可以做到的,而且已经被一些小公司作为网游服务器的开发语言。
PC端和移动端单机游戏再也不用考虑JAVA了。显然JAVA的2D3D处理效果还不如一些主流游戏开发语言!语言有它的使用场景,所以要利用它的优点,而不是拿它的缺点和其他语言的优点做比较!现在JAVA是服务器端开发的最佳选择,因为它的帝国大厦很完善,开发者也很多!
为什么Java不适合游戏开发?
因为java里多了一个jvm,所以效率低,游戏的实时性很重要。
看一门语言适合开发什么,主要有三点。
1.效率问题,包括开发效率和执行效率。
2.生态圈。有些人提供了很好的完整解决方案,为什么不用呢?
3.产品的焦点。
以java和C为例,java主要用于web开发,但C也可以通过cgi写web,C的执行效率比java落后几个街区。但是为什么不用C写web呢?因为C开发web的效率太低,而java有各种针对web的框架,所以开发效率高。
如果产品是游戏,游戏的实时性很重要,玩一个反应慢的游戏一定很烦。这个游戏产品的实时性注定了要采用高效的语言开发,所以c,c自然跑不掉。
2-@qq.com
为什么Java不适合游戏开发?
毕竟游戏是有分类的,游戏分客户端和服务器。
很多游戏服务器都是Java。
而且实时性要求不高的游戏客户端也可以用Java开发,比如《我的世界》。
我想题主是想问为什么3A大作不用Java开发?
其实就是一个路径绑定问题。目前大部分大作都是用游戏引擎制作的,而这些游戏引擎已经开发了很多年。如果是用Java做的,可能要用一些没有经过业界验证的新东西。大公司不想冒险。况且Java的垃圾收集机制本身就是一个难点,不太适合实时游戏。
0-@qq.com
开发java游戏的性能和效率差,开发一些小游戏还可以。java是面向对象的,所有方法都封装在类中。要调用方法,就得实例化类,游戏主要看逻辑。
物体就像机器,有很多功能,但我的游戏逻辑只需要每台机器的一个功能,但要使用它,必须把整台机器做出来。这就是面向对象的缺陷。
c是面向过程的,所以可以更灵活地设计过程逻辑,省去了很多冗余的东西,性能也大大提高。
java的优势在于利用现有的各种类包达到复用的效果,大大提高开发效率。
当然,java可以只为逻辑设计类,但那不是java的强项,没有太大意义。
百度搜索圈T社区()免费视频教程
为什么Java不适合游戏开发?
要我说,java适合开发游戏吗?我相信答案是恰当的。java开发效率高,运行效率一般。需要运行效率的地方用C或者cxx写就好了。市场上的大多数游戏都不是用单一的编程语言开发的,所以没必要和语言纠结太久。
很多人说运行效率也很重要,但其实一般逻辑你是感受不到区别的。一般逻辑用java或者c#,或者脚本语言等开发效率。一门调试效率高的语言会让你的开发更加得心应手。尤其是脚本语言。
和cccxx只在特别需要效率的地方使用。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。