게임 프로젝트의 모든 것을 저장하기위한 소스 컨트롤?


10

버전 제어를 위해 소스 코드뿐만 아니라 모든 자산, 텍스처, 아트, 문서 파일 등을 git 저장소에서 관리하는 것이 일반적입니까? 예를 들어 구 버전의 텍스처를 되찾고 싶습니다. 아주 나쁜 연습이라면 자산과 다른 것들의 버전 관리를 위해 어떤 도구를 사용합니까?



1
소스 코드는 소스 코드에서 생성 할 수없는 모든 것입니다. 에셋, 텍스처, 아트 및 문서도 해당 정의에 따른 소스 코드입니다.
Christoffer Hammarström

답변:


12

나는 이것이 좋은 습관이라고 말한다. 소스 및 자산에 소스 제어를 사용해야합니다. 당신은 그것을 백업처럼 생각할 수 있으며, 게임을 만드는 데 필요한 모든 것을 소스 제어에서 복원 할 수 있기를 원합니다.

나는 질문 링크 된 저장소에 자산을 저장하기에 관하여이다. 예술을 저장하는 데 다른 저장소보다 더 잘 작동하는 저장소가 있습니다. 그들은 당신이 예술을 "발산"하고 무엇이 바뀌 었는지 볼 수 있습니다. 다른 사람들은 자산을 이진 데이터로 취급하므로 다른 점을 확인하려면 자산을 확인해야합니다. 또한 리포지토리에서 버전간에 변경된 내용을 "알고"(파싱) 할 수 없으므로 자산이 변경 될 때 전체 자산을 업로드해야합니다.

나는 모든 것을 저장소에 저장합니다. 새 랩톱을 구입하면 다른 곳에서 자산을 복사 할 필요없이 저장소를 확인하고 게임을 빌드 할 수있었습니다. 즉, 타사 라이브러리, 자산 및 소스 제어도 내 저장소에 저장합니다.


7

Git은 텍스트가 아닌 파일에는 적합하지 않습니다. git repo를 복제하려면 큰 파일 확장자 (비표준, GUI에서 종종 지원하지 않는) 또는 특수 명령 (git 전문가가 필요)을 사용하지 않는 한 모든 히스토리 버전 파일을 다운로드해야합니다. 대부분의 DVCS 시스템에서도 마찬가지입니다. 텍스처, 모델 또는 오디오 클립의 경우 이는 매우 큰 파일의 많은 사본을 가져 오는 것을 의미합니다. 1GB의 자산은 200GB의 과거 개정 데이터 일 수 있으며, git을 사용하면 새 저장소를 복제 할 때 모든 데이터를 다운로드하고 최신 저장소를 가져올 때 모든 중간 개정을 다운로드 할 수 있습니다. 이것은 생산 지연을 최소한으로 견딜 수있을 때 도로에 큰 병목 현상이 발생합니다.

Subversion, Perforce 등은 원하는 개정판 (일반적으로 최신 버전) 만 다운로드하면되므로 자산을 선택하는 것이 좋습니다. 애셋에만 사용하고 git을 코드에 사용하거나 소스에도 사용할 수 있습니다. Perforce는 매우 복잡한 DVCS처럼 작동 할 수있는 몇 가지 기능을 가지고 있으며 내 경험에서 SVN 기능 (훨씬 더 복잡하지만)보다 우수하지만 비용은 Subversion을 사용할 가능성이 있음을 의미합니다.

대부분의 컨텐츠 전문가는 DVCS를 거의 필요로하지 않으며 일부는 클래식 VCS의 기본 사항까지도 문제가 있습니다. 자식으로 안장하지 마십시오. 또는 Mercurial, DARCS 등


좋은 지적이지만, 모든 기록을 가져 오지 않고 복제 할 수 있습니다. stackoverflow.com/questions/11497457/…
Ali

1
@Ali : 얕은 복제본은 문제를 적절하게 해결하지 못하며 (많은 명령을 비활성화하고, 대부분의 GUI에서 기본값이 아님 등) 본질적으로 CI 서버 등을 제외한 대부분의 경우 쓸모가 없습니다. git-lfs와 같은 최신 git 솔루션은 콘텐츠가 많은 팀을 git으로 만들려는 시도에서 설명한 문제를 해결하기 위해 발생했습니다.
Sean Middleditch

git lfs 는 "큰 이진 파일"문제를 매우 잘 해결합니다.
Nepoxx

3

프로젝트를 작업 할 때 아티스트로서 버전 제어, 파일 손상 또는 버그가 발생하는 경향이 있고 소스 제어 아티스트가 수정 저장을하지 않는 경향이있는 것은 좋은 습관입니다.

실제 사례는 Blender (Big Buck Bunny, Durian 등)로 만든 공개 영화 프로젝트입니다.

게임 자체의 아트 파이프 라인은 자산 자체가 텍스처 압축 및 모델 형식 변환과 같은 큰 지방 데이터에서 엔진 특정 형식으로 일부 변환을 수행 할 수있는 빌드 단계가 있다는 점을 제외하면 거의 동일합니다.

GitHub와 같은 일부 도구는 멋진 이미지 비교 도구를 제공하며 이진 얼룩을 비교하는 것보다 훨씬 좋습니다.

자산 저장소는 절대적으로 클 수 있기 때문에 저의 선호는 프로젝트 저장소의 하위 모듈 인 별도의 자산 저장소를 유지하는 것입니다. 예를 들어 소스를 분기하는 것만으로 기가 바이트의 자산을 풀고 싶지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.