When starting to develop an idea into a game, there are a lot of things to consider: picking the right game engine, setting up a dev environment, getting early feedback, the list goes on. With all of this going on the last thing you want is to have to fiddle around with your tooling, or even worse, forget to backup your code entirely.
Indie game development often means working long hours on limited funds, and doing multiple jobs in parallel to pursue your dreams. The need for speed is essential. This is where choosing the correct version control system comes in – it should be somewhat “invisible”. Perforce has become synonymous with gaming development, because there used to be a perception that Git did not play nice with large files. With the addition of Git Large File Storage (LFS), Git is poised to be the preferred version control of choice for gaming development, just as it is for almost every other industry. But why?
Perforce vs Git
With Perforce, you have to be connected to the central server to see a history of changes, creating a bottleneck. Perforce also maintains a branching record on a per-file basis which creates a lot of metadata, making branching very expensive and restrictive. With Git, you can work from home or the beach without having to be connected to a central server and carry the full history of your code repository with you. This means Git is lightning fast compared to Perforce and is conducive to modern workflows. Making a branch for a new feature with Git’s branching model is simple, inexpensive, and built for modern software development best practices like CI/CD to ensure your code is always production ready.
Git beats out Perforce in cost and speed but there is one other major player when it comes to choosing a version control system for gaming: versioning large files- which has been solved.
Track all your files in one place with Git LFS
Before Git LFS, game developers who wanted to use Git ran into problems because Git repositories usually have size limits to ensure operations run performant as a repo grows. As they would add and change large binaries in Git, their repos would quickly bloat in size and become very slow. Hacks were created to work around these limitations like tracking large assets outside of Git in local storage systems or cloud storage providers. This required the team to manually sync and communicate all changes to keep code working– not awesome.
Now with Git LFS, game developers can version large files alongside their source code. Git LFS keeps your large files in parallel storage, and only lightweight references are stored making your repos smaller and faster. The next time your team clones a repo with files stored in Git LFS, only the references and relevant large files that are part of your checked out revision will get downloaded, not the entire change history. And with our launch of LFS general availability this October, Bitbucket Cloud has upped the game when it comes to Git LFS by adding the following features:
- Embedded media viewer: collaborate on 80+ file types of any size and preview LFS files inside Bitbucket
- Resumable up/downloads: Stop worrying about transferring really large files and continue where you left off
- Increased parallelism of files with chunking: upload chunks of the same file in parallel for faster up/download times
- De-duplication on file uploads: File uploads are chunked, so only the changed chunks will get re-uploaded
To start using Git LFS, follow these easy steps or to learn everything you could possibly want to know about LFS, read this in depth guide.
Why Bitbucket for game development?
Depending on the kind of game you’re making, costs can quickly add up. You’ve got decisions to make about tools, technology, even music. We want to make it easy for teams to get started with Bitbucket and provide the path of least resistance so you can start working on your game and then grow with us. That’s why we’ve made Bitbucket Cloud free for up to 5 users with unlimited public and private repositories.
We also know that the faster you can get your game out in the world, the faster your user base grows and money starts coming in. In October we announced the general availability of Bitbucket Pipelines, our continuous delivery service built right within Bitbucket Cloud that gives you end-to-end visibility from coding to deployment so you can automate many of the tasks associated with building, testing, and deploying services. The best part? It’s included in our 5 user free tier.
Bitbucket integrates nicely with the tools you need to create your game. We offer best in class JIRA integration for full development traceability across your issues. If you are looking to use Unity for your game engine, you can get set up with Bitbucket and Unity in 7 easy steps.
Free marketing for your game
Choosing the right version control system and Git solution that can scale with your game is essential for your games’ success. Check out our Bitbucket for gaming resource for more ammo on making the switch from Perforce to Git, to get everything you could possibly want to know about Git LFS, or get some free marketing and get featured on our page by submitting any games you’ve already #BuiltwithBitbucket to us on Twitter with the hashtag (there could be an extra surprise in store for you if you do, ).
Have more specific questions about this post? Reach out to us on Twitter to get the information you need