当前位置: 首页 > 面试题库 >

Java游戏引擎

宗涵蓄
2023-03-14
问题内容

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

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

多谢你们。


问题答案:

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

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

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

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

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

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

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

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



 类似资料:
  • 包含在程序启动时启动的线程。这个线程包含一个循环,每40毫秒更新一次游戏并重新绘制()board。 备选办法B: 板创建一个摆动计时器。这个计时器的动作监听器是板本身。actionPerformed()方法每40毫秒运行一次,并更新game+repaints Board()。 谢谢

  • 一个非常小的script脚本引擎,可以同时在j2me / j2se / c++ platform上面运行 它的目标是使用这个脚本引擎便于开发一个更加灵活的j2me 游戏这个脚本有点像BASIC这东西不错,是一个开源的脚本引擎,大家可以学习里面的思想里面其中带了一个例子,是3子棋。感觉挺不错的。这东西在SF也挺活跃的。

  • 所以我为我的课做了一个抽动练习作业。我已经成功地创建了一个简单的Tic Tac Toe程序,但不知何故,检查绘制的方法有时并不正确。如果所有东西都填满了,但没有赢家,那就是平局。但如果除第0行第1列外,其他所有内容都已填满,则即使该框仍为空白,它仍将显示“Draw”。如果你不明白我的意思,就试着把所有的东西都填满,但不是赢,即使最后一个框没有填满,它也会说“平局”。我在代码中做错了什么????驱动

  • 12.19 技术一面 12.22 技术二面 12.26 三面(主管+hr) 1.5 交叉面 1.8 oc 其实很想每次把面经给记录下来,但实在怕有潜在竞争对手,这个广州只剩1个hc的岗位对我来说真的很重要 之前灵犀11月底发过冬季补录的邮件,但我写了之后没什么回应,转机竟然是实验室同门在boxx上被灵犀的人联系,然后转推了我,大半个月走完了流程;虽然在深圳这边只实习了一个月,但还是学到了很多东西,

  • 问题内容: 我正在研究Java中的游戏编程,看是否可行。进行搜索时,我发现了一些关于Java2D的旧参考资料,Project Darkstar(Sun的MMO服务器)和一些有关Java游戏编程的书籍。但是很多信息似乎已经有好几年了。 所以我要问的问题是,有人在Java SE 1.5或更高版本中创建游戏吗? 如果是这样,将使用什么框架,是否有最佳实践或库? 问题答案: 有一个叫做jMonkey(ht

  • 我是JAVA新手,我一直在写一个数字猜谜游戏的代码,计算机从0-500的条件下选择数字:如果数字太低,用户输入0,计算机猜更低的数字;如果数字太高,用户输入1,计算机猜更高的数字 以5个猜测结束游戏 任何建议都将不胜感激!!!:d