An overview of Alienbrain alternatives for game art
A comparison to help you choose an alternative to Alienbrain management software and version control for game art.
Whenever you start developing a new game in Unity or working on an existing one, it's a good idea to develop a proper folder structure from the start and expand it as the project evolves. It doesn’t matter if you are alone, a small team, or a big team, it will help a lot in the long run, speed up your workflow and the development process.
Even if you're working on your own, it's important to have a backup of the current and previous versions, so it's always a good idea to use a version control system such as Anchorpoint, Unity Version Control, Perforce, or Git. This will give you a safety net that will come in handy if your hardware breaks or you need to revert to a previous version.
If you are working alone or with a small team, sometimes a basic folder structure is all you need, with two approaches to the structure. The most important thing is to have a clear separation between Art, Scripting, Prefabs and Scenes, along with Audio and Asset Packs/Plugins.
1) If you use a lot of plugins/asset packs that need to be updated from time to time, keep them in root, otherwise you can put them in a custom folder and every time you update them, copy the root update to your custom location and then delete the update. This may not work for very complex plugins, so do some testing first.
Keep the main project named with !ProjectName or !_ProjectName so it stays at the top for everyone to see.
Do not overdo it at first, if you only have a few models and textures, put them in the Art folder, and over time create dedicated subfolders, the same with every other main folder. If you only have 5 scripts, you do not need to create subfolders in the main Scripts folder, but over time you might as the project evolves.
2) If you only have a few plugin/asset packs, or just mostly graphics that rarely or never need to be updated with the package manager. You can create a separate folder for them to keep everything organized. Most of the assets you download from the store should work in any location, but in some cases you may run into problems with those that rely heavily on scripts and root links, so do some testing first.
A typical advanced structure may look like the one below, but every project will be different, so start with a basic structure and tweak it every few weeks as needed. When you reach a dozen models, differentiate them with subfolder categories (Friendly, Enemies, Buildings, World, etc.), the same with anything that needs to be clearly identified like Behaviors, AI scripts, VFX, and so on.
Avoid periods and spaces, and use underscore "_" where necessary to separate and make clear what the file is for, especially if you have multiple similar models for specific locations, for example: enemy_lvl1_dungeon3.fbx , rock3_forest.fbx, trigger_respawn etc.
You can keep source files in a separate Git repository, or if space is an issue, use Azure DevOps as it's the best if you need large storage. For small teams, Google Drive is usually sufficient to keep the source of models, concept, characters, references for design, UI, and so on.
Asset managers such as Anchorpoint allow you to create databases for your assets by establishing naming conventions, eliminating the need to manually rename files or folders. This is a significant time saver, especially for VFX, animation, or other 3D projects. Using this method, you can efficiently develop naming conventions that simplify file identification and organization.
I recommend having a backup for the asset packs of course, but don't commit them to your repos, just take what you need from there and put it in the main project folders for modification and use, otherwise your commits will be huge and hard to trim for some people unless some special filters are used, or even better, add them to .gitignore so your team members don't get confused by so many extra files.
What happens when I upgrade a plugin/asset pack?
Most plugins will recreate the folder in the root if you move it to a custom location, so you have to copy and overwrite it to your custom location and then delete it, which can be annoying. So for packs that you think you'll update often, it's best to leave them in the root.
How do medium to large companies do this?
Similar to what I described in this article, but they have dedicated team members who manage the project structure and the Dev Ops aspect (version control). They also make sure that the whole team respects the structure and proper version control procedures, what to commit and where.
What is GitHub?
GitHub is a cloud service based on the Git version control system. GitHub allows you to host a Unity project online and collaborate with others. Take a look at our tutorial on how to use GitHub with Unity if you want to learn more.