About

Horizon is a file monitor designed to maintain snapshots of the files whenever the files within a user-specified directory change. When the user desires, the snapshots can be used to revert the files to their previous versions with in the directory.

The software has been designed to compensate for the lack of save slots in indie games but its applicability is broader than games and may apply generically to different usages.

Screenshots

Features

  • Ability to monitor multiple folders, even recursively, for file changes.
  • Taking a backup of the file after the file has changed and storing it to a database.
  • Configurable file watching flags (last write, size, etc.),
  • The ability to revert to a previous version of the file.
  • Viewing the snapshots of the backed up file in a manager and sorting by name, date, etc.,
  • Opening up snapshots of files in a hex editor in order to make changes.
  • Export and import capabilities.
  • Drag and drop onto the snapshot manager to take backups of the files.
  • Network auto-discovery and transfer of files over the network.
  • Atomic snapshots of files.
  • Taking a screenshot of the current window under the mouse or the whole screen when a snapshot of the files is taken.
  • Attaching notes to snapshots.
  • Horizon has a built-in search engine that indexes the snapshots taken including the hash, name, path, time and also any notes that have been saved along with the snapshot in order to be able to quickly search and identify snapshots of files.
  • If auto-notes are enabled, after a screenshot of the front application is taken, Horizon will pass the screenshot through Tessaract Optimal Character Recognition (OCR) that will extract all visible text and then save the text as part of the notes.

Download

Source

The source is licensed MIT and can be checked out from:

Credits for the icons goes to flaticons.com.

Usage

Horizon has been created in order to create snapshots of save game files for modern games where the saving is handled automatically by the game itself. The purpose thereof, ranges from maintaining terse backups of saves (especially given that lengthy games are a lot of work), through the ability to restore an earlier save whilst still maintaining the current state of the game, and ending with attempting to reverse-engineer game save files.

However, Horizon is designed as a general purpose tool, without any special semantics that would involve games, such that it is perfectly feasible to have Horizon back up snapshots of your work. One interesting application is writing books, or large documents where, for some reason, you would be interested to see and preserve the evolution of your work over time. In such cases, just pointing Horizon at the location of your files will do the trick and Horizon will keep incremental backups of your work.

  • After the software starts, right-click the program tray icon and select the "Manage Folders…" option.
  • Multiple folders can be added to be monitored by Horizon with the ability to recursively monitor all the files in that folder, and the option to configure a delay to take a snapshot of a file after it has been changed. Adding a sufficiently large delay is necessary in order to ensure that the file is not locked or in use anymore before a copy is attempted.
  • Whenever the files change within the selected directory, Horizon will take a snapshot and announce the user that the file has changed using a notification window.
  • The tray icon can be clicked and the option "Manage Snapshots…" can be selected in order to browse the snapshots that have been taken.
  • By clicking a row in the snapshot manager and selecting "Revert to Snapshot", the previous version of the file will be restored corresponding to the snapshot.

Note that contrasted to auto-save, which is a a more general feature included in right about every software package, Horizon maintains a history of saves, such that you can go back at any point in time. This is extremely useful also if you create presentations of various works, where it would be interesting to memorize some point within the work or game that you are playing, in order to be able to return back and demonstrate that particular point in time.

For Gaming

One of the major usage patterns is to use Horizon to automatically snapshot save game files while playing the game. Perhaps the best sub-case is to use Horizon with games that only contain a single autosave that is then periodically being overwritten as the player progresses. With Horizon turned on and pointed at the save-game folder, Horizon will snapshot the automatic saves as they are made by the game which alleviates the problem of players having to manually save games.

For example, if at some later point in time, a player wishes to return to a save game that took place previous to the current state, all they need to do is to load the snapshot manager, locate the snapshots that pertain to the game and then revert the save game files to the files that Horizon took a snapshot of.

A cool consequence is that by having Horizon take periodic snapshots of the saves, a sort-of chronology of saves will be available that can be browsed by looking back over the past snapshots that Horizon has made. It is fairly cool to watch the entire game as a sequence of saves from the start to the end. Similarly, for streaming, competitive gaming or documentaries it is super-important to be able to have save games of every location possible - if the purpose is to comment some scene, the whole game would have to be played again from the start, just to get to that point, which would be a pain if the only interest would be to talk about just an area within the game!

