初めてのゲームプロジェクト バージョン管理
by
you-ri
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
初めてのゲームプロジェクト バー ジョン管理 GGJ21 オンライン
Slide 2
Slide 2 text
内容 - ファイル共有について - プロジェクト立ち上げ - 作業操作 - 注意点 - GGJ 成果物提出について
Slide 3
Slide 3 text
自己紹介 PN: ゆーり 新しいものスキ。趣味で格闘ゲームを開発しています。
Slide 4
Slide 4 text
プロジェクト共有について
Slide 5
Slide 5 text
要件 - ファイル、フォルダの共有 - ファイルの変更履歴 - オンライン - 無料 - 簡単
Slide 6
Slide 6 text
プロジェクトの共有方法 USBメモリを介したファイル受け渡し。 Google Drive 等ネットワークストレージを介したファイル受け渡し。 バージョン管理を使う。
Slide 7
Slide 7 text
バージョン管理ツールの利点 複数メンバーと共有できる。 作業内容を保存できる。元に戻れる。 作業内容を把握できる。
Slide 8
Slide 8 text
いろいろなバージョン管理 名称 所感 CSV 昔からある。 SVN ゲーム業界で使われている。 Perforce 巨大なプロジェクトで活躍。すごい。 Git 一番人気。 Unity Collaborate Unity専用。一番簡単。 Plastic SCM 最近Unityファミリーに加わった。
Slide 9
Slide 9 text
GitHub Desktop GitHub社製。 シンプルなUI。 デザイナー向け。
Slide 10
Slide 10 text
いろいろなGitホスティングサービス(無料) サービス名 人数制限 容量制限 GitHub 無制限 Repo 10GB LFS 1GB Bitbucket 5人 Repo 2GB LFS 1GB GitLab 無制限 Repo 10GB LFS ? Unity Collaborate 3人 1GB * 2021/1月現在無料で利用できる範囲での制限
Slide 11
Slide 11 text
準備 1. Unity Hub ダウンロード。インストール。 https://unity3d.com/jp/get-unity/download 2. Unityインストール。 3. GitHub サインアップ。 4. GitHub Desktop ダウンロード、 インストール。 https://desktop.github.com/ 5. GitHub Desktop に GitHub アカウント を紐付ける。
Slide 12
Slide 12 text
プロジェクト立ち上げ
Slide 13
Slide 13 text
リポジトリ フォルダやファイルの変更履歴の保存場 所。 ローカルとリモートがある。 プル … リモートの内容をローカルに反 映。 プッシュ … ローカルの内容をリモートに 反映。
Slide 14
Slide 14 text
プロジェクト作成手順 1. Unityプロジェクト作成。 2. Gitリポジトリ作成。 3. GitリポジトリをGitHubのリモートリポジトリへパブリッシュ。
Slide 15
Slide 15 text
プロジェクト参加手順 1. GitHubで招待してもらう。 2. Gitリポジトリをローカルにクローンする。
Slide 16
Slide 16 text
操作
Slide 17
Slide 17 text
History 履歴 更新履歴を見ることができる。
Slide 18
Slide 18 text
Changes 変更内容 変更したファイルとその中身を確認できる。 中身を確認できるのはテキストのみ。
Slide 19
Slide 19 text
Discard 破棄 ファイルを元の状態に戻します。
Slide 20
Slide 20 text
Commit コミット 変更内容を確定する。 1行のメッセージをつける必要がある。 1つの作業完了で1回コミットするとよい。
Slide 21
Slide 21 text
Undo アンドゥ 直前のコミット操作をなかったことにする。 何回でも戻れる。 サーバーにプッシュするとアンドゥできなくなる。
Slide 22
Slide 22 text
リモートに新しい変更があるか確認する場合 > Fetch フェッチ。 リモートに新しい変更がある場合 > Pull プル。 ローカルに新しい変更がある場合 > Push プッシュ。 Sync 同期
Slide 23
Slide 23 text
Merge マージ ふたつの作業内容をいい感じに合成する。 ローカルでマージした後にプッシュすることで確定。
Slide 24
Slide 24 text
Conflict 衝突 同時期に同じファイルを操作してしまった場合に発生。 どちらが正しいファイルかを選択するか、もしくは合成する必要がある。 テキストの場合は自動的に合成してくれる。
Slide 25
Slide 25 text
Branch ブランチ 他人に影響を与えない自分だけの道を作れる。 Mainから分岐する。 Mainに合流させることで、プロジェクトを反映する。
Slide 26
Slide 26 text
注意点
Slide 27
Slide 27 text
GitHub(無料)の制限 制限内容 - 1ファイルサイズ制限 100MB。超える場合はLFSを使う。 - ストレージ容量 Repo 10GB, LFS 1GB。 - 帯域制限 Download Max 1GB / 月。 パブリックで開発した場合 - 再配布禁止のアセットのプッシュ禁止。 制限を超えるには ... - 別サービスを使う - 有料プランを選択 - 自分でホスティングする 容量使いすぎないように工夫する。
Slide 28
Slide 28 text
無視するファイル GitHubを使えば意識する必要は少ない。 バージョン管理する必要のないファイルパターンを`.gitignore` ファイルに保存する。 キャッシュやテンポラリフォルダを追加する。
Slide 29
Slide 29 text
ファイルへの書き出し シーンを保存する。 .unity ファイル プロジェクトを保存する。 .meta .mat .asset .json ファイル等 CTRL+S でだいたいOK。
Slide 30
Slide 30 text
Metaファイルの扱い Unity独自の機構。 アセット、フォルダ1つに1つのMetaファイル。 アセットの参照情報やインポート設定等が含まれる。 一緒にコミットする必要がある。
Slide 31
Slide 31 text
巨大なファイル (GitHub) 100MB以上のファイルは Git LFSを使う。 `.gitattributes` ファイルに ファイルパターンを保存する。 LFSストレージは1GBまで無料。
Slide 32
Slide 32 text
空フォルダ Unityでは空フォルダに対応するMetaファイルが作られるが Gitではフォルダのみが作られることはない。フォルダには中身が必要。 対応策 - Unityでは空フォルダを作らないように気をつける。 - 空フォルダ削除ツールを用意する。 Uni Empty Folder Deleter https://github.com/baba-s/UniEmptyFolderDeleter - 無視する。
Slide 33
Slide 33 text
GGJ成果物提出について
Slide 34
Slide 34 text
ファイル構造 これらのフォルダをzipで圧縮してアップロードする。 クラウドストレージを利用する場合はリンクを貼る。恒久的にアクセスできるようにしてお く必要がある。 /src ソースコードやアセットファイルなど全て。 /release 実行ファイル。README.txt付きで。 /press ゲームのPR画像(press.jpg: 1024x768以上)。 /other その他のメディア。プレイ動画など。 license.txt クリエイティブコモンズライセンス 4.0
Slide 35
Slide 35 text
削除しておくべきファイル、フォルダ ダウンロードしたアセットのライセンスを確認する。 > 必ずライセンス表記に従う。 > 再配布が可能か? 再配布墓のアセットを削除する。 .git フォルダを削除する。 > .gitフォルダにはファイルの変更履歴がふくまれているため。 再構成するための手順をテキストファイルに記述する。
Slide 36
Slide 36 text
再配布禁止なもの 自作したもの 。 > 問題なし。 Webからコピペしたコードなど 。 > ほとんど問題なしだが、ライセンス表記があれば従う。 Webからダウンロードしたもの。 > ライセンスを確認し、従う。 AssetStore にあるもの。 > ほとんど再配布禁止。別のライセンス表記があれば従う。
Slide 37
Slide 37 text
終わりに - チームの決定を優先する。 - わからないことやトラブルがあれば内容を Discord #質問チャンネルへ。 - リモートデスクトップを活用する。