I’m a developer and I did a lot of mistakes over my career. At my very beginning, version control was always something that I struggled.. However, I evolved my skill and knowledge as long as I was growing. I tried manually versioning, then used a lot of SVN because my employers and contractors used it. GIT is part of my routine and I use it daily. This tool is the central piece in a continuous integration development pipeline that I bring for every project that I participate. And consequently, it is natural for me to adopt it.
Apart from all the most commons reasons to use GIT, it is his enormous adoption (Stack Overflow, 2020, and Compare Repositories – Open Hub, 2020) and capabilities (Loeliger and McCullough, 2012) the usage in massive projects as Linux Kernel, convinces made it a natural choice. However, when in my first researches about version control in the game development industry, Perforce is one tool usage on game development industry that I never worked with before.
Looking for the industry is a fundamental part of my research, mostly because it’s aligned with my goal to build my studio. After verifying the usage, the first questions that I make to myself are the advantages over the competitors that this tool delivers. In a more in-depth analysis, I need to improve my knowledge about the life cycle of game development and how I can make usage of my previous experiences with Agile practices.
I found two alternatives: Perforce Core Helix, a product used and most of AAA titles and major studies, like Blizzard and CD Project Red. And Plastic SCM another tool used for big studios as Telltale and Unknown Worlds Entertainment. I spent some time trying to find a reliable data about the adoption usage of those tools across the industry and din’t find anything produced by third parties. So I’m “trusting” on the data presented by both companies.
I consider integrating with Jenkins and with a track system (Jira, for example) two essential features. Additionally, I listed the following list the basic set of features between all three tools (Git, Perforce, and Plastic SCM):
- Centralized/Distributed nature
- Performance
- Multiple-user scenario
- Multiple branches
- Large files integration
- Size limitations
- Integration between tools
- Jenkins
- Jira
- Adoption
- Who is using?
- Costs
- Provides a free version?
Since this is just a small overview I only used the following parameters of comparison:
- Presence, if this characteristic is present (yes or no)
- Three level scale (low, medium, high)
- Characteristic per si (used on centralized/distributed)
Characteristic | Git | Perfoce | Plastic SCM |
Centralized/Distributed | Distributed | Centralized | Centralized |
Performace | Medium | High | High |
Large files integration | Yes | Yes | Yes |
Integration between tools | Medium | Medium | Medium |
Adoption | High | Medium | Low |
Costs | Low | High | Medium |
To my personal usage, where I’m working with Unity and publishing in public repositories my personal projects I couldn’t find any reason to move from Git to another tool. My conclusion is superficial but practical I couldn’t find any advantage migrating from Git a robust and mature tool to another alternative in my personal practice. Maybe in a bigger teams with different constraints and requirements I might consider the adoption of another tool.
References
Insights.stackoverflow.com. 2020. Stack Overflow. [online] Available at: <https://insights.stackoverflow.com/survey> [Accessed 15 November 2020].
Loeliger, J. and McCullough, M., 2012. Version Control With Git. Beijing: O’Reilly, pp.2, 3.
Openhub.net. 2020. Compare Repositories – Open Hub. [online] Available at: <https://www.openhub.net/repositories/compare> [Accessed 15 November 2020].