There is a little more that is added for the gaming usage pattern that represents a fine example of Wizardry and Steamworks innovation, namely that when Horizon takes a screenshot of the foremost window, which is typically the game window, Horizon can then pass the screenshot through Tessaract OCR in order to identify text within the screenshot. The idea that this innovation hinges on is that save screen of the game or the in-game HUD of the game might contain some hints as to where the player finds themselves such that that text will be extracted and stored to the notes of the snapshot. At a later date, the snapshots can then be searched by looking up the location name and Horizon will then be able to find save-game files for when the player was in a specific area that they know about or would like to revisit.

In order to use Horizon for games, the instructions are trivial if you keep in mind that Horizon is a file snapshotter:

  • right-click the Horizon tray icon and select "Manage Folders"
  • add to the list the save game folder of the game - this might be a little difficult to find depending on the retail distribution of the game so it requires a little bit of searching on the Internet to find out where a game stores its save files,
  • play the game

If everything is done correctly, Horizon will silently snapshot the save-game files in the background as the player plays the game.

The image above is an example of Horizon working in the background while Saints Row 3 is being played. The game is periodically saving depending on the various activities that are being complete, for example, the game missions or other events, and Horizon is snapshotting the save games in the background while also capturing a screenshot of the game screen. As can be observed, the auto-notes feature is enabled such that the screenshot is scanned for words and then the words that are identified, they are placed within the notes of the snapshot. Of course, the result is not perfect and a lot of words are grabbed that are not necessarily relevant, however if you look closely, there are sufficient keywords that would describe this screenshot perfectly. With the snapshot saved, the "Search" bar can now be used to look up, say "Helicopters", and then this snapshot will be found such that it can be either restored or shared with others.

Advanced Usage

Horizon also contains a text editor that might be interesting or useful to use in order to make changes to the snapshots themselves before restoring them.

Rows can be colored in order to set a quick marker and to be able to remember a snapshot that might have been important. If more terse note keeping is necessary, the row can be clicked and the option "Edit Note…" selected in order to assign a note to the selected snapshot.

Watcher Filters

The option in question can be accessed from the "Settings" menu and then by following "Watchers". When the "Watchers" menu unfolds, the user will be given the option of selecting various file watching criteria that will trigger Horizon to take a snapshot of the current files it is monitoring in the directories configured with the "Manage Folders…" option.

By default, the "LastWrite" and "Attributes" options are selected, which should be sufficient for most programs, but sometimes selecting "Size" will help raise better notifications on file change for various software that handles its files differently.

For instance, the Pacific Drive game handled save-files differently such that "Watchers" and "Manage Folders…" is insufficient to raise a filesystem notification when a save file is updated such that the "Size" flag must be enabled as well in order to correctly take snapshots.

The snapshot delay configurable in "Manage Folders…" when a folder is added, is the time elapsed after a filesystem notification is raised, which, in turn is managed via these flags.

Network Transfer of Snapshots

It is also possible to transfer snapshots across the network by using the "Share With" option from the menu after right-clicking a row that is populated by machines that have been scanned from the network. In case other machines on the network are running Horizon, then snapshots can be transferred to those machines by using the "Share With" menu and then selecting the machine from the drop-down menu. All you need to do is to install Horizon on both machines and then you can transfer files back and forth between Horizon instances.

Similar Software

Horizon is essentially an Apple "Time Machine" or a Microsoft NTFS old file versioning system but one that is designed to run in user-space and with a lot of features and options provided to the user.

License

Horizon is licensed under the MIT license.


windows/horizon.txt · Last modified: 2025/08/01 00:08 by office

Wizardry and Steamworks

© 2025 Wizardry and Steamworks

Access website using Tor Access website using i2p Wizardry and Steamworks PGP Key


For the contact, copyright, license, warranty and privacy terms for the usage of this website please see the contact, license, privacy, copyright.