2

我正在创建一个 MMO 游戏。我将使用 TCP 客户端/服务器通信。起初我的方法是用 C++ 编写客户端和服务器,但现在我开始考虑用 C# 编写服务器是否更容易。

客户端将用 C++ 编写,因为它需要跨平台,但服务器将始终在 Windows 系统上。我考虑选择 C#,因为它具有更简单的处理线程、内置 XML 解析器等的方法。

我的问题是这是否是一个好的解决方案?性能对我来说仍然很重要,所以如果选择 C# 而不是 C++ 会对性能产生巨大影响,我会坚持使用 C++。

另外,如果您认为这是个好主意,您是否知道是否有任何教程介绍了 C# 服务器和 C++ 客户端之间的通信?

提前感谢您的回答。

4

2 回答 2

2

C++ 和 C# 之间的性能差异并不像您想象的那么大。

对于通信,如果您对性能感到困扰,请使用套接字和Google Protocol BuffersThrift之类的东西。如果您不太关心性能,请使用 HTTP 和 JSON 或 XML。

于 2012-11-29T09:35:00.577 回答
1

为客户端和服务器使用不同的语言会迫使你用不同的语言重写很多东西,我个人希望保持同步:

  • 序列化和反序列化,尽管您当然可以为此使用一些库。我想到了 Google Protocol Buffers,因为它们明确设计用于节省带宽和“跨语言”工作。
  • 几乎游戏中的每个实体都会有一组或多或少的共同属性。当使用不同的语言时,您必须手动保持这些同步,并且可能会编写两次。这对于更复杂的设置器尤其烦人;)
  • 您将需要一些共享逻辑来“模拟”客户端上的服务器答案。在客户端预测服务器为获得“快速”行为所做的事情很重要。还有什么可以比为服务器和客户端使用相同的代码库更好地模拟这种行为?

不过,在服务器上使用 C# 时,我不会看到很大的性能问题。这不应该是强烈影响您的决定的一个方面。

于 2012-11-29T09:35:37.403 回答