Por que Git não é usado por mais desenvolvedores de videogames?
O maior quebra-galho para git, é que ele lida mal com arquivos de ativos binários.
Pelo menos, ele lida mal com eles da perspectiva de um desenvolvedor de jogos.
Uma característica do git é que você pode recriar a árvore de trabalho em qualquer ponto da história. Git faz isso eficientemente para o código fonte, mas para arquivos binários, ele apenas mantém uma cópia de cada arquivo binário na máquina de desenvolvimento de todos o tempo todo. Literalmente todos na sua equipe de desenvolvimento eventualmente ficarão sem espaço em disco se você usar vanilla git para rastrear tudo.
Muitas pessoas tentaram fazer git mais amigável para o gerenciamento de ativos. Há git-asset, e git media, mas a indústria parece ter mais ou menos coalescido em torno de git lfs para gerenciar blobs binários.
Infelizmente git lfs vem com seus próprios problemas. Ele usa autenticação https de um servidor central personalizado para armazenar todos os seus ativos. A autenticação não usa o mesmo caminho ssh que o resto do git usa. Então, em paralelo com seu próprio repositório git, você tem que configurar o servidor git lfs e ter certeza que a conexão https se autentica de forma limpa para todos.
E então há um treinamento para todos como armazenar coisas no git lfs, e como empurrar os ativos versus o código fonte.
Muito sinistro, você ainda pode muito facilmente maximizar o armazenamento do seu servidor git lfs para ativos binários, porque esse servidor central ainda tem que armazenar todo o histórico de ativos para todos. E as soluções para podar esse histórico não são muito reconfortantes... todas elas envolvem o uso de uma ferramenta personalizada como o bfg9000 para reescrever o histórico do git. Você já viu o Doctor Who, você sabe o que acontece quando você estupidamente tenta reescrever o histórico. Então você precisa ser cuidadoso Senhor do Tempo ao fazer isso.
Você pode alternadamente resolver o problema de armazenamento jogando espaço infinito em disco nele. Um monte de backends de servidor git lfs agora existem para hospedar ativos git lfs. Lembre-se, espaço em disco não é livre, e se você não estiver prestando atenção, você pode inadvertidamente acabar sobrecarregado com o Big Data™®©.
Agora existem sistemas como Github e Gitlab que tentam simplificar a implementação de git lfs para você. Mas isso apenas passa os problemas acima para outra camada de software, que pode ou não fazer as escolhas certas em seu nome.
Administração de jogos de vídeo sempre foi um problema difícil para os desenvolvedores de jogos de vídeo. Git lfs pode ajudar, mas não é uma bala mágica.
Se você deseja seguir esta estrada de tijolos amarelos em particular, meu cliente de git atual é o SmartGit. Thomas Singer tem feito um bom trabalho com ele. O SmartGit é menos problemático e mais são do que todos os outros clientes de git com quem me meti.
Artigos semelhantes
- Como o desenvolvedor de videogames distribui videogames através da Gamefly?
- Por que os desenvolvedores de videogames indianos não estão fazendo jogos para PC?
- Por que eu não acho mais os videogames divertidos? Só não consigo jogar um jogo por mais de 15 minutos antes de o guardar.
- Como recuperar um ficheiro que apaguei no meu repo local a partir do repo remoto em Git