[英]Word game server in Python, design pros and cons?
我想忙于冬季编程项目,并正在考虑编写在线文字游戏(服务器负载最多可以同时容纳500个用户)。 我希望它是平台无关的。 我打算使用我有经验的Python。 对于用户数据存储,在拥有MySQL的先前经验之后,最好使用扁平数据库设计,但不是必需的。 好的,现在的问题是:
从Python 3开始值得吗?还是以前版本的模块端口仍然对它的支持太差?
在我的特定项目中使用Python 3有什么好处? 我会选择使用其他语言(例如Erlang)更好吗?
在游戏服务器中使用关系数据库有什么很大的优势?
开始之前是否有值得研究的开源游戏服务器的源代码?
我会选择Python + Django 。 它使Web应用程序开发非常容易。
从Python 3开始值得吗?还是以前版本的模块端口仍然对它的支持太差?
取决于您要使用的模块。 Twisted是网络编程的“利刃”,可能是您的项目的选择,但不幸的是,它尚不支持python3。
在我的特定项目中使用Python 3有什么好处? 我会选择使用其他语言(例如Erlang)更好吗?
只有您可以回答您的问题,因为只有您知道您的知识。 使用python3而不是python2,您将获得python3带来的新功能的所有优点,以及目前并非所有库都支持python3的缺点。
请注意,python2.6应该实现python3的大多数(如果不是全部)功能,而它应该与python2.5兼容,但是我并没有以这种方式进行大量研究。
python和erlang都是满足您需求的候选人,请使用您最了解和最喜欢的知识。
在游戏服务器中使用关系数据库有什么很大的优势?
您拥有使用ACID存储系统的所有优点和缺点。
与您的数据库选择有关,我将认真考虑使用Postgres而不是MySQL。 以我对这两个Postgres的经验,在大多数写操作中已显示出更快的速度,而MySQL在读操作中则稍快。
但是,MySQL还存在许多问题,其中包括:
您可以使用SQLAlchemy之类的库来抽象化数据库访问。 这样一来,您就可以对两者进行测试,以查看您希望与之打交道。
就语言选择而言。
如果您使用Python:
如果您使用Erlang:
因此,我想您的选择可能会归结为您愿意学习多少钱来做这个项目。
此类项目可能是研究新语言的好方法。 我想说的是,Erlang是目前最有趣的语言之一,(1)具有功能性,(2)提供了出色的并发性/(分布式)并行性范例,(2)在业界得到了广泛使用(最著名的是传统电信) ),(3)实际进入桌面空间(CouchDB)。 如果您还不知道,那就去吧! :-)
至于开源游戏服务器...好,有很多。 到处都是Google的MUD引擎等。对于初学者,请查看MOO上的Wikipedia条目,并查看LambdaMOO。
如果您已经相当熟悉Python,那么如果您是我,就会研究Twisted库。 Twisted是一个异步通信库,最初是为支持大型基于文本的游戏而开发的。
常用库对Python 3的当前支持水平不高-因此您可能需要在此时使用Python 2.6之类的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.