Version control is a critical component of modern game development. It allows developers to keep track of changes to their codebase and assets, collaborate effectively with team members, and maintain a clear history of their project’s development.
Atom Craft makes it possible to use file versioning systems to keep track of its project’s files. By integrating with such a system, it becomes possible to manage file versions automatically without leaving the authoring tool.
Once your Atom Craft project has been added to a SVN repository or a Perforce depot, your team can get the files on their Working Copy or WorkSpace respectively.
To enable version control after opening the project in Atom Craft:
- Go to File > Version Control > Settings.
- Select either Subversion or Perforce in the drop-down menu.
- For Subversion, enter your Username, your password and the Server address.
- It is similar for Perforce, with the name of your WorkSpace and a Port number being also required.
- Finally, tick or untick the options you would like to use.
Once the connection set up, green badges will appear on top of some of the icons in the Project, WorkUnits and Materials Trees. (If that is not the case, check the Atom Craft log window for any error that may have happened during the connection process).
You should now be able to send your changes or get updates from your team directly within Atom Craft.
Atom Craft uses Work Units to organize the CueSheets and Cues as well as the associated Materials. When several team members collaborate, the tasks can be separated in Work Units related to the work of each participant. The project can be divided in Work Units based on the type of sounds (voice, SE, BGM) or their location in the game (stage, level area). With the version control, a team member can take the exclusive control of a Work Unit to avoid conflicts and related errors. Once their job done, they can commit their work and release the Work Unit safely. Their teammates will see the icon of their Work Unit reflect this new status and will be able to retrieve the latest version directly from the tool.
Note that since the Project Settings and Global Settings are shared, changing them will affect the entire project. So be careful when you add AISAC or REACT objects for instance, or when you edit a Bus Map or a Category. However, Atom Craft will warn you in case of conflict and will display the Conflict Resolution dialog to let you choose between the version already in the repository (server) or the local version.
While the status of the Work Units, Project Settings and Materials can be seen directly in their respective trees, it is also possible to get an overview of all the objects in the project in the Version Control Browser. It can be accessed from the menu: File > Version Control > Browser.
The browser allows for global operations on the project:
- Update All Status – Update the version control status of all the files in the project.
- Get All Updates – Retrieve the latest version of all the files in the project.
- Send All Changes – Send all additional items from the project.
In addition, it is also possible to perform various operations by right-clicking on a specific object:
- Checkout (Perforce Only) – Make the file writable.
- Update/Get Latest – Get the latest file from the version control system.
- Commit/Submit – Send the changes relative to the selected file to the version control system.
- Lock/Unlock – Lock the file to prevent other users from editing it.
- Mark for Add – Add files to the version control system.
- Revert – Restore an uncommitted file to the state of the working copy. Perforce can also revert unchanged files.
- Resolve – Resolve conflicts that occur when updating files from the repository.
- Show Log – Display the change history of the file.
- Update Status – Update the version control status of the file.
- Show Lock Users – Display the users who locked the file.
Managing game code and assets without source control is a risky business, as changes can easily overwrite each other and bugs can be introduced without any clear way to trace their origins.
Using the Version Control feature of Atom Craft for multi-user projects will greatly improve your workflow and reduce the risk of critical conflicts and errors.