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

C++ or v8 for game engine

本文关键字:v8 C++ 游戏 引擎 用于      更新时间:2023-10-16

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

我想做的下一步是构建一个游戏引擎,由于我有c++的经验,并且使用过v8,我一直在考虑制作一个仅限windows的游戏引擎,它使用v8来包装图形的directx和物理的子弹头(其余的还没有决定),然后调用一个js文件/字符串,该文件/字符串包含我的大部分游戏引擎,然后用户可以完全使用js构建他们的游戏。

但问题是,如果我要制作一款在pc上与其他AAA级游戏竞争的商业游戏,我真的应该使用v8/js驱动的游戏引擎吗?还是应该用c++做所有事情?

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

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

C++由于其高性能已被用于多个游戏引擎的开发。因此,如果你想制作一款更高效、更快速的游戏(这也取决于你如何编码,高效的代码肯定会带来不同)。是的,C++缺少垃圾收集,但它提供的性能绝对值得手动处理内存管理。如果你的偏好是制作一个高效的游戏引擎,如果你有时间,你应该使用C++。

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

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

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