2009-08-09 70 views
3

我在pygame中做一个简单的多人经济博弈。它由一定长度的圈数组成,在数据末尾,数据被发送到中央服务器。对数据进行一些快速计算并将结果发回给玩家。我的问题是我应该如何实施网络支持。我正在寻找Twisted和Pyro,如果有任何建议或建议,我们将不胜感激。网络支持的Pygame

回答

6

扭曲肯定会是一个好主意。 Here是集成了扭曲和pygame的示例代码。

1

我已经对扭曲和焦不算什么,但那种简单的邮件你会被发送不需要这样的事情,可能通过使用某种框架来过于复杂。腌制一个对象并通过套接字发送它实际上是一个非常简单的操作,并且非常值得尝试,即使你最终选择了更重量级的框架。不要害怕网络!

+1

对网络协议使用pickle是一个非常糟糕的想法。这里有两个最近这方面的例子: http://plone.org/products/plone/security/advisories/cve-2007-5741 http://cve.mitre.org/cgi-bin/cvename.cgi? name = CVE-2009-0668 – 2009-08-20 21:14:27

+0

是的,这是关于泡菜的一个非常有效的观点。我坚持认为,执行一个简单的序列化和自己处理网络是一个好主意。 Python是否为没有潜在副作用的数据的纯序列化提供标准功能? – Kylotan 2009-08-21 11:05:32

+0

@Kylotan:只要使用扭曲,你就完成了。真正“过于复杂”的是试图重写手工扭曲的东西。 Twisted是一段复杂的,写得很好的并且经过测试的代码片段,试图自己复制它,这几乎意味着你最终会得到一个半工半制的劣质代码。处理网络远不止是打开一个原始的低级套接字,并且天真地推动数据。不要害怕框架! – nosklo 2009-09-26 22:53:08

1

有一些特别定制的插件和播放库到pygame.org网站上pygame的工作得很好。

这些包括PodSixNet,PygLibs.net和我自己的Mastermind(这是冒着自我夸大,轻量级,易于使用,并带有一个简单的教程)。