Android中的C++与Java对比

9
我有兴趣开始游戏开发。我目前使用C++做了一些OpenGL,但现在我正在寻找提供Android选项的人,我发现有些人使用本机代码(C++)开发游戏,而其他人则使用Java...所以我真的不知道主要区别是什么。我读到很多人有使用C++的经验,并且更喜欢使用它,以免学习Java等新东西...但我不认为这是主要原因。
使用C++或Java开发游戏的主要区别是什么?性能?可扩展性?可能性?
此外,您是否建议使用OpenGL开始游戏开发?

1
考虑使用 Renderscript,详见 http://android-developers.blogspot.com/2011/02/introducing-renderscript.html - Amokrane Chentir
2
只是为了确保您理解区别 - Android使用OpenGL ES,这是OpenGL的精简版本。 - Nathan Monteleone
这个视频由一位Google Android开发者提供,非常详细地解释了Android NDK。视频链接:http://www.youtube.com/watch?v=5yorhsSPFG4。 - SMeyers
3个回答

9
我建议使用你更熟悉的语言。游戏从来不是一个小项目,由于你对这个过程还不熟悉(根据这个问题判断),你可能不会关心任何性能差异或类似的问题。
回答你的问题:
性能
请参阅C++ vs Java PerformanceAndroid: Java, C or C++?等。
可能性
在达到你的目标时,C++和Java都没有任何固有的优势或劣势。
可扩展性
我不确定你在问什么。

谢谢你的回答。那么,如果两者具有相同的可能性,为什么人们会选择其中之一呢?只是因为他们对其中一个更了解吗?我是游戏开发的初学者,但我想选择最好的选项开始,即使它更难。再次感谢。 - Frion3L
差不多吧。如果由我决定,我会选择C++,因为那是我最早和最喜欢的语言。而且我已经使用本机C++知道了OpenGL,不需要麻烦于Java的包装器。不确定在移动设备上是否一样,但大多数著名的PC游戏引擎及其相关API都是用C++编写的,这也使得它更容易(看任何AAA游戏,我几乎保证它是C++,不论是PC还是游戏机)。尽管在移动设备上可能会有所不同。另一方面,有些开发人员可能只使用过Java(或认为它“更干净”或“更容易”,这两者都是主观的)并使用它。 - ssell

6

C++在性能方面比Java更优(别相信那些否定者,自己做基准测试),但是Android平台对Java更有支持。最终取决于你的应用程序有多么强大和需要消耗多少电池电量。如果非常强大,选择C++因为它可以用更少的资源实现更多功能。如果不重要,就选Java。


0

最后,如果你使用 C++ ,则需要学习用于 Android 开发的所有那些框架,如果使用 Java,则会学习 Java 和 OpenGL 在所有语言中都相同,所以如果你是 C++ 开发人员,就选择 C++ 就可以了。

另外,您推荐使用 OpenGL 开始游戏开发吗?

你不应该从 OpenGL 入手,不是说你不能,但我建议先尝试像 SFML 这样的东西,它会教你很多关于图形编程的知识,然后再转向 OpenGL。


你为什么建议不要从OpenGL开始学习编程? - Nick stands with Ukraine
因为OpenGL 3+对于你的第一个三角形程序来说很难,所以你需要学习着色器,基本上在开始使用OpenGL编程之前,你需要学习很多东西,这就是为什么我更喜欢SFML,它将教授你有关图形编程的所有概念,然后OpenGL就不会那么难了。我没有从它开始,也不认识任何从它开始的人,如果你想与专业的图形程序员交流,请转到SFML聊天室并询问他们 https://chat.sfml-dev.org/ - user8336907

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接