Pygame Zero の原則

開発などにコントリビュートする前に以下の内容をよく読んでください。

Pygame Zero は初心者を対象としているため、経験の少ないプログラマに不用なハードルを設けないよう細心の注意を払う必要があります。

アクセシビリティの考慮

Pygame Zero の主な目的は、初心者プログラマが簡単に使い始められるようにすることです。もちろん API の設計も例外ではありません。

またハードウェア要件にもこの原則が当てはまります。 当初、Pygame Zero がキーボードとマウスだけしかサポートしていなかったのは、誰でも使えるようにするためです。

保守的になろう

Pygame Zero 開発の初期段階において、リチャードとわたし(ダニエル)はさまざまな機能について試行錯誤を繰り返しました。何か機能を加えて、それを試して、またそれを取り除いての繰り返しです。

実験的すぎたり、混乱をもたらしかねない機能の追加は却下しなければなりません。

この原則は OS のサポートにも当てはまります。たとえば異なる OS 間で互換性が保証されないファイル名は使えないようにしています。

とにかく動くこと

Pygame Zero は Pygame をほぼ完全にラップしたものです。しかし Pygame のすべての機能にアクセスできるようにはしていません。余計な手間をかけず本当にうまく動く機能だけをアクセス可能にし、あまりうまく動かない、または追加の手順が必要となる一部の機能は Pygame Zero から見えないようにしています。

実行時のコストを最小化する

つまるところ、Pygame Zero はゲームのフレームワークですからパフォーマンスはとても重要です。

潜在的な落とし穴を塞ぐため、フレーム毎にコストの高いチェックを行うのは、現実には受け入れ難いことです。その代わり、起動時に確認、または例外が発生した場合にのみ確認して診断の詳細を出力するようにします。

エラーを分かりやすく

Pygame Zero で例外が発生したときは、何が問題なのかを分かりやすく知らせるメッセージを出力しなければなりません。

ドキュメントを書く

他のすべてのプロジェクト同様、Pygame Zero には良いドキュメントが必要です。必要なドキュメントを含むプルリクエストはアクセプトされる確率が高くなります。

複雑な文章や技術用語はできる限り用いないようにしてください。経験の少ないプログラマにも読みやすくするためです。

破壊的な変更は極力回避

教育環境においては、使用するライブラリのバージョンを自由に選べないこともあります。最新バージョンのインストールやアップグレードの方法が分からないこともあります。

このため、一番最初に正しく機能を設計することが、他の多くのプロジェクトよりも重要です。