Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
移动到c++;来自java?_Java_C++ - Fatal编程技术网

移动到c++;来自java?

移动到c++;来自java?,java,c++,Java,C++,我学习java大概有5个月了,在这段时间里,我主要是做游戏。我用java2D做了一个相当不错的游戏,但我想继续做更大更好的事情。。。3D。我开始学习LWJGL(基本上是OpenGL)。在我学习java之前,我要用C++来做3D,我应该移到C++吗?指针真的对大型程序那么重要吗?我还能用C++做任何跨平台的事情吗?还是我被窗户卡住了。如果我被困在windows中,我应该选择c#吗 谢谢 当我说“半途而废”时,我的意思是它很好,我想。如果你想看它,来判断我在2D体验中的位置,你可以这样做: 那么J

我学习java大概有5个月了,在这段时间里,我主要是做游戏。我用java2D做了一个相当不错的游戏,但我想继续做更大更好的事情。。。3D。我开始学习LWJGL(基本上是OpenGL)。在我学习java之前,我要用C++来做3D,我应该移到C++吗?指针真的对大型程序那么重要吗?我还能用C++做任何跨平台的事情吗?还是我被窗户卡住了。如果我被困在windows中,我应该选择c#吗

谢谢

当我说“半途而废”时,我的意思是它很好,我想。如果你想看它,来判断我在2D体验中的位置,你可以这样做:

那么Java可以大规模地进行游戏开发吗

<> P>在我学习java之前,我要用C++来做3D,我应该移到C++吗?p> 有必要考虑了解多种语言

指针真的对大型程序那么重要吗

这个问题毫无意义,所以“不”

然而,C++在游戏中有一些重要的优点:

  • 减少内存开销
  • 确定性内存使用和定时
  • 确定性运行时性能(具有可能更好的速度)
  • 前两个是Java垃圾收集器的副作用,可能是Java游戏(或任何应用程序)的问题。它们是否重要完全取决于你

    第三个是JIT的副作用。Java可能不会立即JIT所有方法(导致一个粗略的开始),或者根本不会(在客户机VM上)。此外,对于真正的高端硬件使用,它可能无法充分利用(如果有的话)额外硬件,例如向量指令(SSE2、3、4、4.1等)

    <>我还能用C++做任何跨平台的事情吗?还是我被窗户卡住了。如果我被困在windows中,我应该选择c#吗


    是的,很努力。C++是它的自我交叉平台,但它只是一种语言。其余部分在库中。

    只要Java满足您的需要,您就可以使用它。如果你发现你想做的事情是用Java做不到的,那就是我要研究其他选择的重点,除非你的游戏开发是学习编程语言的练习。如果是这样的话,那么,无论如何,试试C++。< /P> 我认为人们从Java转向非字节码编译语言的主要原因是性能和内存使用。所以你应该考虑这是否是你的问题。


    关于C++的跨平台能力,您可以编写可用于多个平台编译的便携式C++代码。有一些游戏库可以在SDL或GLUT等多个平台上运行。您可以使用这些工具编写一次游戏,然后针对多个平台进行编译。

    这种问题更适合于类似游戏开发堆栈交换网站的情况,但我的答案是:

    关于你应该使用什么语言:任何东西都可以。是的,C++更快。但是如果你第一次使用C++代码,那么这也是很难的。在C++中,如果你习惯于java语言或Java语言,那么很容易犯很多错误。如果你以前从未使用过C++,那么在C++、java、python或任何其他语言中编写游戏的难度要比C++中的任何时候都要容易得多。 如果你使用Java,你可以使它跨平台。我不是百分之百的支持C语言,因为Mono确实存在,但我不确定用C语言编写的游戏的跨平台功能状态。C++也是跨平台的。 总的来说,如果您以前从未做过跨平台编程,那么在开发软件时可能会遇到一些障碍。你对特定的语言越熟悉,对你来说就越容易


    话虽如此,我还是要提醒你不要直接跳进3D游戏,因为你已经说过你还没有完成2D游戏


    3D游戏比2D游戏难多了,在制作游戏时,你不应该担心编程问题。你应该专注于编写游戏本身。您将学习如何在实际设计和创建游戏的各种功能时对游戏进行编程。你不应该做另一种事情。

    < P>我推荐你学习C++,原因有一个。透视图

    <>如果你不尝试C++,你永远也不会意识到当你终于学会C语言时,它是多么的好。p> 我用C++做了20年。我花了数年时间坚持,不放手。终于意识到其他软件公司正在用更高效的语言和更好的SDK编写代码。终于放手了,感觉真好。(尽管有一天我仍然坚持完全编译的C#和确定性内存管理)


    <>(我只是半认真的。C++确实应该在你的工具带中作为游戏或系统开发人员)。

    < P>好的,请记住C/C++是可移植的编译语言,但是DirectX等3D库不是。我认为使用c/c++和OpenGL是开始游戏3D编程的好地方。但是,编程只是游戏开发的一部分,有很多选择。如果您想制作游戏,您可以研究低成本的引擎,如torque3d或Unity 3D,这些引擎使用易于学习的脚本语言,并具有内置的所有功能,如物理、音频和网络支持。如果你真的想知道如何编程3D图形,这与游戏开发不同,那么像c/c++和OpenGL这样的低级语言是一个很好的起点 如果你真的想使用的话,可以使用跨平台的框架,但是添加另一个需要学习的东西是通往绝望的必经之路,在你意识到这一点之前,你会想成为更令人兴奋的人,比如注册会计师