XNA框架是否适合服务器端编程?


11

我希望创建一个基于文本的MUD,因此XNA框架的许多元素似乎都适合我的需求。尤其是诸如一般的游戏循环,网络等之类的东西。看起来XNA与具有UI和音频的交互式环境紧密耦合,因此我不确定这是否是正确的方法。

自己重新创建这些类型的方面,尝试将XNA框架适应我的需要会更容易,还是针对此类工作有更好的框架?

Answers:


5

我认为XNA框架不会为基于文本的游戏的服务器端提供太多使用,不是。您应该查看该用例的标准.NET Framework类库。

但是稍微扩大了这个问题,尽管XNA框架确实是为客户端2d和3d游戏开发而设计的,但是可能有理由在2d或3d游戏的服务器端使用它们的一部分。重复使用服务器上图形引擎的某些部分是很常见的,因为服务器需要像客户端一样做可见性和碰撞测试之类的事情。在这种情况下,如果您的引擎使用了XNA中的数学库,则也需要在服务器代码中链接它。


3

如果使用的是C#,则应考虑使用WCF来抽象化网络层。相对而言,MUD不会拥有大量的网络流量,因此走这条路线可能会使您的事情变得简单得多。我一直在将WCF用于回合制策略游戏,对我来说效果非常好。


1
通常我会同意,但是WCF不支持直接telnet连接。对于常规的基于文本的MUD,已允许用户访问telnet服务器。
Agent_9191

@ Agent_9191根据您的目标,使telnet接口成为更健壮的API(例如,基于WCF构建的API)之上的一层可能是有意义的。
科迪·布罗西

WCF不会引入延迟,还是您会使用一个谈论原始套接字的自定义绑定?
Nate

好吧,如果他需要一个telnet接口,那么WCF可能不是一个好选择。我怀疑那会太过分了。但是考虑到来回发送的信息相对来说相对简单-比许多Web服务的有效负载要简单得多,我认为延迟不会成为问题。我使用WCF进行了相当复杂的回合制策略游戏,并且没有遇到任何性能问题。我通过自定义序列化使有效负载保持较小,并且延迟也不是问题,因为消息不是很频繁地来回发送(对于我的项目,大多数消息传递发生在每个回合结束时)。
Mike Strobel,2010年

1

您可以走XNA路线,仅使用所需的特定元素(音频,网络等);但是,这增加了项目的复杂性,并降低了对代码库的“直接理解”。

基本上,随着您添加更多的中间件,除非您深入研究中间件的实现,否则您对代码实际操作方式的了解就会减少。当您与自己保持距离时,您会失去效率,能力和理解力。

因此,如上所述,使用C#和适当的非XNA库将对您更加有益。

如果您是出于自己的兴趣而这样做,则不妨在自己感兴趣的地方滚动自己的位置-您将通过这种方式学到更多。

去吧!玩得开心!


1

这很大程度上取决于您的要求。

如果您有兴趣支持音频,朋友邀请等等,那么我相信XNA是必经之路。

使用XNA进行网络连接时遇到的主要限制是每个游戏最多只能有32位玩家。

当您使用XNA框架开发游戏时,并不一定要耦合到所有各种API。许多人使用XNA框架,但依赖其他框架进行网络连接。

我的建议是从物理上(在记事本中写下它们)或列出您对网络方面的需求。然后比较和对比各种框架。


-1

我倾向于说“从头开始创建”,但这只是基于分别使用C#和MUD代码的一种直觉。无论如何,您都可以滚动XNA自己拥有的版本,从而拥有更多的控制权并从中学习更多内容。

您不使用现有MUD引擎的任何原因,至少出于参考目的?


做一个学位,我正在使用现有的引擎作为参考。我正在尝试将SMAUG代码库从现有的C库移植到C#。因此,功能集主要是定义好的,只是使它在C#中工作。
Agent_9191
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.