Pygame

pygame は、ビデオゲームを製作するために設計されたクロスプラットフォームのPythonモジュール集であり、Pythonでコンピュータグラフィクスと音声を扱うためのライブラリを含んでいる。pygameは、SDL ライブラリの上に構築されており、C言語のような低水準の機構を使わずにリアルタイムのコンピュータゲームを開発できるようにするための配慮がなされている。これは、計算量の多い関数（主にグラフィクス処理）のほとんどはゲームロジック自体から切り離せるという想定にもとづいており、それがPythonのような高水準言語をゲーム開発に使用することを可能にしている。

歴史

pygameは、開発が停止したpySDLライブラリを置き換えるために作られた。Libregamewiki's article on Pygame pygameは、元はPete Shinners によって書かれ、GNU Lesser General Public Licenseの下で配布された。2004/2005年の頃よりコミュニティプロジェクトとなった。多くのチュートリアルが存在する。An Introduction to Python Game Programming - written by Rene Dudfield and Geoff HowlandLine by line tutorial — Tutorial for beginners by Pete Shinners.Creating Games with Python - A tutorial explaining how to use Pygame for game development and improved execution.PyGame Tutorials - tutorials with OOP approach.pyGame Basics and Arinoid tutorials video tutorials at showmedo 小さなゲームを作る大会も開かれているPyweek homepage — regular contest (Pyweek) to write a game during one week using Python (most entries use pygame)..

後述のように開発が停滞した時期があるが、バージョン2.0.0リリース後は活発な開発が維持されている。https://github.com/pygame/pygame/graphs/contributors

開発停滞期とpygame2リリースまで

2009年8月リリースのバージョン1.9.1を最後に開発が停滞。2009年末にpygame reloadedとしてpygame2へ向けて進むかに見えたが、ならず。2016年末より復調、2019年までにバージョン1.9.2から1.9.5がリリースされた。バージョン1.9.5以降、pygame2開発が再始動された。

2019年3月31日、以前よりリファクターリリース（リファクタリング_(プログラミング) ）と称されてきたバージョン1.9.5がリリースされ、以下のアナウンスがあった。pygame 1.9.5 released into the wilds — 31 Mar, 2019
 SDL2サポートをマージした。
 同じコードベースで、SDL1と共にコンパイルすることも可能なので、pygame 2への移行は容易になる。
 pygame2がSDL2付きでリリースされるまで、SDL1ベースのpygame 1.9.xのリリースは継続される。

2020年10月28日、pygame20周年の日にバージョン2.0.0安定版がリリースされた。

（新しい）pygame2の開発
どういう状態になったら、pygame 2が完成したことになるのか、について、マイルストーン2.0 Milestoneが掲げられている。
 pygame APIが、SDL2上で後方互換の状態でほぼ走る。
 いくつか動かない部分があるときは、そのように記述がある。
 少なくともMac、Linux、Windows用のバイナリが、python 2.7, 3.4, 3.5, 3.6, 3.7用、32ビット/64ビットで用意されている。

pygame2 リリース
 2019年5月5日 pre-release Dev.1リリース
 2019年6月20日 pre-release Dev.2リリース
 2019年7月14日 pre-release Dev.3リリース
2019年10月8日 pre-release Dev.4リリース
2019年10月28日 pre-release Dev.6リリース
2020年5月6日 pre-release Dev.8リリース
2020年5月31日 pre-release Dev.10リリース
2020年9月20日 pre-release Dev.12リリース
2020年10月11日 pre-release Dev.14リリース
2020年10月20日 pre-release Dev.16リリース
2020年10月21日 pre-release Dev.18リリース
2020年10月22日 pre-release Dev.20リリース
2020年10月23日 pre-release Dev.22リリース
2020年10月27日 pre-release Dev.24リリース
2020年10月28日 2.0.0 安定版リリース

サポートするPythonのバージョン

 pygame 1.9.xは、Python 2.7と、Python 3.4からPython 3.7まで。
 pygame 2は、Python 3.4からPython 3.8をサポートする。Python 2.7のサポートも当面継続。

pygameを使用しているゲーム
 Slingshot
 :en:Frets on Fire
 :en:Dangerous High School Girls in Trouble
 Space Max (shoot them up)

文献
 Game Programming the L Line -- Pythonとpygameを使ってプログラミングとゲーム開発を学ぶ入門書
 Introduction to Computer Science Using Python and Pygame -- Pythonとpygameを使ってプログラミングを学ぶ電子書籍

参考
2Dエンジンとライブラリ:
 Pygame Utilities (PGU) は、Pythonを強化するためのツールとライブラリのコレクションである。ツールにはタイルエディタやレベルエディタ（四角形・等角図・六角形）が含まれる。GUIの強化には、完全な機能を持つGUI、HTML描画、文書レイアウト、テキスト描画が含まれる。ライブラリにはスプライトとタイルエンジン、状態エンジン、タイマ、ハイスコアシステムが含まれる。
 Pyglet は、OpenGLベースのライブラリで、ゲームや視覚的にリッチなアプリケーションを作るために使われる。
 MirthKit は、クロスプラットフォームの2Dゲームを製作・配布するためのシンプルなツールキットである。

脚注

外部リンク
 pygame公式サイト — pygameのドキュメント、Wiki、ニュース、ダウンロード、など
 Pygameニュースグループ (Webアクセス) —pygameの公式ニュースグループ
 pyOpenGL - Python用OpenGLバインディング

Category:Pythonライブラリ
Category:ゲーム開発
Category:Linux API
Category:Pythonでプログラムされた自由ソフトウェア