ClickSafe is a basic, simple to use, source control system designed to work efficiently on large sets of data. The aim is to allow a lot of people to work on server resources without fearing to get modifications overwritten by someone else.
Research for an efficient way to deal with large resources have started in 2000, and led us to evaluate a number of existing software like using Visual Source Safe, CVS, Alien Brain, etc. It quickly become obvious that none of the available products matched our requiremens, it was then decided in early 2001 to start the development of an in-house tool that would fulfil these requirements.
So far this tool has been successfully used in production on the following projects:
The two next generation games (in development currently for Microsoft's Xenon console, and later on Sony Playstation 3) currently in development at Eden Games also use ClickSafe as asset control software. Some other companies are in the process of evaluating it in order to use it in their projects (one being based on the Half Life 2 engine, the other being an interactive DVD production company that needs to deal with terabytes of data).
The main users being non technicians (graphic artists, designers, sound designers), the user interface needed to be obvious to use. For this reason the application has been entirely written using shell extensions: Additional columns in the explorer, right click options, and additional property pages. (Implying that it works only on Windows 2000 and later versions of Windows)
Performance wise, if we wanted to get approval from people used to copy file using the explorer, it needed to be as fast and non intrusive than the method they were used to. ClickSafe has then been designed in a way that makes it as fast to use, but more secure, that the tradition copy method.
Technically, the software needed to rely only on basic functionalities offered by file systems. Considering that we didn't know if we will be using a Windows, Unix, or whatever else based server, it was not possible to design something requiring a daemon running on the server. ClickSafe thus entirely works using file based locks for shared access to resources. (The system since then has been validated on Windows NT, Windows Server 20003, Linux (Debian using Ext3 file system), and Network Appliance Filers).
The software can be set up either in French or English. The reason is that our artists wanted to use localized software, while our programmers are used to "Check out" and "Get last version" of their files.
Contextual menu options can appear directly into the main menu, or be regrouped in a ClickSafe sub menu entry. Options can also be positioned at the bottom or top of the menu.
Main interface of ClickSafe in use, showing the two additional columns (CS User and CS Status) and the contextual menu:
The dialog box that appear during a file operation:
Additional property page showing the ClickSafe history of a file:
Here is some information about the development itself:
ClickSafe is composed of a DLL that registers as a shell extension into the explorer, and also an executable that performs the real operation of copying files. All functionalities are exposed through a documented API that allows external tools to perform ClickSafe operations automatically. This feature has been integrated both in our in house 3D modeller (Twilight 2), and in our script based resource packager (called Builder). This way it's possible to fetch the latest revisions of assets when editing or building data.