Git Tidak Bisa Menangani Game… Jadi Epic Membangun Lore

BBetter Stack
컴퓨터/소프트웨어창업/스타트업게임/e스포츠

스크립트

00:00:00Epic Games membangun sistem kontrol versinya sendiri hanya karena mereka muak dengan Git.
00:00:05Mereka membangunnya dengan Rust dan merilisnya secara gratis. Namanya Lore. Jadi ya,
00:00:10perusahaan di balik Fortnite membangun alternatif Git. Tapi Git tetap hebat,
00:00:15tentu saja. Namun Git diciptakan untuk kode. Sebagian besar file teks, banyak file kecil,
00:00:21perubahan yang biasanya hanya beberapa baris sekaligus. Game pada dasarnya adalah kebalikannya. Jadi
00:00:26bagaimana perbandingan Lore dengan Git dan bagaimana cara kita menggunakannya? Mari kita cari tahu.
00:00:35Saat ini, kita punya tekstur masif, file audio, video, model 3D,
00:00:41dan segala jenis aset biner yang bisa mencapai ratusan megabita atau bahkan beberapa gigabita setiap filenya. Dan
00:00:47begitu file-file tersebut mulai berubah, segalanya menjadi sangat berantakan. Repositori Anda tumbuh, proses kloning melambat,
00:00:53riwayat menjadi sangat besar. Dan akhirnya seseorang berkata, oke, mungkin kita harus menggunakan Git LFS. Git LFS membantu,
00:01:01tapi rasanya juga seperti solusi darurat yang ditambahkan ke sistem yang tidak pernah dirancang untuk jenis data ini.
00:01:06Lalu Anda punya kuota, batas bandwidth, dan aset lama yang menumpuk di riwayat. Jadi
00:01:12banyak studio menggunakan Perforce. Dan harus diakui, Perforce berfungsi. Ada alasan mengapa begitu banyak
00:01:18studio game menggunakannya, tapi biayanya mahal. Bisa jadi rumit. Dan begitu pengaturan Anda cukup besar,
00:01:24seseorang biasanya akhirnya menjadi orang yang menjaga semuanya tetap berjalan. Inilah hal yang dirancang
00:01:29untuk diperbaiki oleh Lore. Jika Anda menikmati alat pengodean untuk mempercepat alur kerja, pastikan untuk berlangganan.
00:01:35Kami merilis video setiap saat. Baiklah. Sekarang, daripada hanya berbicara tentang Lore,
00:01:39itu keren. Biarkan saya menjalankannya. Biarkan saya menunjukkan cara kerjanya. Demo dimulai dengan satu perintah
00:01:44instal dan tanda demo, yang akan kita jalankan di sini. Dan itulah dia. Beberapa detik kemudian,
00:01:51saya memiliki server Lore yang berjalan secara lokal. Tidak ada akun cloud, tidak ada kunci, tidak ada pengaturan sertifikat. Ia berjalan di sini
00:01:57pada port-port ini. Dan sekadar membuktikan bahwa ia benar-benar aktif, saya bisa memanggil endpoint kesehatan
00:02:03tepat di sini. Dan saya akan melakukannya di terminal ini. Dan berhasil. Ia aktif. Ia berjalan.
00:02:08Tidak ada layanan latar belakang yang perlu saya hubungkan secara manual. Tidak ada token otentikasi untuk dibuat. Tidak ada
00:02:14wizard pengaturan. Ia langsung mulai. Sekarang, biarkan saya membuat repositori. Jadi saya akan membuat folder,
00:02:22oke? Dan kita akan membuat repositori ini. Dan sekarang saya akan membuat file biner yang besar
00:02:27dan melakukan commit, oke? Ini hanya file tiruan, oke? Tapi mari kita buat file yang lebih besar. Saya menjalankan
00:02:32DD di sini untuk duplikasi data. Sekarang, alih-alih memperlakukan file 100 megabita itu sebagai satu objek besar,
00:02:40Lore memecahnya menjadi bagian-bagian kecil. Bagian-bagian itu di-hash, dikompresi dengan Z standard, dan disimpan dalam
00:02:47pohon Merkle berbasis konten. Jika sebagian besar file tetap sama, Lore tidak perlu menyimpan salinan penuh lainnya
00:02:52dari seluruh file tersebut. Ia bisa menggunakan kembali bagian yang sudah dimilikinya dan hanya menyimpan bagian yang berubah.
00:02:58Itu jauh lebih cocok untuk aset biner yang besar. Tepat setelah commit selesai, Anda bisa melihat
00:03:04status lokal yang dibuat di disk. Sekarang ada direktori Lore di sini dengan konfigurasi dan
00:03:10metadata. Baiklah, sekarang setelah kita memilikinya, mari kita buat branch. Oke, saya bisa menjalankan Lore branch create
00:03:17beri nama branch-nya. Ini bekerja hampir seperti Git. Jadi mari kita beralih ke sana. Mari kita buat sedikit
00:03:24perubahan di sini. Saya akan membuat file teks cepat dan melakukan commit ke branch ini. Jadi saya modifikasi, lalu kita bisa melakukan stage,
00:03:31lalu kita bisa melakukan commit, oke? Alur yang sama kira-kira sama dengan Git. Sekarang saya akan beralih
00:03:37kembali. Dan itu pada dasarnya instan. Hal penting lainnya adalah bahwa tidak ada dari itu yang memerlukan
00:03:44perjalanan ke server mana pun. Staging, melakukan commit, melakukan branching, beralih, melakukan diff, semuanya terjadi secara lokal. Jadi
00:03:50meskipun Lore memiliki server pusat, pekerjaan sehari-hari Anda masih terasa cepat dan Anda bisa terus
00:03:56bekerja secara offline. Ini membuatnya terasa sangat ringan. Sekarang pertanyaannya menjadi, oke,
00:04:02ke mana semua data itu pergi? Dalam demo ini, semuanya bersifat sementara. Jadi saat saya menghentikan server,
00:04:08datanya hilang. Itu karena saya hanya menggunakan mode demo. Dalam pengaturan nyata, Anda akan menjalankan Lore server
00:04:15dengan file konfigurasi dan penyimpanan persisten. Perintah CLI dan alur kerja lokal yang sama tetap sama persis
00:04:21seperti sebelumnya. Anda hanya mengarahkan server ke direktori nyata atau penyimpanan objek alih-alih membuang
00:04:27folder sementara tersebut. Sekarang dengan Git, Git memberi Anda riwayat snapshot proyek. Meskipun
00:04:34secara internal ia melakukan banyak optimasi cerdas, Lore dirancang di sekitar pembuatan potongan (chunking) dan deduplikasi sejak
00:04:40awal. Jadi untuk proyek besar yang berat aset, ia tidak perlu memperlakukan setiap versi file baru
00:04:47sebagai objek raksasa yang benar-benar terpisah. Lore juga dapat melakukan hidrat file sesuai permintaan sehingga Anda bisa bekerja dengan
00:04:53repositori yang berisi data dalam jumlah besar tanpa harus mengunduh setiap aset sejak hari pertama.
00:04:59Anda menarik apa yang sebenarnya Anda butuhkan untuk bagian proyek yang sedang Anda kerjakan.
00:05:03Satu hal yang sedikit membingungkan saat Lore diluncurkan adalah apakah itu terpusat atau
00:05:08terdistribusi. Ini terpusat. Ada satu server catatan, tetapi sebagian besar pekerjaan yang kita lakukan
00:05:15terjadi secara lokal. Jadi dalam praktiknya, ia berada di antara Perforce dan Git. Anda mendapatkan kontrol pusat
00:05:22dan manajemen akses, tetapi operasi lokal masih terasa cepat dan tidak bergantung pada ketersediaan server
00:05:28setiap detik. Ada beberapa perbedaan yang menyenangkan juga. Lore berlisensi MIT, protokolnya
00:05:34open source, dan ada SDK untuk berbagai bahasa, yang membuatnya jauh lebih mudah untuk membuat skrip dan
00:05:39membangun alat di sekitarnya. Sekarang, mungkin ini saat yang tepat untuk bersikap realistis. Lore bukanlah sesuatu yang akan saya
00:05:45gantikan dengan pengaturan Perforce produksi besok. Ini masih pra-1.0. Epic Games mengatakan API mungkin berubah
00:05:52sebelum rilis stabil pertama, dan proyek ini jelas masih berkembang. Juga tidak ada interoperabilitas
00:05:58Git saat ini, dan Anda tidak bisa hanya mengarahkan Lore ke repositori Git yang ada dan membawa
00:06:03seluruh riwayatnya. Ini juga di-host sendiri. Tidak ada layanan hosting di mana Anda membuat akun,
00:06:09mendorong repositori Anda, dan selesai. Dan aplikasi desktop yang mungkin Anda lihat berseliweran tidak disertakan dalam
00:06:15rilis open source. Apa yang Anda dapatkan adalah pustaka inti, server, CLI, dan SDK. GUI itu bukan
00:06:22bagian darinya. Lalu, tentu saja, performa. Bagaimana performanya? Epic mengatakan Lore dapat menangani
00:06:28repositori besar tanpa melambat seperti sistem lain. Dan Epic jelas memiliki pengalaman dengan
00:06:33beberapa proyek yang sangat besar. Tapi saat ini, sebagian besar klaim tersebut datang dari Epic sendiri. Tidak
00:06:39benar-benar ada tolok ukur independen yang solid. Jadi performanya terlihat menjanjikan, tapi sampai kita benar-benar
00:06:45mulai mengujinya, sulit untuk melihat bagaimana performanya. Haruskah Anda menggunakannya? Yah, seru untuk dimainkan
00:06:50dan dicoba. Apakah Anda membuat game? Apakah Anda membangun proyek besar? Oke, untuk proyek baru, mungkin.
00:06:56Jika Anda hanya ingin melihat ke mana arah kontrol versi untuk aset biner besar, ini layak
00:07:01untuk dicoba. Uji pada sesuatu yang tidak kritis, mainkan, lihat bagaimana performanya, lihat bagaimana alurnya.
00:07:07Poin yang lebih besar di sini bukanlah apakah Lore menggantikan Git atau Perforce dalam waktu dekat. Poin yang lebih besar adalah bahwa
00:07:14kontrol versi berhenti menjadi masalah yang terpecahkan setelah proyek mulai dirilis dengan sejumlah besar
00:07:19data biner. Git menang untuk teks, file yang lebih kecil. Lore mencoba memecahkan sesuatu yang muncul setelah itu.
00:07:27Dan sejujurnya, apakah ia menang atau tidak, ini tetap arah yang sangat keren. Jika Anda menikmati tip dan trik
00:07:32pengodean seperti ini, pastikan untuk berlangganan saluran Betterstack. Sampai jumpa di video lainnya.

