用于游戏引擎的C++或v8
C++ or v8 for game engine
我已经在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++而不是任何其他语言来实现
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- 在 G++ v8.2.0 中使用 std::experimental::可选
- 如何为 v8::P ersistent<v8::Function> 创建到 c++ 函数的包装器
- v8::HandleScope::CreateHandle() # 中的致命错误无法在没有 HandleScope 的情
- 如何将节点 V8 字符串转换为 C++ 字符串
- 在 C++ 中嵌入 V8 会导致与 libcpp 相关的"unrecognized external symbol"错误
- 当我使用 V8 库中的 GetInternalField() 时出现分段错误
- 在 v8 JavaScript 中重复调用C++是否有巨大的开销?
- 我可以使用谷歌 v8 在回调函数中获取 JavaScript 函数C++源文本吗?
- 与纯 V8 相比,NodeJS 是否有任何性能缺陷或显著开销?
- V8垃圾收集器回调,用于测量GC活动
- 如何在 C++ 中从 V8 调用 Javascript 函数
- 如何将 v8::FunctionCallbackInfo<v8::Value> 数组从一个隔离复制到另一个隔离?
- 使用导入的函数从嵌入式v8调用webassembly
- v8 源代码中 ArrayMap 函数的回调 fn 参数是什么?
- 如何在 v8 Javascript 中的多个函数中使用相同的上下文?
- 如何使用 v8 本机插件将 C++ 数组交付到 Node.js
- 存储/传递 v8 承诺解析器供以后使用的最佳实践?(结合C++线程)
- v8 不再支持 v8::Value::ToNumber 了吗?
- 如何将wchar_t转换为 V8 字符串?