标签: python-stackless

设计mmo的好python库?基于演员的设计

我试图用python设计一个mmo游戏......

我已经评估了stackless,因为它不是一般的python而且它是一个fork,我不想使用它

我试图在pysage candygram dramatis和parley之间做出选择

任何人尝试这些库中的任何一个?

非常感谢您的回复

python mmo stackless python-stackless

8
推荐指数
1
解决办法
3654
查看次数

Stackless python网络性能随着时间的推移而降低?

所以我正在玩无堆栈的python,编写一个非常简单的网络服务器来教我自己用微线程/ tasklet编程.但现在我的问题是,当我ab -n 100000 -c 50 http://192.168.0.192/在apache工作台运行类似(100k请求,50并发)的东西时,我得到类似6k req/s的东西,第二次运行它我得到5.5k,第三次5k,第四次,4.5k等等一直到100req/s或者其他东西.

但是,当我重新启动python脚本时问题就消失了.

现在我的问题是为什么?我忘记删除tasklets了吗?我已经检查了stackless.getrunco​​unt()(由于某种原因它似乎总是返回1)所以它似乎不会有任何死的tasklet挂在身边?我试过在所有完成的tasklet上调用.kill(),没有帮助.我只是想不出这个.

import socket
import select
import stackless
import time

class socket_wrapper(object):
    def __init__(self, sock, sockets):
        super(socket_wrapper, self).__init__()
        self.sock = sock
        self.fileno = sock.fileno
        self.sockets_list = sockets
        self.channel = stackless.channel()
        self.writable = False
        self.error = False

    def remove(self):
        self.sock.close()
        self.sockets_list.remove(self)

    def send(self, data):
        self.sock.send(data)

    def push(self, bytes):
        self.channel.send(self.sock.recv(bytes))

def stackless_accept(accept, handler, recv_size=1024, timeout=0):
    sockets = [accept]

    while True:
        read, write, error = select.select(sockets, sockets, sockets, timeout)

        for sock …
Run Code Online (Sandbox Code Playgroud)

python io performance networking python-stackless

8
推荐指数
1
解决办法
1516
查看次数

Python与Java - 您会选择哪种并发编程?为什么?

另外,如果不是python或java,那么你会更普遍地选择静态类型语言还是动态类型语言?

python java concurrency python-stackless

8
推荐指数
5
解决办法
1万
查看次数

哪种编程语言支持热代码交换和/或沙盒?

我想写一个基于网络的MMO游戏,允许用户编写AI并将其作为游戏的一部分运行.我计划将Html5用于图形,并希望它是基于网络的,因此可以从智能手机访问它.我需要找到一种支持沙盒,并发,热代码交换和大型库的编程语言,以使事情变得更容易.

这时候我的研究出现了Erlang,Stackless Python和Lua.任何帮助表示赞赏.

erlang lua sandbox stackless python-stackless

8
推荐指数
2
解决办法
2221
查看次数

为大型游戏世界设计存储空间

我正在重新开始游戏编程.10年前我在qbasic制作游戏,自那以后我就没有做任何游戏编程,所以我很生疏.我一直在编程,我现在是web开发人员/ DBA/admin.我有几个问题,但我会将它限制为每个帖子一个.

我正在进行的游戏将是一个庞大的,非常大的世界.它有点像URW,但更大的世界更像是一个'RPG'.

我一直在努力决定,是什么是布局地图,保存和访问地图的最佳方式.我想到了使用sqlite来存储数据的想法.我甚至可以使用sqlite db作为游戏的保存文件,既简单又好用.

任何人都有关于我应该如何处理这些或其他存储方法的想法的任何提示?

以下是我的游戏要求:

  • 我需要完全随机访问游戏世界(NPC,怪物,动物都会一直活跃).
  • 我正在使用Stackless Python 3.1,除非我做了很多工作,否则选项非常有限.
  • 需要能够处理一个非常大的世界.
  • 并发支持将是一个加号,但我不认为我会需要它.

python sqlite python-3.x python-stackless

7
推荐指数
1
解决办法
735
查看次数

