ゲーム制作に役立つPythonの使い方

今回はゲーム制作に役立つPythonの使い方を紹介します。

Pythonとは何か?

Pythonというのはコンパイルなしで動作するスクリプト言語です。
プログラム入門用の言語としてとても人気のある言語で、2021年現在、人気プログラムランキング2位になっているそうです。

私がPythonを始めたきっかけは、”Eric S. Raymond”氏 の「ハッカーになろう(How To Become A Hacker)」という記事を10数年前に読んだのがきっかけです。
この記事ではプログラム初学者に「Python」を強く推奨しています。

もしコンピュータ言語をなにも知らないなら、まず Python から始めることをおすすめします。設計がきれいだし、ドキュメントもしっかりしているし、初心者にもそこそことっつきやすくできています。でも入門言語として最適でも、おもちゃではありません。強力で柔軟で、大きなプロジェクトにもじゅうぶん対応しています。

Eric S. Raymond 「ハッカーになろう(How To Become A Hacker)」

そんな今現在イケイケのプログラム言語である Python をゲームで活用する方法をこの記事では紹介します。

ファイルコピー用のバッチファイルとして使う

仕事でのPythonの主な使い道がこれです。
Windowsでは .bat ファイルでもできるのですが、複雑な条件処理や文字列操作を行うと力不足となります。
そのときに Python はとても役に立ちます。

例えば、背景画像ファイル、キャラクター画像ファイルを指定のフォルダにコピーするようなバッチ処理です。

■もとのデータ
bg001.png: bgフォルダにコピーしたい
ch012.png: chフォルダにコピーしたい

↓

■コピー先
my_project: 実行環境
 +-- data
      +-- bg: 背景画像フォルダ
      +-- ch: キャラクター画像フォルダ

実装方法ですが、例えばファイル名に “bg” が含まれていれば “bg” フォルダにコピーする、”ch” がファイル名に含まれていれば “ch” フォルダのコピーする、という処理をPythonで実装します。
そうすることで、データを作成するたびに手動でコピーする手間が削減されます。
このような文字列操作を含む処理がとてもやりやすいのがPythonのメリットです。

ただ、これだけだと「手動でも良いのでは……?」と思ってしまいますが、実際に仕事する場合には大量のデータを扱うことになり、それを毎回手動でコピーするのは時間の無駄ですし、自動コピー処理を作ることでコピーミスをなくすことできます。

別のツールを起動する簡易コンバートツールとして使う

Pythonは、別のツールを起動してデータの受け渡しをするツールとして使うこともできます。

例えば ImageMagick という画像コンバートツールがあります。
これは画像の拡大縮小や特定の部分の切り出し、画像の合成などを行うことができます。

とあるカードゲームを作ったときは、約3000枚以上のカード画像をコンバートする必要があったのですが、これをPythonで作ることにより自動化しました。
Nitendo Switchでは512×512の解像度で出力し、PS4では1024×1024の解像度で出力する……という処理です。

これは仕事とは関係なく自作ゲーム用ですが、もととなる画像の特定の部分を切り出して、立ち絵画像と顔ウィンドウ用の画像出力を自動化するツールを作ったりしました。

他にも表情画像を合成して表情番号の管理に使ったりしました。

また、脱出ゲームを作ったときは、クリック可能な画像の透過部分を自動で除去するツールを作ったりしました。

仕事での使い道の話に戻ると、FBXというモデルデータを社内ライブラリ用の独自フォーマットにコンバートするときにPythonを使って自動されていることがありました。

Python自体はあまり高速で動くスクリプト言語ではないので、直接重たい処理をすることはないですが、このように橋渡し用のプログラムとしてとても取り回しがしやすいメリットがあります。

アルゴリズムを検証するテストコードを書く

これは私だけかもしれませんが、C++で書く前にPythonでアルゴリズムを検証することがあります。
キャラクターのAIをシミュレーションしたり、複雑なデータ構造の動作検証などです。
C++で書くよりは少ないコードで検証できるため、気軽にプログラムをできるのがPython を書くメリットとなります。

Pythonを覚えるには

以上、Pythonを使ったゲーム開発の効率化について説明しました。

Pythonはそれほど難しい言語でないため、他のプログラム言語を知っていれば習得は難しくなく、また人気の高い言語ということもありネット上に情報が数多くあるので、それだけでも勉強は可能です。

ちなみに私がPythonを覚えたときにしたのは Pygame というゲームライブラリでゲームを作りました。
やっぱりゲームを作って覚えるのが一番楽しいと思います。

調べたところ、「Pythonでつくる ゲーム開発 入門講座」という本があり、題材も「一筆書きゲーム」「落ち物ゲーム」「ダンジョンゲーム」といったゲームプログラム初心者にもおすすめの題材があって、なかなか良い本でした。

一筆書きゲーム
落ちものパズル
ダンジョンゲーム

ただ macOS環境だとTkinterやPygameといった依存ライブラリの関係で環境の構築が少し大変だったので、macOSではおすすめできません。
Windows環境であればさほど苦労せずに動作すると思います。

Pythonでつくる ゲーム開発 入門講座 [ 廣瀬豪 ]

価格:2,948円
(2021/10/24 21:44時点)
感想(0件)

YouTube

今回記事にした内容を動画にしたものです。