3 ms·
I'm getting into indie game development. I know next to nothing on game dev, but figured i'd still reply since this specific part interests me quite a bit. > H
by adkadskhj 6y ago
I'm getting into indie game development. I know next to nothing on game dev, but figured i'd still reply since this specific part interests me quite a bit.
> How do you manage / version assets? Git? Git LFS? ...?
Recently i started working and planning on a 2D game. However i wanted 3D assets, and so the process was very asset and pipeline heavy. As such i wanted my code to always match concrete versions of asset sources - blender/etc - and so i searched around. Git LFS fit wonderfully, with one issue: It's centralized.
Github's Git LFS support is iffy. Their pricing is harsh (imo, for an indie dev) and i couldn't find ways to prune history to save cost. Likewise the entire design of Git LFS requires a centralized server, something i didn't understand.
So since i have a passion and existing projects in various Content Addressable Stores, i decided to attempt to make my own "Git LFS" with a more natural Git-like behavior. Eg syncs over SSH, not requiring servers, etc. I don't want to link it here (anonymous account), but even if i did i wouldn't advise anyone use it - it's a toy project more than anything.
With that said i found the general workflow of Git LFS to be excellent for this purpose (minus the flaws i mentioned). Tracking binary assets worked wonderfully and allowed my code to always match explicit versions of the asset sources - making my pipeline feel very repeatable.
I am a single dev on the game project so i didn't test the binary [un]locking features though - but i hear good things there.
- hobofan 6y agoI have absolutely no idea how you come to the conclusion that Git LFS is centralized. It shares the exact same distributed model that git does.
- adkadskhj 6y agoSorry, i should say that it requires running a web server. And the local web server options are immature. Running a whole web server just to use _git (lfs)_ seems absurd to me. The pattern is clearly intended to be used with the big centralized players - and the idea of normal git patterns, like git lfs in a local fs or git lfs over SSH were secondary concerns. well, not even secondary concerns really - it's not at all supported. To me, this is the core use case for Git. Git LFS is incapable of doing that in the current implementations. Which bothers me.
- suifbwish 6y agoA general purpose utility server is never a bad idea. I have a hypervisor on my home network that I will programmatically spawn instances of various vm images stored on my NAS if my dns server sees a request from my workstation for that resource. I can run about 8 at any time but I have almost a hundred different vm images each with their own purpose
- hobofan 6y agoI've been running git lfs without a webserver on my local NAS with lfs-folderstore[0] without a problem, and it doesn't require a webserver (and can also be used over SSH via sshfs). I can understand wanting such functionality bundled with git lfs, but all the different options seem very opinionated to me in ways that there isn't a clear "default" choice. To me custom transfer agents and transports never felt like an afterthought, and fit quite nicely into there. My main problems with git lfs were more UX problems where certain workloads are not as well supported (e.g. keeping only a portion of the LFS files local). [0]: https://github.com/sinbad/lfs-folderstore https://github.com/sinbad/lfs-folderstore