ゲーム業界ではなぜgitではなくsvnを使うことが多いのか
from 2024/01/22
のりしろ
パルワールドの制作ノートでベテランエンジニアの勧めで社内のコード管理ツールをgitからsvnにしたが結果良かったと書いてあった
CEOはSVNって古くない?と懐疑的だったがこの意思決定でよかった、という文脈
ゲームはgitに比べてsvn使ってる率が高い印象があるけど、なんで?基素.icon
アセット(巨大・大量バイナリデータ)も、管理するから?meganii.icon
これofこれだと思うnishio.icon
今のGitだとそうでもないのかもしれないけど、初期の頃に「でかいバイナリを入れると遅い」「Linuxカーネルのソースコード管理にでかいバイナリファイルなんかねえよ」というやりとりがあってドン引きされたというイメージ
git lfs以前なのかな基素.icon
https://git-lfs.com/
以前いたゲーム開発現場ではアセット管理を Git LFS でやると重いので、SVN か Perforce が選択肢だったkidooom.icon
Perforce はパフォーマンス面で強い(SVNより同期処理などが速い)ので、お金で開発効率を改善させたい現場は Perforce を選んだりする
ソースコード管理は普通に git を使う
git だけ使う、svn だけ使う という勘違いをしている人が多いのかも?ソースコード管理はgit、アセット管理はSVNやPerforce といった使い分けされているはず
納得しました!基素.icon
元のノートはこういうふうには読めなかった
GitLFS使えばラージファイルも管理できるのだろうけどゲームで扱うファイルはバイナリがおおいだろうしそこでdiff使えないしそれならsvnで十分というのがあるんじゃないかなseibe.icon
svnならリポジトリの一部だけローカルにチェックアウトしてくることもできる(Gitでもできる?)
https://git-scm.com/docs/git-sparse-checkout でできそう基素.icon
モノリポ時代に知っておくと便利な「git sparse-checkout」 - kakakakakku blog
実際に git 使って開発した感想Summer498.icon
アセットは別で管理したい
コードは git の方が良さげ
自動生成ファイルは個人の環境毎に異なるので gitignore に書いておかないと大変
mercurialはバイナリ差分対応っぽいbsahd.icon
Perforce から Git に移行する理由 | Atlassian
使っているという意見
私が知るほぼすべてのゲームプログラマー、ゲーム開発プロジェクト、ほぼすべてのゲーム会社でgitは使われてます。UnrealEngineなんかはgit経由で配布されているので、gitを使わない選択肢がありません。...バイナリファイルの扱いがあまりに多くて問題になる場合はperforce等を使う場面もあります...
なぜGitはゲームプログラマーには使われていないのですか? - Quora
2022年01月28日 ゲーム開発におけるSubversion/Git/Perforcerの比較 #Git - Qiita
Gitの欠点
大規模バイナリファイルを使いづらい
市場に出回っている他のソリューションのように、大きなバイナリファイルを効率的に扱うことはできません。
2021年9月23日 バージョン管理システムを選ぶときに考慮すべき 8 つのポイント | Unity Blog
@emadurandal_cgj: @aizen76 @WebNakano おっしゃる通りですね。git-lfsでなんとかならないか、と思って導入したこともありましたが、なかなか安定しなかったりで、SVN, Perforceが今も使われるのは納得だと思います。あとGitはアーティストさんだと使い方に戸惑われる方も多くて…。
@m_sigepon: データ管理は、ゲーム業界は糞でかいバイナリを扱うので最初はFTPに始まり次がSVN。最終出力データでなければコードを管理するわけではないのでGitで管理する必要性はそこまで感じない。大容量データだとGit LFSが必要になってくるし。
最終出力データでなければコードを管理するわけではない困りそうだけど困らないのかぁ基素.iconMijinko_SD.icon
学習コスト
Gitはエンジニア向けでアーティストには開発ワークフローを理解するのに少々難易度が高いからです。
2023年12月11日 【映像】UE5を使用したプロジェクトで困ったこと #UnrealEngine - Qiita
この要因も結構大きいと思う。gitの難しさで困る非エンジニアの人は多い kidooom.icon
アーティストには開発ワークフローを理解するのに少々難易度が高いこれはめちゃめちゃあって、そもそもアーティストはバージョン管理なにそれ?な人も多いのでP4をインハウスのランチャーから操作してアセットのサブミットが手軽にできるようにしてしまっている現場が多い。もう最低限のチェックアウトとサブミットだけできるものxbczLsg2YtD2.icon
あるいはMayaなどのDCCツールから直にPerforceサーバーにサブミットさせてしまうとか
Substance Painterなどのファイルは1ファイルで3GBとか普通に超えるので、Git LFSは現実的ではないイメージ…
Mercurialのバイナリ差分は1ファイル3GBに耐えられるのだろうかbsahd.icon
その他
@aizen76: 未だSVNが多いゲーム業界。しかしそれはGitが使えないからではなく、純粋にGitの相性が悪いというケースも多い。それよりもGitやSVN以外の選択肢にMercurialやPerforce、Plastic SCMなどがあることを知らない方がやばいかも。
特に具体例は提示されていない
「なぜ」の前に「ゲーム業界ではなぜgitではなくsvnを使うことが多い」のかにいまいち同意できないSummer498.icon
例えばコンシューマ機の最大手の某天堂では github を使っているっぽい
「任天堂でGithubを使ってる」は「任天堂でGithub以外を使っていない」という意味ではない、当然適材適所で複数種類のものを使い分けているnishio.icon
アセット管理にAlienbrainを使ってる話
https://ja.m.wikipedia.org/wiki/Alienbrain
今でも使ってるかは知らないが
https://www.comtec.daikin.co.jp/DC/prd/ab/user/
コーエー、スクエニ、任天堂、バンダイナムコ…と錚々たるメンバーが使ってるなぁと並んでる最後に立命館大学が出てきて面白かった
https://www.nintendo.co.jp/jobs/work_at_nintendo/interview03/contents02.html
任天堂のページに導入の理由が書かれてた
とはいえこの記事も2007年なので今何を使ってるのかはわからないな
基素.iconの感覚として活用事例はゲームが大体なので多いとしたけど、統計は知らないからあったら教えて欲しい基素.icon
面白いなぁsta.icon
SVNなんて完全にオワコン、Git一択だろうって思ってたけど、そうか、アセットを管理するのか
LFSじゃダメなん?と第一印象だったが、そう単純でもなさそうね
ゲーム業界ではなぜgitではなくsvnを使うことが多いのか#65ae554f774b17000046dc5d 登場以前からSVN使ってるから今も続いてる、もありそう
VCSの移行はたいへん