Il caso onesto per Perforce
Questo articolo e un contrappeso. La maggior parte dei blog ingegneristici moderni assume che Git sia la risposta. Per un insieme significativo di progetti, Perforce e genuinamente la scelta migliore.
Segnale 1: workload binary-heavy
Se i tuoi commit quotidiani includono modelli FBX, file PSD, WAV multi-gigabyte, footage camera raw, assemblaggi CAD o artefatti motore compilati, il design di Perforce si adatta al lavoro.
Segnale 2: il locking non e opzionale
Se il tuo team ha mai perso il lavoro di un giorno di un artista perche due persone hanno modificato la stessa scena, hai bisogno di lock.
Segnale 3: access control per percorso
Se sorgono domande di access control come "questo contractor puo vedere il codice menu ma non gli internals del motore".
Segnale 4: monorepo massiccio senza divisioni pulite
Studi di giochi, case VFX, aziende di design hardware spesso hanno un repository misurato in terabyte che non puo essere diviso.
Segnale 5: tooling DCC integrato
Se il tuo team usa Maya, Unreal Engine, Unity, Substance Painter, Houdini o simili, tutti integrano con Perforce out-of-the-box.
Segnale 6: integrazione build farm
Sistemi di build distribuiti massicci (incredibuild, ecc.) hanno spesso decadi di integrazione Perforce.
Segnale 7: necessita normative e di audit
Alcune industrie (difesa, automotive, medico) richiedono trail di audit completi.
Quando Perforce e la scelta sbagliata
- Workload principalmente codice testuale che si fonde pulitamente.
- Team distribuito, spesso offline.
- Tooling che si aspetta Git.
- Bootstrap dove il costo licenze conta.
- Sfruttare contributi open-source.
Il playbook ibrido
- Perforce per asset artistici, animazioni, audio, video, binari grandi.
- Git (spesso GitHub Enterprise) per codice motore, script gameplay, tooling.
- Pipeline build pullano da entrambi.
- Code review via PR; review art via Helix Swarm.
# Build script integrating both
#!/usr/bin/env bash
git fetch && git checkout main
p4 sync //assets/release/...
./build.sh
Considerazioni di migrazione
Migrazioni Perforce-a-Git sono comuni ma comportano trade-off. git p4 fa da ponte.