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バインディング