Some thoughts on one of GamesIntegration's objectives.

I believe that synchronised game saves should be one of the first things we tackle. This is a practical problem, an Ubuntu User may go through several OS reinstalls over the years (with each upgrade) and may care about a game enough to play it repeatedly over the years, but not enough to manually copy the save files. Also a user play a game on their Desktop and later go on a business trip with an Ubuntu laptop and would very much like to install the game again and continue where they left off. Note: This topic connects with OneConf and Stipple in some ways, so keep track with those projects.

Technically you can already synchronise save games by doing the following: 1) Find the folder on your computer where the games saved games are kept 2) Right click on it and select "Synchronize on Ubuntu One"

Problems with this approach: - You need to do it manually for every game - You need to find where the folder is (sometimes trivial, sometimes less so, often a hassle) - A game may be installed to a different location on your hard disk (is this even a problem, read on to see)

To set ourselves up, lets view some examples of places where saved games are kept:

Penumbra Overture ~/.frictionalgames/Penumbra/Overture Amnesia ~/.frictionalgames/Amnesia Notes: Very well organised here. Games made by the same company are stored in the same company folder. Even Penumbra which has several episodes (Overture, Requium and Black Plague) keep their saved games close together. The folders contain settings, configuration and saved games.

Linux Game Publishing (variety of games) ~/.lgp/gamename (According to FAQ on http://icculus.org/lgfaq/#dotlgp , similar for Loki, Tribsoft and Hyperion)

Aquaria

~/.Aquaria Note: Aquaria stores save games, preferences and screenshots. However, it also apparently stores Mods under the "_mods" in ".Aquaria". This takes up 1.2Mb with a few sample mods part of the default installation. Would the gamer want this synchronised? On one hand it would balloon to take up a lot of space, on the other hand the user may like working on level editing in the log term.

On the Rain-Slick Precipice of Darkness: Episode 1 ~/.HotheadGames/RainSlickEp1 Note: Saved games, logs, and configuration files. Assumedly Episode 2 (and other games by developer Hothead Games), are stored in the same ~/.HotheadGames folder

Hedgewars (from software repository) ~/.hedgewars Saves, recorded games, online friends and blocked people.

Lugaru ~/.lugaru

Minecraft ~/.minecraft/ Notes: Uh oh. There's a folder called "saves" in this folder, but each saved game can take up several megabytes. Worse, the actual .minecraft folder seems to contain extra folders called "bin" and "resources" that store the actual program and game assets that together take up 31.8 MB.

World of Goo ~/.WorldOfGoo

Mahjongg (default install) ~/.gconf/apps/mahjongg/ Mines (default install) ~/.gconf/apps/gnomine Quadrapassel (default install) ~/.gconf/apps/quadrapassel/ Sudoko (default install) ~/.gconf/apps/gnome-sudoku/

Gens/GS ~/.gens Configuration files and settings

Digital: A Love Story ~/.renpy/Digital-1264553264

Gish Same directory the game is extracted/installed to.

Cave Story (Linux version) Same directory the game is extracted/installed to.

In examining this data, most games save their data in a dotfile in the home directory. This is encouraging, as some game installers can allow you to request where to install the game and other times you can just unzip the game to a specific location. This shows that for most games, the location of the saved games stay the same no matter where the game is installed to. It also shows the saved games and game settings are attached to the user profile. The dotfiles themselves may contain the name of the game only, or the name of the publisher/developer which inside contains the files for the games that that publisher/developer has made (one exception was when the dotfile was the name of the game engine). Unfortunately, Minecraft and Aquaria both show example of extra stuff being placed in the dotfile. It's blatant in the case of Minecraft where game assets are present. With Aquaria, it's game mods (which other games keep in the main directory). We could debate whether mods could be included in the synchronisation, but since that's game data I don't think it qualifies.

It's clear that in the above cases, the user simply synchronising the dotfile on Ubuntu One would allow savegame data to by synchronised. But is this a good strategy? The answer is no, because as I've already mentioned, it requires the user to find and synchronise the folders, and some of the folders are not.

What do we do? How do we ensure that a bunch of dotfiles scattered around the home directory are synchronised.

That's the next question we must answer.

Comments: Files should be in .cache .config and .local if they are following the standards for folder structure. So storing in $home/.<anything else> should be discouraged.

Can this be done for Wine games too?

GamesIntegrationSaveGames (last edited 2010-10-28 09:35:47 by cpe-67-11-52-58)