libgdx への貢献活動は簡単です:
public APIを変更したり新しいAPIを追加した場合は、それらの変更内容をリポジトリのルートにあるCHANGESファイルに記載するようにしてください。 CHANGES ファイルに加えて、blogやTwitterでも変更内容を公開してコミュニティ全てに周知してください。
他の開発者の知恵を借りたい場合は、Github上でプルリクエストを送信して会話するか、このサブフォーラム上で新規スレッドを作成してください。 You will need special forum permissions, write an e-mail to contact at badlogicgames dot com and tell me your forum id. You should also subscribe to that forum via e-mail, there's a button at the bottom of the page. You can also drop by on IRC (irc.freenode.org, #libgdx), where most core devs are lurking.
Libgdx には Apache 2.0 ライセンスが適用されています。
コードを提供する際には、コード提供者ライセンス同意書(CLA)に署名していただく必要があります。
規約をプリントアウトして空欄を埋めて、そのコピーを[Libgdx] CLA
という題名を付けてcontact@badlogicgames.comへ送信してください。
コード提供者ライセンス同意書(CLA)に署名していただくことで、我々はあなたのコードの使用や配布ができるようになります。 このライセンスは通常実施権(non-exclusive license)なので、コードに対する権利は全てあなたに帰属します。 これは、重要なコードを提供した人が後からそれを取り返そうとするのを防ぐためのものです。
libgdx のコードを編集する場合は、リポジトリのルートティレクトリにあるEclipse フォーマッターを使用してください。
フォーマッターを使わないと、開発者であるネイト氏に非常に迷惑をかけてしまいます。
IntelliJ IDEAを使用している場合でも、Eclipse コードフォーマッターを使用することができます: この記事を参照してください
Libgdx には公式の標準コーディング規約はありません。 大抵は通常のJavaスタイルに従っているので、あなたもそうしてください。
やって欲しくないことがいくつかあります:
既存のファイルを編集する場合は、そのファイルで使用されているコードのスタイルに従ってください。 可読性を損なわないのであれば、中括弧は省略しても構いません。
新しくファイルを作成する場合は、ここで見られるようなApache ファイルヘッダを追加してください。
新しくクラスを作成する場合は、少なくともクラスの使用方法やスコープについて説明するためのクラスドキュメントを追加してください。 メソッドの使い方が一目で分かるような場合はJavadoc を省略できます。
あなたが追加するクラスが明示的にスレッドセーフである場合は、Javadocに明記してください。 コードベース上で負荷の高いロックの数を減らすため、既定ではクラスはスレッドセーフではないものと見なされます。
GWT バックエンドでは全てのJava機能をサポートしている訳ではありません。 汎用のコードを記述する場合は、いくつかの一般的な制限事項について注意してください:
新たにクラスを追加する場合はそれらにGWT との互換性を持たせるか決め、GWT モジュールへの要素を含めるか除外するかしてください。
特定の互換性やネイティブコードが原因で、(Matrix4 や BufferUtilsのような)いくつかのクラスはGWTバックエンドではエミュレート環境で動作します。 これらのクラスを編集する場合は、その変更がエミュレートバージョンでも動作するか確認してください。
Libgdx は、ブラウザ(JavaScript!)を含むデスクトップと携帯端末の両方で動作するように設計されています。 While the desktop HotSpot VM can take quite a beating in terms of unnecessary allocations, Dalvik and consorts don't.
いくつかガイドラインがあります:
libdgx チームメンバーのほとんどは Git 初心者なので、今は使い方を地道に学んでいるところです。 間違いが発生した場合のリスクを減らすため、プルリクエスト(pull requests)はできるだけ小分けにして実行してください。 一度に3000ものファイルを変更したりすると、上手くマージされない可能性があります。
APIに大幅な変更を加える場合、我々は新しくブランチを切ります。新たなAPIを追加する際には、追加対象にするブランチに間違いがないか確認してください。
マスターリポジトリへのプルリクエストは、実装される前に複数の中心的コード提供者によってチェックされます。 内容が不十分だったり不適切だった場合は、あなたのマスターリポジトリへのプルリクエストを拒否することがあります。 拒否されたとしても怒らないでください。 Libgdx は世界中の何千ものプロジェクトで使用されており、適切で安定したものにする必要があるのです。
LibGDX ではForked Public Projectの手法が使われています。 このページのチュートリアルが、このプロジェクト形式に関連するGit コマンドを理解するのに役立つでしょう。