GameDevelopment:(Java&OpenGL)还是(C++&OpenGL&SDL)?

Mar*_*aux 8 c++ java opengl sdl

由于Java支持OpenGL,开发游戏的最佳选择是什么?

  • Java + OpenGL
  • C+++ SDL+OpenGL

我总是避免使用Java(当然是在游戏开发中)因为速度快.但是,我发现Java支持OpenGL.所以,我认为速度不再是问题......你应该选择什么?有评论吗?

由于我在Java和垃圾收集器方面的经验,Java对我来说会容易得多.

谢谢

esa*_*saj 18

在我看来,如果你对自己的游戏有所了解,那么你用它(最初),C/C++,Java,笔和纸写出来并不重要......选择你更舒服的语言有了原型并测试你的游戏理念,一旦你有了粗略的草图并知道你需要做什么,抛出原型,设计游戏玩法和架构,然后开始编写实际的东西.在大部分或全部功能正常工作之前不要进行优化(一般情况下,总是会有小错误)并且您实际上看到了瓶颈所在.

我已经看到它一次又一次地发生,游戏程序员是有史以来最糟糕的过早优化者之一,试图从一些微不足道的东西中挤出几个周期,同时错过最大的瓶颈然后再优化一些(在错误的地方).我也发现自己多次犯了罪.我说不要选择C++(或Java那个),因为速度快,你可以从两者中获得非常好的表现,如果做得"正确"的话.如果需要,你可以随时切换到另一种语言,如果语言本身确实是瓶颈或者真的阻止你做某事.Java不会自动变慢并且C++不会自动快速,你可以(非常)错误.我曾经在所有的东西中使用C和C++,但是在使用Java一段时间后,我真的不会错过那么多麻烦.

有很多(已经优化且相当容易使用)的游戏引擎可用于这两种语言,所以没有必要自己动手...除非你真的想要.根据我的经验,大多数业余爱好者"游戏程序员"往往对事物的技术方面比对实际游戏(包括我自己)更感兴趣;)一旦完成所有技术障碍并且你得到了那个漂亮的模型/一堆精灵/粒子效果运行着一些着色器效果,热情似乎消失了......但是不要让我气馁你,游戏编程很有趣,即使你从未真正完成任何事情(我也不会打电话给我自己项目完成).

我有一段时间没有对任何游戏进行编码,但对于C++ 2D SDL是一个很好的选择,其他选项可能是SFML,或者如果你想要与OpenGL进行更低级别的接触,你可以尝试使用GLFW + SOIL +一些音频库.对于完整的3D,我会说尝试OGREIrrlicht + Irrklang(也可能有很多其他的).

在Java中,至少有Slick2D,Golden T游戏引擎和低级访问,LWJGL(虽然我认为你也可以通过Slick2D访问LWJGL).对于3D,有人向我推荐了jMonkeyEngine,但我从未尝试过.


The*_*Saw 15

我会投票给C++,因为你的对象中有一个可靠的析构函数.这允许您包装许多OpenGL组件(缓冲区,纹理等).您可以知道,在创建对象时,将分配资产,并在对象被销毁(或超出范围)时清除资产.

它当然可以用Java完成.Minecraft是用Java制作的,它已经超过2500万美元.


Fou*_*ouf 8

我会选择C++,SDL和OpenGL.目前SDL正在进行1.3版的修改,这将非常好.在我看来,你应该用C++来做,因为你已经说过你会对Java感觉更舒服,在用C++制作游戏后感到舒服会非常有益.你不仅可以制作游戏,还可以同时学习更多游戏.


Nei*_*eil 7

Java已经被证明与C++一样快,但是如果没有,你可以在没有一点参数调整和仔细监视垃圾收集器的情况下实现这样的结果.如果你想用Java进行游戏设计,我会说这是一个很好的选择,只要你先研究如何处理它.

  • +1 - 慢速代码在任何语言中都很慢.好的代码在任何语言中都很好. (8认同)