久しぶりにプログラミングの話
CファイルをCコンパイラに与えると、(大抵は)実行可能バイナリ(以下バイナリ)が返ってくる。
しかし、Pythonはインタプリタ*1なので、pyファイルをPythonインタプリタに与えても、バイナリは返ってこない。
Pythonでゲームを作ろうと思うと、この「バイナリが返ってこない」という点がネックになる。実行するだけのためにPython言語の処理系が必要、ということだからだ。
ゲームをプレイしたいだけなのに、「Pythonインストール必須」というのはいかがなものか。私の環境だと、(Python本体と、ゲーム用モジュールとで)だいたい100Mbだ。DirectXのランタイムに比べれば少ないのかもしれない。けれど圧縮ファイルを解凍して、バイナリをダブルクリックするだけでゲームが立ち上がって欲しいので、「Pythonをインストールさせた上で、pyファイルを配布」という手段は取らない。
というわけで、pyファイルからバイナリを生成したいのである。実はこの手段は既に存在する。「py2exe」という、Pythonのモジュールだ。
- py2exe http://www.py2exe.org/
多少サイズが大きくなるが、バイナリを生成することはできる。Windowsのバイナリだけだが。
Python+pygame+PyOpenGLで、せっかくマルチプラットフォームのゲームが作れるのに、バイナリ生成の段階でWindows専用になるのはちょっと悲しい。Linuxなどで実行できるバイナリを生成する方法はないのだろうか。