Most interactive application development projects involve multiple different people contributing their efforts over a potentially long time. Losing work due to machine failure or data corruption can be catastrophic to the project. Therefore, most customers typically use some kind of version control system (VCS) during development in order to track changes to the project, to back up the project's assets, and to ease collaboration between the members of the project.
3ds Max Interactive is intended to be agnostic to whatever version control system you choose to use. Rather than build in direct support for different popular source control systems like Git, Subversion (SVN), or Perforce, 3ds Max Interactive simply stays out of the way by keeping the data that you really need to track separate from automatically generated data.
This page outlines some considerations to keep in mind when working with a version control system.
One big benefit of 3ds Max Interactive with regard to version control is that much of the content that you author in the interactive editor is stored in your project's source directory in the plain-text SJSON format. (See also About the SJSON data format.)
Because these files are plain-text and not binary, multiple different contributors can easily create branches in the source control system and merge their changes together without overwriting each other's modifications.
Your project usually consists of three folders:
The main project source folder that contains your app's raw data. Track this folder in version control.
The _wwise folder, which contains your app's audio project and raw audio files. Track this folder in version control.
The _data folder, which contains the same content that's in the project source folder, but compiled into a binary format for each of the app's target platforms. Do not track this folder in version control.
Anyone working with your project's source data in the editor can re-create these compiled binary files, so it is not necessary to record them in version control.
Make sure your project resources are not read-only when you work in the interactive editor. If you are using a system like SVN that locks the files it tracks, check out your project's source folder so that the files it contains will be writeable.
If you choose to use Git, you can take advantage of its .gitignore feature to automatically filter out all of the files in your compiled _data directory from being tracked. For background information on .gitignore files, see the Git documentation.
To do this, create a new text file called .gitignore in the root directory that contains your project folders, and set it up with an entry that excludes your compiled data directory.
For example, suppose that:
In this case, you would name your file D:\projects\.gitignore.
Tip: By default, Windows Explorer won't let you name a file .gitignore, since it only allows files that have both a name and an extension. However, you can get around this limitation by naming the file .gitignore. with an extra . at the end. Windows Explorer will remove the trailing period automatically.
The .gitignore file would contain the following line:
MyInteractiveProject_data/
This will make Git ignore all files inside the project's compiled data directory.