我想忙于一个冬季编程项目,并正在考虑编写一个在线文字游戏(服务器负载最多,比如500个用户同时)。我希望它与平台无关。我打算使用Python,我有一些经验。对于用户数据存储,在之前的MySQL经验之后,平板数据库设计将是优选的,但不是必需的。好的,现在问题是:
是否值得从Python 3开始,或者它仍然支持以前版本的模块端口?
在我的特定项目中使用Python 3有什么好处吗?我会更好地使用其他语言,比如Erlang?
在游戏服务器中使用关系数据库有什么好处吗?
是否有任何开源游戏服务器的源代码在开始之前值得研究?
答案 0 :(得分:2)
我会选择Python + Django。它使Web应用程序的开发变得非常简单。
答案 1 :(得分:2)
是否值得从Python 3开始,或者它仍然支持以前版本的模块端口?
取决于您要使用的模块。 twisted是网络编程的“瑞士刀”,可能是您项目的选择,但不幸的是它还不支持python3。
在我的特定项目中使用Python 3有什么好处吗?我会更好地使用其他语言,比如Erlang?
只有你能回答你的问题,因为只有你了解自己的知识。使用python3而不是python2,你可以获得python3带来的新功能的所有优点,以及目前非所有库都支持python3的缺点。
请注意python2.6应该实现python3的大多数(如果不是全部)功能,而它应该与python2.5兼容,但我没有以这种方式调查过很多。
python和erlang都可以满足您的需求,使用您最了解的内容和最喜欢的内容。
在游戏服务器中使用关系数据库有什么好处吗?
您将获得拥有ACID存储系统的所有优点和缺点。
答案 2 :(得分:1)
与您的数据库选择相关,我认真考虑使用Postgres而不是MySQL。在我对两个Postgres的实验中,大多数写操作都表现得更快,而MySQL的读取速度稍快。
然而,MySQL也有许多问题,其中一些是:
您可以使用SQLAlchemy等库来抽象出数据库访问。这可以让你测试两者,看看你喜欢哪个。
就语言选择而言。
如果你选择Python:
如果你选择Erlang:
所以我猜你的选择可以归结为你愿意学习多少这个项目。
答案 3 :(得分:0)
这种项目可能是调查新语言的好方法。我会说Erlang是其中一种比较有趣的语言,(1)具有功能性,(2)提供卓越的并发/(分布式)并行性范例,(2)在行业中使用(最值得注意的是传统的)电信),(3)实际进入桌面空间(CouchDB)。如果你还不知道,那就去吧! : - )
至于开源游戏服务器......嗯,有很多。谷歌周围的MUD引擎等。对于初学者,请查看MOO上的维基百科条目并查看LambdaMOO。
答案 4 :(得分:0)
如果您已经非常熟悉Python,那么如果我是你,我会调查Twisted库。 Twisted是一个异步通信库,最初是为支持大型基于文本的游戏而开发的。
目前常用库对Python 3的支持程度不高 - 所以你可能希望在这个时候坚持使用像Python 2.6这样的东西。