Whether you’re a backend, UI, web, or full-stack developer, much of the Software Development toolkit looks similar. Even when the exact tools are different, the toolkit translates intuitively between fields: version control systems, debugging and profiling tools, editors and language servers, and package managers work together similarly. What do these tools like when developing software and games with Unity? We’ll dive into this today.
Unity — as a proprietary, closed source Engine — is a walled garden of sorts For better or worse. You’re often given an entire ecosystem of tools made by Unity Technologies that fill the end-to-end needs of a game developer, from an editor, build system, profiling, and debugging system, to a package manager, UI styling language, version control system, etc. Sometimes, using the tools you know and love is relatively easy, but at others, interoperability is less than ideal. One advantage of walled gardens is that they often offer an optimized experience. The disadvantage, of course, is that interoperability and choice are lacking. This article will show which parts of Unity can fulfill your needs and which tools outside Unity can interoperate well.
Version Control
Unity Technologies offers two source control solutions: Unity’s built-in Collaborate tool and PlasticSCM. That said, if you’re a Software Engineer and already comfortable with more traditional version control systems, I will always recommend you use your preferred VCS instead.
Both Collaborate and PlasticSCM are meant to make versioning and source control more accessible to non-developers. Especially in large teams where designers are checking in non-textual assets, it provides an easy to follow interface for those not comfortable with Git/Mercurial/SVN.
Unity Collaborate is more limited and does not provide branching support, while PlasticSCM — which was purchased by Unity Technologies in 2020 — does.
The two advantages of Collaborate and PlasticSCM are:
- They work well with large binary files, and
- They are intuitive for someone not familiar with other VCS.
You might not even care about the size of your repository vis a vis handling large binary…