我正在考虑发展中多人在线社交游戏。共享世界的状态将需要的东西快在后端,因此潜在的解决方案似乎是:

  1. 快游戏机上server(eg.c++)和一些前端语言(php/python/红宝石)+闪

  2. 整个堆栈在python(使用扭曲或stackless python)+闪

  3. .网(asp.net 或asp.net 视)+闪

  4. .净+silverlight

第一一个可以被矫枉过正,从效率的观点(3异构层)

Nr.4可编程是天堂(共同环境所有层),但:

  • 没有这种东西已经没有建立与Silverlight,也许有一些搅局者隐藏在拐角处
  • 它可能很难找到silverlight设计师
  • 尽管闪电影剪辑模型正在受到批评的时候相比SL全面的架构是不是一个优势,当它涉及到设计额外的零部件的虚拟世界中由外部设计师?他们只可以作好准备。swf与。4观点上的一个项目4的框架-那岂不是更加困难与SL?
  • Silvelight显然缺乏在一些游戏的特征(如检测碰撞)

你怎么想?

[编辑]游戏本身将是更大的门户,因此这将是很好的整合发动机的一些网络框架。

有帮助吗?

解决方案

选择2--采用stackless蟒蛇是什么样的前夕在线使用。

http://support.eve-online.com/Pages/KB/Article.aspx?id=128


编辑

直到你拥有实际的软件,当然,这是不可能创建一种架构,执行合理的。因此,任何判断来这里只是闲置的猜测。

请考虑以下,但是。

  1. 静态的内容(.js文件.css.png的,等等)。 往往主宰你的网络带宽。你必须使用逆向代理服务器(例如,鱿鱼)来处理这个问题。

  2. 鱿鱼已经得到的内容的地方。你想要一个轻便的文件服务器提供静态的内容鱿鱼。服务或程序,或者东西。Apache会的工作对于这一点,但是--在一定程度上--这可能是大材小用。

  3. 你的动态内容--它的出现--将两种形式。

    • 计支持的游戏。

    • HTML支持的门户网站。

    对于这一点,你会是最快乐的一mod_wsgi引擎。Apache肯定不会这;ngingnx和程序也可能会工作。

    • 式的东西应该是一个组URI。其余是一个好的设计图案。通过mod_wsgi,这些连接到游戏的面向服务器的使用--如果有必要--stackless蟒蛇。你的前端(Apache,例如)有一个位置、目录或虚拟主机过滤这些URI和路线,他们一mod_wsgi守护程序,提供了游戏。看看 Wekzeug 建立这一点。

    • 你HTML的东西是另一个组URI。通过mod_wsgi,这些连接到一个Django服务器运行常规蟒蛇。你的前端(Apache,例如)有一个位置、目录或虚拟主机过滤这些URI和路线,他们一mod_wsgi进程。

其他提示

我花了一年的工作在一个大型多人网络游戏的用户的前端和蟒蛇的backend(I实际使用IronPython在Silverlight以便简化发展)

统非常适合为这个,我不会做一个严重的网络游戏中的其他任何东西。它已经拥有35%的市场,通过了时间你做了发展中应当足够高,不要重要得多了。对于严重的游戏,大多数人真的不会介意安装一个4M browser plugin。如果你只是想要个小的小行星的克隆、使用闪光灯。

如果我不得不这样做过,我想我会保持Python服务器,因为它的服务器技术,我最熟练的,但我认为我会用C#在前端,并使用请求传递数据。

最好的建议我可以给你的是:

  1. 利用现有的图书馆和代码尽可能多的
  2. 不考虑性能过早地

最艰难的部分是要完成游戏,利用技术的你知道的,并优化用你的时间,没有代码。希望你可以做什么,我不能-完成该死的游戏:)

编辑

关于为什么我会用C#如果我不得不这样做过:

IronPython了它的优点和缺点。这是伟大的,我可以分享码文件(常量、模型、等等)在服务器和客户。作出改变和刷新浏览器以看到这是真棒。调试是不友好的作为。

但在某些方面,它是一个二等公民,数据结合不,你不能使用IronPython类中的停靠。装载时间是一个问题,因此实际上我花了大量的努力,建立进口在并行的背景线程,以加速它。因为第二的公民状况在xaml感到关切的是,我使用一个模板的语言产生的xaml,如果它是html,这实际上作出比数据结合,但是没有蟒蛇的模板语言的工作在IronPython,所以我写了我自己的(另一个时间沉。)

启用分摊模型,我不得不写我自己的奥姆.这是很容易的。但是,将他们转移我通过JSON并提出优化的二元格式代替,工作之间的IronPython和蟒蛇。这是另一个时间沉。

事后看来,我不应该已经分散了所有这些兔径。

扭转已经为此目的使用与取得成功。正在根据asynchronius呼吁是非常有效的用于需要持续连接。还有一个很好要实施使用闪光灯。检查chesspark,它的建立与扭曲:

http://www.chesspark.com/

加游戏机并没有真正必须在c/c++。取决于复杂和种类型的游戏。但还有查看图书馆,这是非常好的。

我个人会阻止你用力。闪插件是更好的通过,并将继续在可预见的未来,特别是在非ms操作系统。不要把这个心脏但我不会安装silverlight只是为了看看你的游戏。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top