我最近一直在研究游戏开发,我的第一个编程语言是 Java。在玩过许多用 C++ 开发的令人惊叹的游戏后,我想知道为什么 Java 在游戏行业中没有得到广泛使用。我查看了 jMonkeyEngine 3 和其他一些游戏引擎环境,但我看到的屏幕截图远没有那么令人惊叹。 EA 的《极品飞车:热追》和育碧的《刺客信条》等游戏就传达了这种现实主义风格。
为什么Java不能制作出如此行业实力的游戏呢?
这是艺术作品吗?
Java 和 C# 具有自动垃圾收集功能,而 C++ 则没有。程序员必须更加密切地关注内存使用情况,以避免悬空指针等。
多谢你们。
Java和C#有自动垃圾处理
集合,而 c++ 没有。这
程序员必须更加注意
内存使用以避免悬空
指针等。
你自己已经回答了你的问题。
在游戏中编程垃圾收集并不是一个优势。即使对于大多数任务来说,Java 的性能或多或少与 C++ 相当,而且 JIT 甚至可以进行非常激进的优化,击败静态分析期间可以完成的优化;垃圾收集可能会使帧率在最糟糕的时刻下降。
此外,对于图形密集型任务,Java 也不太合适,因为有许多事情被运行时认为是不安全的,因此被禁止(例如转换指针来重新解释数据)。
另一个重要的事情是行业中已经确定的专有技术。 C++在游戏行业的惯性是巨大的。如今所有游戏开发人员都了解 C 和 C++。拥有大量可供招聘的开发人员可以减少关键人员离开公司的管理风险之一。
但尽管如此,还是有一些成功的游戏的某些部分是用 Java 编写的,比如吸血鬼:假面舞会 - 救赎 http://en.wikipedia.org/wiki/Vampire:_The_Masquerade_%E2%80%93_Redemption.
最近的游戏,比如我的世界 http://en.wikipedia.org/wiki/Minecraft完全用Java编写;但它不具有最先进的图形功能,因为重点更多地放在虚拟环境的动态特性上。
许多其他游戏和引擎都有一个运行时,支持构建在高性能渲染和网络平台(用 C/C++ 编写)之上的托管(安全自动内存分配和收集)脚本语言,例如虚幻引擎 http://en.wikipedia.org/wiki/Unreal_Engine例如。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)