핵심 요약

Lore merupakan alternatif open source bagi studio game yang membutuhkan manajemen aset biner berskala besar dengan efisiensi penyimpanan yang lebih baik daripada Git dan biaya yang lebih rendah daripada Perforce.

하이라이트

  • Lore adalah sistem kontrol versi berbasis Rust yang dikembangkan Epic Games khusus untuk menangani aset biner besar seperti tekstur, model 3D, dan file audio.

  • Lore memecah file besar menjadi potongan-potongan kecil yang di-hash dan dikompresi dengan Z standard agar tidak perlu menyimpan salinan penuh setiap kali ada perubahan.

  • Operasi sehari-hari seperti staging, commit, dan branching di Lore berjalan secara lokal tanpa memerlukan koneksi ke server pusat.

  • Arsitektur Lore menggabungkan kontrol terpusat layaknya Perforce dengan kecepatan operasional lokal yang mirip Git.

  • Sistem ini mendukung fitur hydrate file sesuai permintaan, sehingga pengguna tidak perlu mengunduh seluruh isi repositori untuk mulai bekerja.

타임라인

Batasan Git dalam Pengembangan Game

  • Git dirancang untuk kode sumber berbasis teks, bukan file biner berukuran gigabita.
  • Git LFS seringkali menjadi solusi darurat yang tidak dirancang untuk menangani kompleksitas data game modern.
  • Perforce menjadi standar industri game saat ini, namun memiliki biaya mahal dan memerlukan pemeliharaan teknis yang rumit.

