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

Wou*_*rvD 7 c# c++-cli wrapper game-engine

在我编写自己的2D(也许是一些3D)游戏引擎之前,我正在做一些研究.我在使用C#和XNA之前已经制作了一个引擎,但是这次我想通过使用opengl等在C++中创建我的新引擎来跨越平台.

但是......我仍然希望从C#获得快速迭代次数,并且可以访问那里的游戏引擎.

所以我在这里有几个选择.

  1. 用C++编写引擎和CLI包装器
  2. 直接在C#中编写整个内容,没有C++
  3. 用C++编写并使用Mono将C#代码/程序集加载到引擎中.
  4. 没有C#
  5. ......可能是我还没有想到的东西

我想我确实需要剔除速度,场景图像,矩阵计算,粒子系统等.

Wat是优点和缺点?你有什么建议?

Ree*_*sey 2

如果你想要跨平台,你不能使用C++/CLI。除 Windows 之外的任何平台均不支持此功能。

话虽这么说,对于跨平台,我要么使用C# 与 Tao,要么使用 C++ 将引擎变成一个库,然后使用 Platform Invoke 从 C# 代码中“使用”该库。这将为您提供核心引擎 (C++) 所需的速度和控制,以及 C# 游戏设计的灵活性。

这提供了一种干净的跨平台方法来开发可以暴露给 C# 的游戏引擎。