![]() |
1
18
我不会丢弃C++。事实上,我会考虑增加你的C++库,这使得语言更有用。你的例子会变成:
Boost有很多帮助C++更好语言的工具。 |
![]() |
2
18
|
![]() |
3
17
C是一种很好的语言,可以满足您的需求,而且它绝对适合于图形,这要归功于Microsoft为它提供的强大工具和库,如Visual Studio和XNA。 |
![]() |
4
15
我不同意你的前提。当仔细和恰当地使用时,C++是一种很好的语言,特别是对于像实时图形这样的领域,其中速度是最重要的。 如果您的系统设计良好,使用STL容器和智能指针,内存管理就变得容易了。
通过使用预编译头或使用PIML成语将系统分解成合理的自包含模块,可以显著缩短编译时间。 |
![]() |
5
14
恐怕实时+垃圾收集不太匹配。 如果垃圾收集器可以在任何时候踢进并花费一个未定义的处理量,那么做出任何实时响应保证是有点困难的。 |
![]() |
6
13
或许是一种混合方法。Python和C++是一个很好的组合(例如,pypy游戏)。 |
![]() |
7
13
别忘了提到新的“自动”用途:
|
![]() |
8
12
LISP编译成机器代码的一些变化可能和C++一样快。这个 Naughty Dog 团队创建了一个名为 Game Oriented Assembly Lisp ,它们用来创建几个aaa标题,包括jak和daxter系列。游戏行业中LISP方法的两大障碍将是C/C++开发的根深蒂固性质(工具和人力资产都投入到C/C++中),以及很难找到在游戏编程领域和lisp语言中都是明星的天才工程师。 行业中的许多编程团队正在转变为一种混合方法,其中实时代码,特别是图形和物理代码,是用C或C++编写的,但是游戏逻辑是用高级脚本语言完成的,程序员和非程序员都可以访问和编辑。 Lua 和 Python 对于更高级别的脚本都很流行。 |
![]() |
9
8
作为3D虚拟现实应用程序的开发者/研究员/教授,20年来,我认为没有其他选择(可能除了C)。减少延迟和启用实时交互的唯一方法是一种经过优化的编译语言(如C或C++),可以访问像OpenGL这样的快速的三维图形库。虽然我同意必须对所有内容进行编码是一种流动,但这对于性能和优化也是必不可少的。 |
![]() |
10
6
有时候,你看外面的路,你可以找到一块真正的宝石。你应该考虑一下 PureBasic (不要让这个名字误导你)。以下是一些细节: pureBasic特性
访问在线论坛以更好地了解pureBasic( http://www.purebasic.fr/english/index.php )或主要地点: www.purebasic.com |
![]() |
11
5
我完全同意提到c用于图形编程。它有一个轻微的缺点,它是一种被管理的语言,允许垃圾回收器在你的应用程序中自由支配一段时间后的自杀,但是在程序生命早期的一些相对智能的池分配中,任何实际问题都可以避免。 有几个人已经提到了xna,它非常友好,并且有很好的文档记录,我也要附和这个建议。我个人把它用于我的业余游戏项目,它对我很好。 不过,xna并不是唯一的选择。也有SIMLDX作为一种提供DirectX精益包装器的方法,在不断的发展中,以与管理DirectX相似的方式(这是,我相信,微软停止支持XNA)。两者都值得研究: http://code.google.com/p/slimdx/ |
![]() |
12
3
对于大型AAA游戏来说,没有真正的替代品,尤其是在游戏机上。对于较小的标题c应该可以。 |
![]() |
13
3
C在这里是一个很好的答案——它有一个公平的垃圾收集(尽管您必须对它进行相当多的描述——现在整个内存处理都不在您的控制范围内,要改变您处理事情的方式),它使用简单,有很多示例,并且有很好的文档记录。 在3d部门,它提供了对阴影和效果的全面支持,所以-那将是我的选择。 尽管如此,C语言并不像C++那样有效,而且由于开销太大,所以如果它是速度和灵活性,在你喜欢的书中使用任何技巧(用指针和汇编,如果你想弄脏你的手)-坚持C++,价格会像你所说的那样写更多的代码。但是完全控制一切包括内存管理。 |
![]() |
14
3
我认为d语言是一个很好的选择。可以通过C库链接到C对象文件和C++代码接口。d具有垃圾收集、内联程序集,游戏开发人员已经创建了到sdl和opengl库的绑定,并且还在积极地开发新的游戏开发api。我爱D。可惜我的工作不需要它。:( |
![]() |
15
2
像james(hopkin)一样,对我来说,混合方法是最好的解决方案。Python和C++是一个不错的选择,但是其他的风格,比如C*/C++.一切都取决于你的图形环境。对于游戏来说,XNA是一个很好的平台(限于Win32),在这种情况下,C/C/C++是最好的解决方案。对于科学可视化,Python/C++被接受(类似于Python中的VTK绑定)。对于移动游戏爪哇/ C++可以工作… |
![]() |
16
2
如果你的目标是Windows,C++/CLI(微软的.NET)管理的“C++方言”是一个有趣的可能性,特别是如果你想利用C++的经验。可以将本地代码(例如调用C样式库)与.NET托管代码无缝地混合,并利用.NET GC和库的优势。 至于GC对“实时”性能的影响,我认为这些都是夸大其词。多代.net gc非常擅长从不花太多时间来收集,除非您处于某种严重的低内存情况下。我编写的.NET代码与电子衍生品交易所进行交互,在那里,时间延迟=很多$$,我们从未遇到过与GC相关的问题。对于GC来说,几毫秒是很长很长的时间,但对于与一个软件交互的人来说,甚至对于一个“实时”游戏来说都不是。如果你真的需要真正的“实时”性能(医疗设备,过程控制等),那么你无论如何也不能使用Windows -它不是一个实时操作系统。 |
![]() |
17
2
我想,很多游戏引擎都能满足你的需要。例如,如果需要使用可移植性,则使用SDL或开罗。许多脚本语言(通常都有简单的语法和垃圾收集)都绑定到这些画布上。
我只想指出 Processing ,这就是 一种开放源码的编程语言和环境,适合那些想要编程图像、动画和交互的人。 实际上,它是一个围绕Java的薄包装器,使它看起来像脚本语言:它有一个(原语)IDE,当你可以键入几行代码并点击运行,甚至不必保存文件。实际上,它将代码包装在类周围,并添加main()调用,编译它并在窗口中运行它。 很多人把它用于实时展览(vj和类似的)。 它具有Java的能力和局限性,但它增加了许多漂亮的包装器(库),以简化对Java2D、OpenGL、SVG等的访问。
不知何故,它已经成为简单图形语言的一个模型:有几个应用程序试图模仿其他语言的处理,如ruby、scala或python。其中最令人印象深刻的是一个javascript实现,它使用
|
![]() |
18
2
我投票支持C++,部分支持已经用了+ + +。 |
![]() |
19
1
我已经非常成功地使用C++作为引擎,在Lua上写上了应用程序。javascript也非常实用,现在最新一代的基于jit的js引擎已经出现(tracemonkey、v8等)。 我认为C++会和我们在一起,甚至Tim Sweeney也没有。 switched to Haskell (pdf)但是,afaik:-) |
|
20
1
Java和LWJGL(OpenGL包装器)对我起了很好的作用。如果你想寻找更多像Orge这样的场景图类型库,可以看看我们用来创建Google Earth类型应用程序的JMonKeyEngine(见www.skapeworld.com)。如果您对创建对象很敏感,垃圾回收就不是问题。 |
![]() |
21
1
“C”是不是太明显了? |
![]() |
22
0
如果你的目标是PC,我想你可以试试C,或者嵌入。 卢阿 在C++应用程序中运行“高层次”的脚本。但是,如果目标是控制台,则 必须 管理你自己的记忆! |
![]() |
23
0
objective-c看起来很适合您的需求(带有可选gc的最新版本),尽管它太动态了,而且对我来说很简单。 |
![]() |
24
0
我想XNA是你最好的选择。在.NETFramework的支持下,您可以通过简单地更改游戏工作室中的设置来构建Windows或Xbox 360平台。最好的是,所有的工具都是免费的! 如果你决定去XNA,你可以很容易地开始使用他们的快速入门指南。 XNA Quickstart guide 到目前为止,这对我来说是一个有价值的、有趣的体验,并且从C++的内存管理中得到了很好的突破。 |
![]() |
25
0
不能暂时禁用垃圾收集器。你需要一个确定性的垃圾收集器。但这样的野兽也会带来表演上的冲击。我认为BEA JRockit是个野兽,所以你应该坚持Java。 只是为了评论你的例子;typedef是你的朋友…
|
![]() |
26
0
在你的探索中不要忽视独立的语言。来自Ionic Wind软件的Emergency Basic有一个内置的DirectX 9引擎,支持面向对象编程,可以方便地与C库接口。 詹姆斯。 |
![]() |
27
0
项目的最佳环境是以最快的方式完成任务。这-特别是三维图形-包括库。 根据任务的不同,您可能会逃脱一些次要的DirectX黑客攻击。然后你可以使用.net和 slimdx . 托管语言的编程速度更快,调试也更容易。 也许你需要一个真正好的3D引擎?尝试 Ogre3D 或 Irrlicht . 你需要商业级的质量(有人可能会说是ogre3d提供的)-去cryengine或虚幻。使用OGR3D和RiRiHT,您也可以使用.NET,尽管端口并不总是最新的,插件不像C++版本那样简单。对于cryengine/unrealengine,我想你没有真正的选择。 你需要更轻便的吗? OpenGL 尽管你可能需要一些包装纸(例如 SDL ) 你也需要一个图形用户界面吗? wxWidgets , QT 可能是有可能的。 你已经有工具链了?您的库需要能够处理文件格式。 你想写一个图书馆吗?C/C++可能是一种解决方案,因为世界上大多数人都可以使用C/C++库。也许是使用了COM? 还有很多项目/库我没有提到(xna,boost,…),如果你想创建一些不仅能显示三维图形的程序,你可能还有其他的需求(输入,声音,网络,人工智能,数据库,图形用户界面,…) 总而言之:编程语言是达到目标的工具。必须从手头的任务的背景来看。任务有它自己的需要,这些需求可能为你选择了语言(例如,你需要某个库来获取一个需要长时间编程的特性,并且只能用语言X访问库)。 如果你需要一个几乎所有的东西:尝试C++/CLI(也许与C语言相结合,以便于语法)。 |
![]() |
28
0
好问题。 至于“让我类型太多”,C++0X似乎解决了大部分问题。 如前所述: auto it=lotsofthingys.begin())//…推导类型,就像在*ml中一样 VS2010Beta已经实现了这一点。 至于内存管理-为了提高效率-无论如何,不管有没有垃圾回收(即,创建内存池,有时重用已分配的对象),您都必须保持对内存分配的良好跟踪,以便最终不管您的环境是否被垃圾回收,都不太重要。您还必须显式调用gc()以防止内存碎片化。 在任何地方,有一致的方法来管理内存都是很重要的。 RAII-是C++的致命特性 另一件事是内存只是一个资源,你仍然需要用GC来跟踪其他资源,所以RIAA。 总之,C在许多方面都是一个不错的选择,我发现它是一种非常好的语言,特别是在它中编写函数式代码的能力(可爱的lambda->语法、映射/选择“linq”语法等),因此有可能编写并行代码;尽管它仍然是一个“标准的花括号”,当你(或你的同事)需要的时候。 |
![]() |
29
0
查看Delphi/Pascal对象和一些示例: http://www.delphigamer.com 或 http://glscene.cjb.net/ |
![]() |
30
0
你可以看看 艾达 . 虽然没有垃圾收集器,但这种语言通常用于需要高可靠性的实时系统。这意味着更少的调试时间为您的三维应用程序。 而且,你也可以看看 哈斯克尔 ,如果你不知道这种语言的功能模式,你会觉得它很奇怪,但值得花点时间。Tim Sweeney(EPIC Inc.)将这种语言视为C++的替代品。 |
|
Vojtjikjhh -4K- · 绘制光标问题 1 年前 |
![]() |
FoolishMortal · 无法显示从基64字符串解码的特定图像 1 年前 |
![]() |
Dromlius · JPanel透支重叠的JComcoBox 1 年前 |
|
mathInferno · 另一个OpenGL纹理未渲染后 1 年前 |
|
Pierro · 当我运行一个简单的SFML代码时,为什么像素会失真? 1 年前 |
![]() |
Unknown · Were我能找到游戏横幅psd文件吗[关闭] 1 年前 |
|
se-tima · 如何绘制微生物学结果图(生长曲线)? 1 年前 |