El caso honesto a favor de Perforce
Este artículo es un contrapeso. La mayoría de blogs modernos asumen que Git es la respuesta. Para un conjunto significativo de proyectos, Perforce es genuinamente la mejor elección.
Señal 1: cargas binary-heavy
Si tus commits diarios incluyen modelos FBX, archivos PSD, WAVs de varios gigabytes, footage de cámara raw, ensamblajes CAD, o artefactos de engine compilados, el diseño de Perforce encaja con el trabajo.
Señal 2: el locking no es opcional
Si tu equipo alguna vez ha perdido el día de trabajo de un artista porque dos personas editaron la misma escena, necesitas locks.
Señal 3: control de acceso por ruta
Si surgen preguntas de control de acceso como "este contratista puede ver el código del menú pero no los internals del engine", los ACLs por ruta de Perforce te salvan.
Señal 4: monorepo masivo sin divisiones limpias
Estudios de juegos, casas VFX, firmas de diseño de hardware suelen tener un repositorio medido en terabytes que no puede dividirse.
Señal 5: tooling DCC integrado
Si tu equipo usa Maya, Unreal Engine, Unity, Substance Painter, Houdini o similar, todos integran con Perforce listo para usar.
Señal 6: integración con build farm
Sistemas masivos de build distribuidos suelen tener décadas de integración con Perforce.
Señal 7: necesidades regulatorias y de auditoría
Algunas industrias (defensa, automoción, médica) requieren trails completos de auditoría.
Cuando Perforce es la elección incorrecta
- Tu carga es mayormente código texto que mergea limpiamente.
- Tu equipo trabaja distribuido.
- Tu tooling espera Git.
- Estás bootstrapping y el costo de licencia es significativo.
- Quieres aprovechar contribuciones open source.
El playbook híbrido
- Perforce para assets de arte, animaciones, audio, video, binarios grandes.
- Git (a menudo GitHub Enterprise) para código del engine, scripts de gameplay, tooling.
- Pipelines de build traen de ambos.
- Code review pasa por PRs; review de arte vía Helix Swarm.
#!/usr/bin/env bash
git fetch && git checkout main
p4 sync //assets/release/...
./build.sh
Consideraciones de migración
- ¿Qué streams se vuelven branches Git?
- ¿Cómo se reemplazan los locks exclusivos?
- ¿Cómo se reemplaza el ACL por ruta?
- ¿Cómo se almacenan los assets binarios?
La conclusión
Perforce no es legacy. Sirve necesidades reales que Git sirve mal.