小编典典

Java游戏引擎

java

我最近一直在研究游戏开发,而我的第一种编程语言是Java。在玩了许多用c
++开发的令人惊叹的游戏之后,我想知道为什么Java在游戏行业中没有被大量使用。我查看了jMonkeyEngine
3和其他一些游戏引擎环境,但是看到的屏幕截图远没有那么令人惊叹。诸如EA的《极品飞车》(Need for Speed
Hot)和ubisoft的Assassins Creed等标题传达了这种现实感。Java为什么不能生产这样的具有行业实力的游戏?是艺术品吗?

Java和C#具有自动垃圾收集功能,而c ++没有。程序员必须更加注意内存的使用,以防止悬空指针等等。

多谢你们。


阅读 869

收藏
2020-12-03

共1个答案

小编典典

Java和C#具有自动垃圾收集功能,而c ++没有。程序员必须更加注意内存的使用,以防止悬空指针等等。

您自己已经回答了您的问题。

在游戏编程中,垃圾回收不是优势。即使Java的性能在大多数任务上与C
++差不多,并且JIT甚至可以进行非常积极的优化,从而超过静态分析中可以完成的优化。垃圾回收会使帧率在最坏的时候下降。

另外,对于图形密集型任务,Java不太适合,因为在运行时许多事情被认为是不安全的,因此是被禁止的(例如强制转换指针以重新解释数据)。

另一个重要的事情是已经确定的行业知识。C 在游戏行业的惯性是巨大的。如今,所有游戏开发人员都了解C和C
。拥有大量的开发人员来招募人才,可以减轻关键人员离开公司的管理风险之一。

但是尽管如此,还是有一些成功的游戏,其中有一些用Java编写的部件,例如Vampire:The Masquerade-
Redemption

Minecraft等较新的游戏完全用Java编写。但是它没有最新的图形功能,因为重点更多地放在虚拟环境的动态特性上。

许多其他游戏和引擎都具有运行时,该运行时支持在高性能渲染和联网平台(用C / C
++编写)的基础上构建的托管(安全自动内存分配和收集)脚本语言,例如,虚幻引擎

2020-12-03