Learning #01 - [Unity] Version Control and Project Organization Best Practice Guide

About assets organization

So I was looking for some tips on project organization on Unity, I was curious because the main organization that everyone on the internet using unity does is simply create a context folder (like "Art" or "Scripts") and I was impressed that this guide just recommends that way of organization, and i really don't like it that way.

The way this organization type seems suitable for small or prototypes, but when the game starts to scale, it becomes harder to keep track of where some things are, the subfolders that you need to create starts being a mess, you start to lose some precious seconds just searching for a Prefab or specific Script.

The way I learned (and didn't like it at first) was to separate the folders by the scene names, and put everything related to that scene inside this folder (like Prefabs, Scripts, 3dModels) and being careful to include only specific assets to that scene in this folder, for example, if a UI Script that I created for this scene is probably gonna be used in any other scene, I don't put it on this folder, normally I would create a "General UI" named folder and put it there, so it doesn't need to be perfectly organized by scenes, but more by scenes/contexts.

 

Assets Tree
I could not find any reference of this particular organization type on the internet, but I truly believe it to be the best yet. 

About version control

This guide provided an overview of the various options available for version controlling your project, like using Git, PlasticSCM and Perforce Helix core, a good thing to know is the existence of Centralized and Decentralized.

In a centralized approach, the project exists on a central server, and you have only the most recent copy on your hard drive, whereas in a decentralized approach, you have a complete copy of the project.

The guide says people working on large AAA projects prefer the centralized type, because of the really huge assets they can use to develop, I personally only ever used the decentralized type for everything related to code.

It's interesting to learn about new tools like PlasticSCM, which the guide considers the best way to work with a Unity project, and Helix Perfoce as the second option. However I cant' abandon my familiar tools, Git and SourceTree.

As a matter of fact I didn't had a really good experience with PlasticSCM when I tried to use it while offline, the editor simply doesn't open and it had no warning whatsover, just a infinite loading bar, only after I searched, I discovered that Plastic didn't work without a active connection, thats just bad :/.


















Comments