公開されているゲームのソースコードを読む(Unity)
他の方がどのようにコードを書いているのか。それはとても重要なことです。自分自身のレベルに応じて、様々な規模のコードを読めば、きっと実りの多い学習体験になるでしょう。
と、思いましたので、GitHubに登録されている、Unityのソースコードを読むための準備と、読み方概要をまとめました。
GitHub(ギットハブ)とは
GitHubはUnityに対応しています。
GitHubデスクトップを使ってみましょう
上記のサイトからインストーラーをダウンロード可能です。
インストールが終わったら、ログインしましょう。
GitHubのアカウントを持っていないかたは、登録しましょう。
登録したら、早速ローカルなリポジトリ管理を始めます。
ここで、[Git Ignore]の欄にUnityを選択することで、Unityで共通とされるファイルはすべて無視されるようになります。今回のゲームのために作られたものだけを管理することができます。
ではソースコードを探しましょう。
あとはおそらく、GitHub内でunityキーワードで検索をすれば、おそらく大丈夫なのですが・・・今回は以下のブログ様から、テトリスをダウンロードしたいと思います。
ブログの中に以下のように注意があります。
あくまで個人利用として参考にさせていただきましょう。
GitHubに行き、コードをダウンロードします。
ダウンロードしたものを開き、内部のフォルダを、作成したリポジトリのフォルダに移動する。
今回、Promotionは不要かもしれないですが・・・なんとなく。
GitHubデスクトップでも画面に変化がありました
では、そのフォルダをUnityHubでひらきましょう。
フォルダを選択してAdd!
必要なバージョンを設定します。
Missing Versionではなく、Latest LTS Versionを選択してインストールしてあげましょう。
かくのごとくして、われら初心者は、上級者のソースコードを開いて内部を確認することができるのである。
間にGitHubを噛ませる意味があるのかどうか、ですが、自分が変更したものを元に戻すという作業もGitHubがあれば容易です。これを機に使い慣れていきたいと思います。
コードの読み方
ソースコードを読むプロセスは、プロジェクトの複雑さや規模によって異なりますが、以下は一般的な手順の一例です。これによってソースコードの理解を深め、プロジェクトに貢献したり、アプリケーションを修正したりする準備ができるようになります。
プロジェクトの概要を理解する
プロジェクトのREADMEやドキュメンテーションを読み、プロジェクトの目的、構造、利用されている技術などについて理解します。
ディレクトリ構造を調査する
プロジェクトのディレクトリ構造を調査し、主要なフォルダやモジュールの機能を理解します。これにより、コードがどこに配置されているかを把握できます。
依存関係を確認する
プロジェクトが他のライブラリやツールにどのように依存しているかを理解します。特に、外部ライブラリやフレームワークのドキュメンテーションを確認します。
エントリーポイントを見つける
アプリケーションのエントリーポイントや主要なクラス、関数を見つけて、プログラムの実行の流れを理解します。
コードのコメントとドキュメンテーションを確認する
コード内のコメントやドキュメンテーションを読み、関数やクラスの目的や使用方法を理解します。
主要なアルゴリズムやデザインパターンを識別する
主要なアルゴリズムやデザインパターンがプロジェクト内でどのように実装されているかを識別します
ユニットテストを確認する
プロジェクトがユニットテストを含んでいる場合、これらのテストを読み、ソースコードの挙動や期待される結果を理解します。
デバッグツールを使用する
IDEやデバッグツールを活用してコードをステップ実行したり、変数の状態を調査したりします。これにより、実行時の挙動を観察し理解できます。
バグトラッキングシステムを確認する
プロジェクトがバグトラッキングシステムを使用している場合、報告されたバグや機能の提案を確認し、それに基づいてコードの特定の部分を調査します。
コミュニティやフォーラムを参照する
GitHubや他のプラットフォーム上でプロジェクトに関するコミュニティやフォーラムがあれば、そこで他の開発者と交流し質問したり、議論に参加したりします。
これらの手順を組み合わせて、段階的にプロジェクトを理解していくことが重要です。また、実際にコードを変更してみたり、プルリクエストを送ってみたりすることで、コントリビューターとしての経験を積むことができます。
まとめ
コードの読み方については、ChatGPTが教えてくれた、読み方の方法論手順なので、後でも使える参考としてメモしています。
この記事が気に入ったらサポートをしてみませんか?