使用Python Tools for Visual Studio进行无堆栈Python开发

用于Visual Studio BetaPython工具(包括对CPython的支持)是否允许您使用Stackless Python进行开发?

如果是这样,您是否可以扩展您的答案以包括设置无Stackless Python环境所需的任何步骤,而不是在现有的VS2010安装上安装PTVS?

python cpython stackless python-stackless ptvs

5
推荐指数
1
解决办法
458
查看次数

什么样的Python开始?

我想学习python所以我从python站点下载它,我看到其他4种蟒蛇出现:

  • Python(正常)
  • IronPython的
  • Jython的
  • PyPy
  • 无堆叠的Python

我真的可以找到它们之间的差异.还有哪一个是最好的开始.

python ironpython pypy jython python-stackless

5
推荐指数
1
解决办法
583
查看次数

如何在 Stackless Python 中进行无限(或真正深)递归?

我知道标准 CPython 对递归深度有限制,我认为小于 1000,所以下面的示例代码将失败并出现“超出最大递归深度”错误。

def rec_add(x):
    if x == 0:
        return x
    else:
        return x + add(x - 1)

print(rec_add(1000))
Run Code Online (Sandbox Code Playgroud)

听说 Stackless Python 支持无限递归深度,但是如果我用 Stackless Python 运行上面的代码,它仍然报告“超出最大递归深度”错误。我想也许我需要以某种方式修改代码以使其能够使用 Stackless Python 的无限递归深度功能?

知道如何在 Stackless Python 中进行无限递归吗?谢谢。

注意:我知道如何将标准 CPython 的递归深度限制增加到 1000 以上,并且我知道如何将上面的代码转换为简单的迭代,或者简单地使用高斯公式计算总和,这些不是我要找的,而上面的代码纯粹是作为例子。

编辑:就像我在上面的“注释”部分已经说过的那样(我猜没有人真正阅读过),我知道如何增加 CPython 的递归限制,并且我知道如何将示例代码转换为迭代或只是一个高斯和公式n * (n + 1) / 2,我只是在这里问,因为我听说 Stackless Python 的一大特色是它支持无限递归,我不知道如何为示例代码启用它。

EDIT2:我不确定我是否理解“Stackless Python 支持无限递归”的想法是错误的,但这里有一些来源说(或暗示)Stackless Python 支持无限递归:

Stackless Python 的缺点是什么?

https://bitbucket.org/stackless-dev/stackless/issues/96

https://stackless.readthedocs.io/en/3.6-slp/whatsnew/stackless.html

python recursion python-stackless

5
推荐指数
1
解决办法
168
查看次数

社交多人浏览器游戏的架构(后端选择+前端选择[flash/silverlight])

我正在考虑开发在线多人社交游戏.世界的共享状态在后端需要快速的东西,所以潜在的解决方案似乎是:

  1. 服务器上的快速游戏引擎(例如c ++)和一些前端语言(php/python/ruby​​)+ flash

  2. python中的整个堆栈(使用twisted或stackless python)+ flash

  3. .NET(asp.net或asp.net mvc)+ flash

  4. .NET + silverlight

从生产力的角度来看,第一个可能是过度杀手(3个异质层)

NR.4可能是程序员的天堂(所有层的共同环境),但是:

  • 没有用Silverlight构建这样的东西,也许有一些隐藏在角落里的showstoppers
  • 可能很难找到银光设计师
  • 尽管与SL完全OO架构相比,Flash电影/剪辑模型受到批评,但在外部设计师设计虚拟世界的其他部分时,这不是一个优势吗?他们可以用例如准备.swf.4个项目的4个视角 - SL会不会更难?
  • Silvelight显然缺乏某些游戏功能(如碰撞检测)

你怎么看?

[编辑]游戏本身将成为更大的门户网站的一部分 - 因此将引擎与某些Web框架集成将是一件好事.

.net silverlight multiplayer python-stackless

4
推荐指数
2
解决办法
4958
查看次数

4
推荐指数
1
解决办法
1699
查看次数