ゲーム業界ではなぜgitではなくsvnを使うことが多いのか
のりしろ
パルワールドの制作ノートでベテランエンジニアの勧めで社内のコード管理ツールをgitからsvnにしたが結果良かったと書いてあった CEOはSVNって古くない?と懐疑的だったがこの意思決定でよかった、という文脈
ゲームはgitに比べてsvn使ってる率が高い印象があるけど、なんで?基素.icon アセット(巨大・大量バイナリデータ)も、管理するから?meganii.icon
これofこれだと思うnishio.icon
今のGitだとそうでもないのかもしれないけど、初期の頃に「でかいバイナリを入れると遅い」「Linuxカーネルのソースコード管理にでかいバイナリファイルなんかねえよ」というやりとりがあってドン引きされたというイメージ
以前いたゲーム開発現場ではアセット管理を Git LFS でやると重いので、SVN か Perforce が選択肢だったkidooom.icon Perforce はパフォーマンス面で強い(SVNより同期処理などが速い)ので、お金で開発効率を改善させたい現場は Perforce を選んだりする
ソースコード管理は普通に git を使う
git だけ使う、svn だけ使う という勘違いをしている人が多いのかも?ソースコード管理はgit、アセット管理はSVNやPerforce といった使い分けされているはず
納得しました!基素.icon
元のノートはこういうふうには読めなかった
GitLFS使えばラージファイルも管理できるのだろうけどゲームで扱うファイルはバイナリがおおいだろうしそこでdiff使えないしそれならsvnで十分というのがあるんじゃないかなseibe.icon
svnならリポジトリの一部だけローカルにチェックアウトしてくることもできる(Gitでもできる?)
実際に git 使って開発した感想Summer498.icon
アセットは別で管理したい
コードは git の方が良さげ
自動生成ファイルは個人の環境毎に異なるので gitignore に書いておかないと大変
使っているという意見
私が知るほぼすべてのゲームプログラマー、ゲーム開発プロジェクト、ほぼすべてのゲーム会社でgitは使われてます。UnrealEngineなんかはgit経由で配布されているので、gitを使わない選択肢がありません。...バイナリファイルの扱いがあまりに多くて問題になる場合はperforce等を使う場面もあります...
Gitの欠点
大規模バイナリファイルを使いづらい
市場に出回っている他のソリューションのように、大きなバイナリファイルを効率的に扱うことはできません。
@emadurandal_cgj: @aizen76 @WebNakano おっしゃる通りですね。git-lfsでなんとかならないか、と思って導入したこともありましたが、なかなか安定しなかったりで、SVN, Perforceが今も使われるのは納得だと思います。あとGitはアーティストさんだと使い方に戸惑われる方も多くて…。 @m_sigepon: データ管理は、ゲーム業界は糞でかいバイナリを扱うので最初はFTPに始まり次がSVN。最終出力データでなければコードを管理するわけではないのでGitで管理する必要性はそこまで感じない。大容量データだとGit LFSが必要になってくるし。 最終出力データでなければコードを管理するわけではない困りそうだけど困らないのかぁ基素.iconMijinko_SD.icon
学習コスト
Gitはエンジニア向けでアーティストには開発ワークフローを理解するのに少々難易度が高いからです。
この要因も結構大きいと思う。gitの難しさで困る非エンジニアの人は多い kidooom.icon その他
@aizen76: 未だSVNが多いゲーム業界。しかしそれはGitが使えないからではなく、純粋にGitの相性が悪いというケースも多い。それよりもGitやSVN以外の選択肢にMercurialやPerforce、Plastic SCMなどがあることを知らない方がやばいかも。 特に具体例は提示されていない
「なぜ」の前に「ゲーム業界ではなぜgitではなくsvnを使うことが多い」のかにいまいち同意できないSummer498.icon
例えばコンシューマ機の最大手の某天堂では github を使っているっぽい
「任天堂でGithubを使ってる」は「任天堂でGithub以外を使っていない」という意味ではない、当然適材適所で複数種類のものを使い分けているnishio.icon
今でも使ってるかは知らないが
コーエー、スクエニ、任天堂、バンダイナムコ…と錚々たるメンバーが使ってるなぁと並んでる最後に立命館大学が出てきて面白かった
任天堂のページに導入の理由が書かれてた
とはいえこの記事も2007年なので今何を使ってるのかはわからないな
基素.iconの感覚として活用事例はゲームが大体なので多いとしたけど、統計は知らないからあったら教えて欲しい基素.icon
面白いなぁsta.icon
SVNなんて完全にオワコン、Git一択だろうって思ってたけど、そうか、アセットを管理するのか
LFSじゃダメなん?と第一印象だったが、そう単純でもなさそうね