Lore? Epic Games 가 git 말고 새로 만든 VCS 라는데

TLDR IT/Dev 양쪽에 걸려 있길래 까봤다. 한 줄: 게임 개발자 아니면 안 쓸 듯.

Jun Noh

오늘은 블로그 포스팅이랑 TLDR 레터 읽는 것도 연차 쓰고 넘기려고 했는데… 연차가 딱 하루 남아있어서, 울며 겨자먹기로 부랴부랴 메일함을 열었다.

나는 TLDR IT, DEV, DevOps, InfoSec, Design 이렇게 구독해놓고 보고 있기는 한데, 거의 Dev 와 InfoSec 에서 글을 쓴다.

근데 오늘은 IT 와 Dev 에 같이 걸려있는 아티클이 하나 있길래 그걸 다뤄보려고 한다. (높은 확률로 Sponsor 겠지만…)

그래서 그게 뭐냐면 — Lore 라는 오픈소스 버전 관리 시스템이다.

일단 뭐임

공식 사이트 들어가서 봤다.

한 줄로: Epic Games 가 만든 차세대 VCS. MIT 라이선스.

Epic Games. Unreal Engine, Fortnite 만드는 게임사. 거기서 자기들이 쓰려고 만든 거를 오픈소스로 푼 것 같다.

근데 git 이 있는데 왜 또 만들었냐.

이유가 명확하다 — 게임 개발은 git 으로 굴리기엔 너무 헬이다.

git 이랑 뭐가 다른데

핵심 차이가 두 개다.

Centralized. git 은 distributed (각자 컴퓨터에 전체 repo 복제). Lore 는 centralized 되어있다.

약간 거꾸로 가는 느낌인데, 게임 회사 같이 큰 팀에서는 사실 centralized 가 더 맞다.

Binary-first. git 은 원래 소스 코드 용이고.

큰 바이너리의 에셋들이 (텍스처, 3D 모델, 오디오 등) 들어가면 repo 가 미친 듯이 부풀고 clone 도 한 세월 걸린다.

Lore 는 처음부터 바이너리 우선 설계. 대용량 파일을 chunk 로 잘게 쪼개서 저장하고 (중복 제거 잘 된… 다고 한다.), 필요한 파일만 받아오는 on-demand hydration 방식.

내부적으로는 Merkle tree + content-addressed 저장 — 이건 git 이랑 같은 결.

진짜 노리는 건 Perforce 인 거 같다

이게 흥미로운 부분.

게임 업계에서 git 안 쓰는 회사 진짜 많다고 한다.

뭐, 사실 유니티 에셋 스토어에서 조그만 에셋 패키지 같은 거 몇 개만 다운받고 올려보면 왜 안쓰는 지 알 수 있다.

다들 뭐 쓰냐 — Perforce (정확히는 Helix Core) 라는 거 쓴다.

Centralized + 대용량 binary 잘 다루는 상용 VCS.

게임 회사 입장에선 거의 표준급인데 — 라이센스가 매우 비싸다고 한다.

Epic 이 Lore 를 오픈소스로 푼 거 — 이게 사실상 “Perforce 한테 시장 뺏어오자” 의 신호로 보인다.

어떻게 쓰는데

공식 사이트 메인은 별로 안 까놨는데, quickstart 페이지 에 명령어 다 있다.

설치는 한 줄.

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/EpicGames/lore/main/scripts/install.sh | bash -s -- --demo

demo 플래그 붙이면 로컬에 loreserver 까지 같이 띄워줘서 바로 테스트 가능.

기본 흐름 보면 — 사실상 git 이랑 거의 같다.

# repo 만들기
lore repository create lore://127.0.0.1:41337/my-project

# 파일 추가 + 커밋
lore stage hello.txt sample.bin
lore commit "Initial revision"

# push
lore push

# clone (--use-shared-store 가 디스크 절약 옵션)
lore clone lore://127.0.0.1:41337/my-project my-project-b --use-shared-store

# 브랜치
lore branch create my-first-branch
lore branch switch main
lore branch merge my-first-branch --message "Merge"

# 동기화
lore sync

stage / commit / push / clone / branch / sync. git 써본 사람이면 이질감 거의 없다. 도입 코스트 낮춤.

차이가 있다면 — shared store 라는 개념. 한 컴퓨터에 같은 repo 여러 working tree 가 있어도 실제 데이터는 한 번만 저장. 게임 회사에서 같은 프로젝트 여러 브랜치 동시에 굴려야 할 때 디스크 폭주 안 나게 해줌.

그리고 SDK 가 C/C++, C#, Rust, Go, Python, JS 다 있다.

사람이 CLI 만 쓰는 게 아니라 — 빌드 파이프라인 / 게임 엔진 / CI 가 직접 호출하는 용도 까지 노린다는 뜻. 게임 빌드할 때마다 대용량 에셋 자동으로 가져오고 하는 거.

나한테 의미가 있냐

없을… .거 같다.

내 repo 라 봐야 git 으로 충분하고, 굳이굳이 다른 걸 공부하고 싶지도 않다.

이거 진짜 필요한 사람은 — 게임 개발자 / 3D 아티스트 / 비주얼 에셋 다루는 팀 정도.

그런 사람들한테는 진짜 변혁적일 수 있겠다. 라이선스 비용 아끼면서 비슷한 기능 쓸 수 있다는 거니까.

그래도 알아둬서 손해는 없다.

다음에 게임 만들 일이 생기면 다시 찾아봐야겠다.

마치며

VCS 신상이 나오는 거 자체가 좀 신기하긴 하다. git 이 워낙 견고하게 자리 잡아서 — 이쪽 분야는 다음 게 안 나올 줄 알았는데.

근데 또 보면 빅테크들은 각자 자기 페인 포인트에 맞춰 새 VCS 만드는 흐름이 있긴 한 거 같다.

게임 / 대용량 에셋 분야에서는 — Lore 가 그 역할인 것으로 보이고…

뭐, 나한테는 — 그냥 “이런 게 있다” 정도.

마침.

다른 글 보기