1

(非常に) 古い Python ライブラリ PyGame を使用してゲームを作成しています。しかし、それは私がここで尋ねていることではありません。

最新のビルドでサーバーのリポジトリをチェックし、ビルドが新しいか同じかをチェックし、新しい場合はユーザーにゲームのアップデートをダウンロード (または拒否) するように求めるコードを作成するにはどうすればよいですか?複数のバージョンで開発されており、変更を加えたときにプレーヤーが徐々に更新できるようになります。

Minecraft のように、更新が行われると、更新するように求められます... しかし、Python では

4

1 に答える 1

1

そのために必要なものは次の 3 つです。

  1. アップデートとバージョンに関するすべての情報を保存するサーバー。

    • 単一のページを持つことができる Web サーバー (Python の場合はflaskweb.pydjangopylons、など、または PHP などを参照) にすることができます。
    • 現在のバージョンを入力 ( GET/POST要求) として取得し、利用可能な更新を出力します (解析可能な形式、できればJSONXML またはプレーン テキストのみ)。
    • これらはデータベースから取得できます ( MySQLpostgresql、または選択した Web サーバーで動作する任意の ORM を参照sqlalchemy) 。
    • または、サーバーで利用可能なファイルの名前を確認することによって (ファイルが同じ Web サーバーでホストされる場合) (名前にはパターンがXXX-r24-20121224.tar.gzあり、ファイルのリストをglob何かで確認します)。
  2. ゲームを開始するたびにサーバーにクエリを実行して、更新があるかどうかを Web サーバーに確認するコード。たとえばrequests、 またはを使用できます。urllib2

  3. 実際のゲームをダウンロードして更新するコード。

    • Web サーバーは、更新ファイルの場所へのリンクを提供する必要があります。
    • そこからダウンロードする必要があります(requestsまたはを使用urllib2
    • zipfile(またはを使用して) 解凍しtarfile、実際のファイルをそれに置き換えます。
    • ファイルがどのように配置されているかによって、すべてが異なります。
      • ソース コードを配布する場合、できることは、すべてをパッケージにビルドしてから、パッケージ全体を置き換えることです。
      • パッケージとPythonは実際にそれzipfileを説明しており、Pythonファイルのみをzipファイルに入れるオプションを提供し、Pythonはそのzipファイルをに追加PYTHONPATHしてそこから直接インポートするオプションを提供します.
      • それを何かでコンパイルしている場合py2exe、それは別の問題になります.1つのzipファイルしか更新できないか、実際のDLLなどを置き換えることができますが、これは大きな混乱になる可能性があります.
      • それがdebパッケージまたは類似のものである場合、それを使用して更新し、ユーザーにそれまたは何かを行うように依頼することができます.

非常に抽象的な内容ですが、参考になれば幸いです。これを行う必要がありました:)

ここで、私自身の (偏った) 意見を述べます。既に Web サイトを実行している場合は、それを使用して、そのようなことのために 1 つのページを追加してください。それ以外の場合は、フラスコを使用して Web サイトをセットアップできる無料のホスティングをお勧めします。すぐに実行するのは非常に簡単で、優れた ORM sqlAlchemy を使用できるため、お勧めします。また、新しいバージョンがあることをユーザーに伝えて、どこで入手できるかをユーザーに理解させる以上のことはしません。それは、1 つの標準的な方法でのみ配布している場合を除きます。

于 2012-12-27T17:48:04.017 に答える