Pygame チュートリアル
Windows 実行可能ファイル
(Windows Executables)

by Pete Shinners
pete@shinners.org

Revision 1.2, January 28th, 2002



はじめに

pygame でゲームをつくるのには弱点がひとつあって、それはゲームを動かすのに いろいろなものが必要だということです。人々があなたの作ったゲームをするには、 沢山のライブラリをインストールしなければなりません。ほとんどの unix ディストリビューションにはパッケージ管理システムや依存関係管理システムが ついているので、unix ユーザにはこれはそんなに大変ではないはずです。 しかし Windows にはそんなものはないし、python ソースコードを ダウンロードして実行するというのは、Windows ユーザにとっては難しいでしょう。

いちばんいい方法は、ゲームに必要なすべてのものをひとつに集めた パッケージをつくることです。Python では、これには沢山のファイルが必要です。 この文書では、あなたのゲームをスタンドアロンにするためのツールの 使い方を説明します。難しくありません。

ツールをダウンロードする

最初にすべきことは、実行可能ファイル作成のためのツールを入手することです。 ここでは優秀なツールである PY2EXE を使いましょう。 このパッケージは distutils の機能を拡張し、python コードをひとつの 実行可能ファイルにすることができます。 PY2EXE の最新バージョンは ここからダウンロードできます。 これはシンプルな Windows インストーラを使っています。

PY2EXE を使うためには、単純な distutils スクリプトを 書く必要があります。私は、使えるスクリプト pygame2exe.py をつくりました。

スクリプトを作成する

pygame2exe.py には、特定のゲームを作成するために 変更すべき箇所がいくつかあります。

project_name = "aliens"         # exeファイルの名前
project_script = "aliens.py"    # 基底となる .PY ファイル
icon_file = "aliens.ico"        # .ICOファイルの名前
optimize = 2                    # 最適化レベル: 0, 1, 2
dos_console = 0                 # DOS窓で走らせるなら 1 にする
data_directories = ['data']     # 必要なデータ用ディレクトリ
extra_modules = []              # それ以外に必要なモジュール

ほとんどの項目は解説の必要がないと思います。最初にゲームをテストするときには、 dos_console には 1 を設定したいと思うかもしれません。これは エラーメッセージをすべて DOS窓に出力します。リリースするときには これを 0 にもどせば DOS窓を開くことなく実行します。

もしお使いのゲームが動かないとか、モジュールがないというエラーが でる場合は、リスト extra_modules に欠けている特定のモジュール名を 入れてください。たとえばもしそのゲームで sufarray モジュールを使っている場合、 sufarray には Numeric モジュールが必要なのですが、ときどき PY2EXE は Numeric モジュールを依存関係に入れるのに失敗します。そのような場合は欠けている Numeric モジュールをこのリストに入れればすべて解決します。

ひとたびセットアップがうまくできれば、あとはこのスクリプトを走らせるだけで すべては完了します。最終的な実行可能ファイルは "dist" と名づけられた ディレクトリ内の、プロジェクト・ディレクトリに置かれます。

最終的なディレクトリ内には .PY ソースファイルがないことに気づくでしょう。 なぜなら、すべて必要な python ソースコードはバイトコードに圧縮され、 実行可能ファイル内に格納されたからです。

icon_file 変数は実行可能ファイルに使われる .ICO ファイルの名前です。 これはオプションなので、空文字列 ("") にしておけば無視されます。 とくに Windows 9x 上では、icon_file はあまりうまくは動かないことに注意してください。

data_directories は最終的なゲーム用ディレクトリにコピーするための パス名のリストです。ほとんどのゲームでは何らかの画像やサウンド、フォントなどの リソースを使うため、この変数はそれらを正しい場所へコピーする手助けをします。

ゲームに必要なすべてのリソースやファイルが "dist" フォルダ内にある 最終的なディレクトリにちゃんとコピーされているかどうか2重にチェックしてください。 ひとたびこれが終わってしまえば、ゲームは動いているはずです。そのディレクトリを まるごと .zip ファイルにして友達に送りましょう。彼らが python や SDL を インストールしている必要はありませんし、もし古いバージョンの python (python 1.5.2 とか) がインストールされていたとしても、それらは ゲームには何の影響も与えません。

また、ゲーム用のディレクトリをまとめるときに、あなたのゲームに 必要ない "PYD" ファイルは削除してもかまいません。たとえば、 もしあなたのゲームでジョイスティックを使わないのであれば "joystick.pyd" を 削除してパッケージのサイズをすこし小さくすることができます。

実際のインストーラを作成する

できあがったゲームをただ単に .zip ファイルで配布しても何もまずいことは ないのですが、ふつうは実行可能なインストーラを作って ゲームを自己解凍させ、ついでにスタートメニューにもアイコンをのせ アンインストーラもつけるほうがずっといいでしょう。このためには、 広く使われている Windows 用のインストーラツールを利用する必要があります。 インストーラツールにはフリーのものが沢山あり、そかもそのうちの いくつかはかなり高性能です。

私はインストーラを作成するなら INNO Setup を おすすめします。また、パッケージを変更するなら ISTool を 使うといいでしょう。どちらも私が Windows 用の pygame パッケージを作るときに 使っているものです。


訳: Yusuke Shinyama