ゴマちゃんフロンティア

アザラシが大好きなエンジニアの開発日記です

【開発日記】バージョン管理ソフト(Git)を使用し始めてよかったと思うこと

time 2017/05/24

というわけで、5月も後半になりました。梅雨を経て暑くなってくる・・・と思いきや、甲府では既に33℃近くまで上がる日があり、錯乱しております。エアコンが手放せない日々が訪れるのは遠くないかもしれません。

今回はゲーム開発ソースの管理用として、バージョン管理ソフト「Git」を使用し始めたので、それに関するお話です。自分がGitを知って使い始めたのはかなり最近で、それまではSVN (+ちょっとだけCVS) を使っていました。
最初は「Git複雑でよく分からない!SVNがいい!」とか言っていましたが、最近は「このプロジェクトまだSVN管理じゃん!Gitはよ!」という思考になりつつあります。

自分のUnityの用途は「完全に趣味」で、開発メンバーも自身1人のみです。 故に「常にmasterにコミット」「non-fast-forwardでも強制プッシュ」等の歪な使い方をしております。
そんな人の「趣味のゲーム開発におけるGitライフ」について、良いと思ったことを語ります。

メリット

変更履歴(ヒストリー)が確認できる

これが非常に大きいです。いや本当に。
特にスクリプトで、「この機能作ったけど要らなくなった。でも後々使うかも・・・」という部分がある場合、コメントアウトするか別ファイルで取っておくかを迫られましたが、履歴から一発で見直せるため心置きなく削除することができます。
テクスチャやモデルデータなどのバイナリファイルも、以前では「old」というフォルダを作り、古いファイルを叩き込んでいました。Gitで見る場合は一度チェックアウトしなければならない分テキストファイルより手間ですが、前の運用よりは遥かに効率的でしょう。

「それゲーム設計が成ってないだけでしょ?」という方、正にその通りだと思います。しかし残念ながら、「気まぐれと勢いで作る」自分にはそんな計画性はありません。ブログを始めて2年ちょっとになりますが、ゲームどころか基本システムすら満足に出来上がっていないことからお察しください。

テキストファイルの差分比較ができる

バイナリは厳しいですが、テキストファイルであれば比較ビューで差分が取れることも見逃せません。force textを入れればプレハブやシーンファイルもYAML形式で保存されるので、(中身が分かるかはさておき) 比較ビューで開くことができます。
これまたスクリプトは恩恵大で、「上手くいかなくなったけど、どこ変えたっけ・・・」という場合に有用です。

簡易的なバックアップになる

リモートリポジトリが別サーバ上にある場合、簡易的なバックアップとして機能します。自分は借りているVPSをリモート先として構築したので、自分のPCがお亡くなりになっても安心です。

複数のPC間での同期ができる

VPSに接続できる環境さえあれば、どのPCからでもリポジトリを持ってくることができます。バージョン管理システムの性質上、「古いほうで上書きしちゃった!」なこともありません。今まではクラウドやUSB経由でコピーするしかなかったので、地味に嬉しい点です。

リベースでコミットグラフを綺麗にできる

Gitはリベースすることでコミットをまとめることができます。
複数人で開発する場合、共有リポジトリを不用意にリベース&プッシュするのは戦犯行為になり得ますが、1人で開発している場合は別です。自分以外に更新する人がいないので、思う存分リベースできます。やや手間ですが、綺麗にしてことで履歴や差分比較がやりやすくなるので、活用しない手はありません。

あとがき

そんなわけで、UnityのソースをGitで管理し始めたというお話でした。テスト向けの小規模なプロジェクトならともかく、ゲーム開発をする上ではとても便利です。やや敷居が高い感じは否めませんが、メリットを見て「おお!」となった方はチャレンジしてみてはいかがでしょうか。

down

コメントする