Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-settings.php on line 472

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-settings.php on line 487

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-settings.php on line 494

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-settings.php on line 530

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-includes/cache.php on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-includes/theme.php on line 623
blog.gkaindl.com » Save-Games for Non-Gamers

blog.gkaindl.com

nerd nouveau

Save-Games for Non-Gamers

Yesterday, I’ve written about save-games and their nature of encouraging explorative behavior as well as taking pressure off the player’s shoulders.

But what about expanding the (well-known) metaphor of save-games to other applications as well. After all, trial-and-error or explorative practices are not limited to games, they are an inherent part of many workflows as well.

Usually, if you are working on a document and want to save it in a particular state to possibly come back to it later, you’ll need to save it as a copy. This is based on the file-system metaphor, where each item is represented as its own file. A save-game, however, is not perceived a file, but as a snapshot of the game (state), i.e. the metaphor is a state.

Currently, the “state” metaphor is rarely ever applied to work documents (Apple’s TimeMachine in the upcoming Leopard is going in this direction, but the user does not consciously take snapshots, the system does it in the background). One of the few applications I know of that have such a feature is CSSEdit, which allows you to specify “Milestone” versions of a document that function like snapshots.

Generally, the demand for such a snapshot feature is clearly there. After all, version control systems such as Subversion and CVS do exactly that. While their main aim is to facilitate group collaboration on textual content (most often program source code), they are used in single-person projects as well, just for the ability to take snapshots of the work-in-progress regularly, rolling back to them at will, comparing them with each other and similar tasks. As such, an SVN or CVS repository can be seen as an archive of snapshots, much like the archive of save-games, taken at different points during the game progress.

Such a feature could be incredibly easy to implement, since we can simply have a look at how the version control systems do it: They don’t save complete versions, they save differences. For example, if I’m working on a text document and take a snapshot of the current contents, then change a single paragraph and take a snapshot again, only this paragraph would be saved again. Remember, this is not about backups, it’s about the possibility to restore a previous state. If I wanted to roll back multiple steps, the changes would be applied successively in inverse chronological order. From a programmatic point of view, this is very simple, especially in Cocoa, where the changes could be easily extracted by observing some keys.

Much like what’s happening with games that employ the ability to save at any time, such a feature in a document-based application would most likely lead to the user feeling more relaxed about experimenting with various aspects of the program’s workflow. Additionally, all the other uses of a version control system (such as comparing different snapshots between each other) could be cheaply implemented, too. I think this would be incredibly useful to a whole lot of people.

Additionally, think of this possibility: Wouldn’t this feature be cool to post little tutorials, too? Think of a Photoshop tutorial that comes with a PSD file where you could iteratively go through all the stages of producing the given content: The first snapshot could contain the blank document, snapshot 2 illustrates the first work steps, etc… If accompanied by a text or video tutorial, this could enable the student to try out the steps themselves, without having to set up stuff they are already familiar with: Just choose the step you want to practice, and there you go!

Thusly, I think the idea of save-games could be worth for application developers to have a look at, too. After all, it’s a rather simple thing to implement, but it could potentially be very well received.

About

Hi, how are you? My name is Georg Kaindl, and I'm a twenty-something from Vienna, Austria. During the day, I'm a CS student at the Vienna University of Technology, but at night, I turn into an independent software developer for the Macintosh platform, social nerd, lazy entrepreneur and intuitive researcher.

I like to write about everything that matters to considerate technology enthusiasts, but humbly retain the right to go off-topic from time to time.

My posts are licensed under a Creative Commons Attribution 3.0 License.

Contact

You can reach me by email if you have something to say that's not related to a blog post or that you don't want to have publicly available as a comment to a post.

However, you'll have to prove that you are human! Even though I personally like robots very much, I'm less of fan of SPAM. It's just a simple riddle to solve, but a SPAM bot won't cut it!

To get my email address, take the word before the .com in my domain name first (Hint: The word you are looking for starts with a "g" and ends with an "l"). Next, simply attach @mac.com to this word.

Boom, there's my email address. Simple, isn't it?

Powered by WordPress

Comments RSS

Entries RSS