【问题标题】:What is the best Networking implementation for my application?我的应用程序的最佳网络实现是什么?
【发布时间】:2010-06-15 18:17:32
【问题描述】:

我正在为自己规划一个项目,它是一款单人和多人纸牌游戏。我想跟踪每个人的统计数据,例如世界排名等...

我的问题是我不知道客户端的最佳方法 - 服务器架构和编程。我最初的目标是用 C# 编写所有东西,因为我想精通这种语言。我最初的想法是在互联网上的某种主机上运行一个后端数据库和一个后端服务器,但是对于这样一个可能会也可能不会赚钱的小项目来说,这似乎很昂贵。

我曾尝试研究云服务,但我不熟悉这项技术,我不确定能否让它们满足我的需求,尤其是因为大多数像 Google 的云一样希望你使用我所理解的编码架构。

最后我的最后一个问题是我想要一个可以用于不同语言的架构,以便我可以将它从 PC 移植到 iPhone、Xbox 等...

那么有人对最好的架构和语言有什么建议吗?

我是否非常担心架构和后端成本,应该只专注于让游戏以哪种方式运行?

【问题讨论】:

    标签: architecture network-programming client-server match multiplayer


    【解决方案1】:

    C# 将是一门很棒的语言,即使对于 iPhone 和 Xbox 也是如此。使用Microsoft's XNA 框架,您可以为PC、Xbox 和Zune 编写您的客户端卡应用程序,而无需更改太多代码。如果您正在考虑 iPhone,那么您稍后应该考虑MonoTouch,它可以让您为 iPhone 编写 C#。你也有Silverlight,你可以用它来为网络编写一个富客户端。所以,我绝对会推荐 C#,无论是为了学习还是为了以后将其投入生产。

    至于在互联网上使用服务器,我建议简单地安装SQL Server Express 版本。这样你就可以在你的本地机器上单独运行一个服务器,与一个客户端一起运行,以节省支付主机费用。然后,当您准备好后,您可以将其移至 Web 托管的 SQL Server 实例,或者稍后在您准备好后免费使用 MySQL 等。

    【讨论】:

      【解决方案2】:

      我认为成本问题(例如数据库托管)是一项业务决策,而不是技术决策。你想扭亏为盈吗?您的游戏将拥有多少用户,他们将支付多少费用(直接或间接通过例如广告)。您可以选择任何语言/数据存储的托管解决方案。不过,我怀疑您是否需要“云”解决方案,标准数据库(MSSQL、MySQL、Postgres 等)应该就可以了,其中一个几乎任何托管计划都可以让您部署自己的代码。

      关于技术,C# 是 Web 应用程序的完美选择,如果学习它是一个目标,那么一定要使用它。在支付托管费用之前,您绝对应该在自己的计算机上开发一个可以运行的游戏(在本地运行后,您仍然需要部署和测试托管版本)。

      至于您关于迁移到其他非 PC 平台的最后一个问题,恐怕您在那儿大多不走运。 C#/.NET 将帮助您部署到基于 Windows 的手机,但对于例如iPhone,你必须使用Apple的SDK和环境。我对Xbox一无所知。我可以在这里给出的最好建议是抽象你的层(例如 MVC 架构),并在它们之间保持清晰且有据可查的分离。这样,您可以重新实现,例如 iPhone 上的视图和控制器,但仍然使用您的集中式数据模型。

      【讨论】:

        猜你喜欢
        • 2011-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-01
        • 2019-07-19
        • 1970-01-01
        • 2010-10-17
        • 2011-01-17
        相关资源
        最近更新 更多