{"id":4216,"date":"2023-03-13T17:49:00","date_gmt":"2023-03-13T08:49:00","guid":{"rendered":"https:\/\/blog.criware.com\/?p=4216"},"modified":"2024-05-20T16:38:36","modified_gmt":"2024-05-20T07:38:36","slug":"version-control-in-atom-craft","status":"publish","type":"post","link":"https:\/\/blog.criware.com\/index.php\/2023\/03\/13\/version-control-in-atom-craft\/","title":{"rendered":"Version Control in Atom Craft"},"content":{"rendered":"<p>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&#8217;s development.<\/p>\n<p>Atom Craft makes it possible to use file versioning systems to keep track of its project\u2019s files. By integrating with such a system, it becomes possible to manage file versions automatically without leaving the authoring tool.<\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Setting Up<\/h2>\n<p>Atom Craft supports the two major systems used in game development: <a href=\"https:\/\/www.perforce.com\/\">Perforce<\/a> and <a href=\"https:\/\/subversion.apache.org\/\">Subversion<\/a> (SVN).<\/p>\n<p>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.<\/p>\n<p>To enable version control after opening the project in Atom Craft:<\/p>\n<ul>\n<li>Go <em>to File &gt; Version Control &gt; Settings<\/em>.<\/li>\n<li>Select either <em>Subversion<\/em> or <em>Perforce<\/em> in the drop-down menu.<\/li>\n<li>For Subversion, enter your Username, your password and the Server address.<\/li>\n<li>It is similar for Perforce, with the name of your WorkSpace and a Port number being also required.<\/li>\n<li>Finally, tick or untick the options you would like to use.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4217\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/01-VersionControl-Settings.png\" alt=\"01 VersionControl Settings\" width=\"731\" height=\"491\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/01-VersionControl-Settings.png 731w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/01-VersionControl-Settings-300x202.png 300w\" sizes=\"auto, (max-width: 731px) 100vw, 731px\" \/>\n<\/p>\n<p>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).<\/p>\n<p>You should now be able to send your changes or get updates from your team directly within Atom Craft.<\/p>\n<h2 style=\"font-size: 150%; font-weight: bold; margin-top: 40px;\">Usage<\/h2>\n<p>Atom Craft uses <strong>Work Units<\/strong> 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.<\/p>\n<p style=\"text-align: center;\">\n<img loading=\"lazy\" decoding=\"async\" style=\" border:1px solid #ccc;\" class=\"alignnone size-full wp-image-4218\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/02-Commit-Changes.png\" alt=\"02 Commit Changes\" width=\"882\" height=\"512\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/02-Commit-Changes.png 882w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/02-Commit-Changes-300x174.png 300w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/02-Commit-Changes-768x446.png 768w\" sizes=\"auto, (max-width: 882px) 100vw, 882px\" \/>\n<\/p>\n<p>Note that since the <strong>Project Settings<\/strong> and <strong>Global Settings<\/strong> 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 <em>Conflict Resolution<\/em> dialog to let you choose between the version already in the repository (server) or the local version.<\/p>\n<p style=\"text-align: center;\">\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4219\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/03-Conflict.png\" alt=\"03 Conflict\" width=\"402\" height=\"512\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/03-Conflict.png 402w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/03-Conflict-236x300.png 236w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/>\n<\/p>\n<p>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 <strong>Version Control Browser<\/strong>. It can be accessed from the menu: File &gt; Version Control &gt; Browser.<\/p>\n<p>The browser allows for global operations on the project:<\/p>\n<ul>\n<li><em>Update All Status<\/em> &#8211; Update the version control status of all the files in the project.<\/li>\n<li><em>Get All Updates<\/em> &#8211; Retrieve the latest version of all the files in the project.<\/li>\n<li><em>Send All Changes<\/em> &#8211; Send all additional items from the project.<\/li>\n<\/ul>\n<p>In addition, it is also possible to perform various operations by right-clicking on a specific object:<\/p>\n<ul>\n<li><em>Checkout<\/em> (Perforce Only) \u2013 Make the file writable.<\/li>\n<li><em>Update\/Get Latest<\/em> &#8211; Get the latest file from the version control system.<\/li>\n<li><em>Commit\/Submit<\/em> &#8211; Send the changes relative to the selected file to the version control system.<\/li>\n<li><em>Lock\/Unlock<\/em> &#8211; Lock the file to prevent other users from editing it.<\/li>\n<li><em>Mark for Add<\/em> &#8211; Add files to the version control system.<\/li>\n<li><em>Revert<\/em> &#8211; Restore an uncommitted file to the state of the working copy. Perforce can also revert unchanged files.<\/li>\n<li><em>Resolve<\/em> &#8211; Resolve conflicts that occur when updating files from the repository.<\/li>\n<li><em>Show Log<\/em> &#8211; Display the change history of the file.<\/li>\n<li><em>Update Status<\/em> &#8211; Update the version control status of the file.<\/li>\n<li><em>Show Lock Users<\/em> &#8211; Display the users who locked the file.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4220\" src=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/04-Browser.png\" alt=\"04 Browser\" width=\"722\" height=\"489\" srcset=\"https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/04-Browser.png 722w, https:\/\/blog.criware.com\/wp-content\/uploads\/2023\/03\/04-Browser-300x203.png 300w\" sizes=\"auto, (max-width: 722px) 100vw, 722px\" \/>\n<\/p>\n<p>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.<\/p>\n<p>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.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Version control is a critical component of modern game development. It allows developers to keep track of changes to their<\/p>\n","protected":false},"author":2,"featured_media":5435,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[5,7],"tags":[],"class_list":["post-4216","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-adx","category-tutorials"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/4216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/comments?post=4216"}],"version-history":[{"count":9,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/4216\/revisions"}],"predecessor-version":[{"id":5434,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/posts\/4216\/revisions\/5434"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media\/5435"}],"wp:attachment":[{"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/media?parent=4216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/categories?post=4216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.criware.com\/index.php\/wp-json\/wp\/v2\/tags?post=4216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}