用于游戏引擎的C ++或v8

时间:2012-07-11 17:52:44

标签: javascript c++ directx game-engine v8

我在js / html5中使用各种引擎构建了一些游戏,甚至在c ++中使用irrlicht(尝试过的ogre,但我更喜欢irrlicht的简单性)。

我想要采取的下一步是构建一个游戏引擎,由于我有使用c ++的经验并使用过v8,我一直在考虑制作一个仅使用v8的windows游戏引擎来包装directx for graphics和bullet for物理(还没有决定其余部分),然后调用一个js文件/字符串,它有我的游戏引擎的大部分调用这些c ++ api,然后用户可以完全使用js构建他们的游戏。

问题虽然是,如果我要在电脑上制作与其他AAA游戏竞争的商业游戏,我应该真的使用v8 / js驱动的游戏引擎,还是应该只做一切在c ++?

我为什么要问这个?
1)我将使用的所有C ++ api都将由v8包装,以便在js中使用 2)v8 / js胜过C ++指针和手动内存管理(垃圾收集)

如果不是第2点,我会使用c ++,但是现在我更喜欢使用js,但这导致了我的问题,因为我有一天想要制作一个真正的游戏(也许不是AAA游戏) ,但那是我想要的性能和质量,并且宁愿只制作一个游戏引擎,而不是为每个新项目/游戏制作一个新游戏引擎(或选择新游戏引擎),但如果我考虑第1点,那就是分配给我的C ++ api,所以我想知道我是否会遇到性能问题?

2 个答案:

答案 0 :(得分:2)

C ++因其高性能而被用于开发多个游戏引擎。因此,如果您想要制作更高效,更快速的游戏(这也取决于您的编码方式,有效的代码肯定会产生差异)。是的C ++缺乏垃圾收集,但它提供的性能绝对值得手动处理内存管理。如果你的偏好是一个有效的游戏引擎,如果你有时间,你应该使用C ++。

答案 1 :(得分:1)

我对mmo游戏很有经验,我可以肯定地说

C ++更适合服务器多人在线游戏,因为数据包加密方法,SQL查询速度,应用程序本身的速度,多线程可能性,一次处理数百万个函数。 (例如:500名玩家在线,500名玩家发送一个数据包移动到另一个位置,一个名为CPacketHandle :: OnPlayerMove(CPacket * pPacket,D3DXVECTOR3 * pPos ....)的函数将被分组调用500次)。

您可以手动管理c ++中的所有内容,如果某些内容是自动的,您可能会遇到无法按照您想要的方式处理某些内容的情况,有时会误导以前的编码时间。 在我看来,我会使用C ++而不是任何其他语言来实现其他任何东西