Git mengalami penurunan performa saat menangani tekstur, audio, dan model 3D yang berukuran masif. Meskipun Git LFS tersedia sebagai tambahan, sistem tersebut seringkali tidak memadai untuk kebutuhan studio game yang terus berkembang. Alternatif utama seperti Perforce terbukti berfungsi, namun beban biaya dan kompleksitas operasionalnya menjadi tantangan tersendiri bagi banyak tim.

Mekanisme Kerja dan Arsitektur Lore

  • Lore membagi file biner besar menjadi potongan-potongan kecil menggunakan pohon Merkle berbasis konten.
  • Sistem ini hanya menyimpan perubahan (delta) antar potongan, sehingga menghemat ruang penyimpanan secara signifikan.
  • Pengguna dapat menjalankan server lokal untuk demo atau lingkungan kerja tanpa memerlukan pengaturan sertifikat atau akun cloud yang rumit.

Demonstrasi teknis menunjukkan bahwa Lore memungkinkan pembuatan server lokal yang aktif dalam hitungan detik. Dengan menggunakan algoritma deduplikasi, sistem ini tidak perlu menyalin seluruh file saat ada perubahan kecil, melainkan hanya menyimpan bagian yang berubah. Alur kerja command line pada Lore sangat mirip dengan Git, memudahkan transisi bagi pengembang yang sudah terbiasa dengan sistem tersebut.

Praktik Penggunaan dan Kesiapan Produksi

  • Lore beroperasi dengan model terpusat tetapi tetap mempertahankan kecepatan operasional lokal.
  • Proyek ini masih dalam tahap pra-1.0 dengan kemungkinan perubahan API sebelum rilis stabil.
  • Versi open source mencakup pustaka inti, server, CLI, dan SDK, namun tidak menyertakan aplikasi desktop GUI.

Sebagai proyek yang masih berkembang, Lore belum sepenuhnya siap menggantikan infrastruktur produksi yang mapan. Ketiadaan tolok ukur independen dan fitur GUI membatasi penggunaannya saat ini untuk eksperimen. Namun, pendekatan teknisnya dalam menangani aset biner menawarkan arah baru yang sangat potensial bagi pengembangan proyek berskala besar di masa depan.

커뮤니티 글

모든 글 보기