Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C+编写+;并暴露于C#或直接用C#写?_C#_C++ Cli_Wrapper_Game Engine - Fatal编程技术网

用C+编写+;并暴露于C#或直接用C#写?

用C+编写+;并暴露于C#或直接用C#写?,c#,c++-cli,wrapper,game-engine,C#,C++ Cli,Wrapper,Game Engine,在我准备编写自己的2D(也许还有3D)游戏引擎之前,我正在做一些研究。在使用C和XNA之前,我已经制造了一个引擎,但是这次我想通过使用OpenGL等等< /P>使我的新引擎在C++中跨平台。 但是。。。我仍然想要C#的快速迭代时间,并且可以访问那里的游戏引擎 所以我有几个选择 用C编写引擎和CLI包装器++ 直接用C#写整件事,不要用C++ 用C++编写,使用单声道加载C代码/程序集到引擎。 没有C# 。。。可能是我还没想到的 我想我确实需要挑选、场景、矩阵计算、粒子系统等的速度 利与弊是什么?

在我准备编写自己的2D(也许还有3D)游戏引擎之前,我正在做一些研究。在使用C和XNA之前,我已经制造了一个引擎,但是这次我想通过使用OpenGL等等< /P>使我的新引擎在C++中跨平台。 但是。。。我仍然想要C#的快速迭代时间,并且可以访问那里的游戏引擎

所以我有几个选择

  • 用C编写引擎和CLI包装器++
  • 直接用C#写整件事,不要用C++
  • 用C++编写,使用单声道加载C代码/程序集到引擎。
  • 没有C#
  • 。。。可能是我还没想到的
  • 我想我确实需要挑选、场景、矩阵计算、粒子系统等的速度

    利与弊是什么?
    你有什么建议?

    如果你想要跨平台,你不能使用C++/CLI。除Windows以外的任何平台都不支持此操作

    < P> >,对于跨平台,我要么使用,要么使用C++使引擎成为一个库,并且使用平台调用从C代码中“使用”库。这将为您提供核心引擎(C++)所需的速度和控制,以及C#中游戏设计的灵活性


    这为开发C++游戏引擎提供了一个干净、跨平台的手段。

    < P> TAO框架已经死了,尝试替代

    < P>优化的C++代码将大大加快(在我的情况下,在32位的ODE中,20%是在64位中的40%,C是比32位的C位慢了64位,但是这是另一个帖子)。我会利用C++中的重数学(积分、微分方程等)。

    HMM TAO有点过时(5年没有更新),它们的域()已经被一个寮屋接管了…如果你将引擎代码分成C++,那么确保你在本地/管理边界上不必进行不必要的“聊天”。@ DeasDebug FrimsDead:现在它在单核中。因为它是一个直接的OpenGL包装,而且非常稳定,所以它仍然是一个不错的选择。否则,你可以使用OpenTK,但这也包括其他的东西(这可能对游戏引擎有用)。我真的倾向于使用C++来编写和使用引擎库,并使用平台调用。在开始之前,我将先用P/Invoke做一些实验。谢谢你的建议:@ @ WoeTVD:如果你想要C++引擎,并且想要跨平台,这是唯一的真正选择。由于C++(C++/CLI)是Windows,所以C++中所有的C++调用都需要使用P/INKEK来完成。可能是愚蠢的问题,因为我对C语言不太了解:用C语言编写GC之类的东西是否可行,或者GC暂停会把你活活吃掉吗?它是可行的,性能是可以接受的。C++是,而且总是会(我没有这么说)更快。已经有几个C#游戏引擎在运行。例如,平面红球。