我正在使用(非常)旧的 Python 库 PyGame 制作游戏。但这不是我要问的。
如何编写代码来检查具有最新版本的服务器中的存储库,检查版本是否更新或相同,如果更新提示用户下载(或拒绝)游戏更新,因为它将将在多个版本中开发,并允许玩家随着我们进行更改而逐步更新。
就像 Minecraft 一样,一旦更新出来,它就会提示你更新……但在 Python 中
我正在使用(非常)旧的 Python 库 PyGame 制作游戏。但这不是我要问的。
如何编写代码来检查具有最新版本的服务器中的存储库,检查版本是否更新或相同,如果更新提示用户下载(或拒绝)游戏更新,因为它将将在多个版本中开发,并允许玩家随着我们进行更改而逐步更新。
就像 Minecraft 一样,一旦更新出来,它就会提示你更新……但在 Python 中
为此,您需要做 3 件事:
一个服务器,您将在其中存储有关更新和版本的所有信息。
flask
、web.py
、django
、pylons
等,或 PHP 或其他)。GET
/POST
请求)并输出可用的更新(以可以解析的格式,JSON
最好是 XML 或纯文本)。MySQL
、postgresql
或任何适用于您选择的 Web 服务器的 ORM,sqlalchemy
)XXX-r24-20121224.tar.gz
,您将检查文件列表glob
或其他内容)。每次启动游戏时都会查询服务器的一段代码,以检查网络服务器是否有更新。例如,您可以使用requests
或urllib2
。
一段将下载和更新您的实际游戏的代码。
requests
or urllib2
)zipfile
or tarfile
)并用它替换您的实际文件。zipfile
一点,它们为您提供了仅将 Python 文件放入 zip 文件中的选项,而 Python 为您提供了将所述 zip 文件添加到PYTHONPATH
并直接从那里导入的选项。py2exe
或其他任何东西编译它,这将是一个不同的问题:您可能只能更新一个 zip 文件,或者替换实际的 DLL 和其他东西,这可能是一团糟。我希望这会有所帮助,即使它非常抽象。必须这样做:)
现在我将给出我自己的(有偏见的)意见:如果您已经有一个网站正在运行,请使用它来为这样的事情添加一个页面。否则我会推荐一个免费的主机,它允许你使用烧瓶建立一个网站。我建议这样做,因为它很容易立即运行,而且它允许您使用出色的 ORM sqlAlchemy。此外,我只会告诉用户有一个新版本并让他们弄清楚从哪里获得它。除非您只以一种标准方式分发它。