Adventure Game Studio

AGS Support => Advanced Technical Forum => Topic started by: fernewelten on Sun 15/08/2021 02:59:49

Title: So, how do you version and organize your adventures?
Post by: fernewelten on Sun 15/08/2021 02:59:49
I'm not quite sure where to put this, so I'm going to put this here.

I started out without using any source control whatsoever. My games all had an "_Assets" folder within the main game folder that contained all the assets and their respective source files for the game.

For backups and intermediate states, I simply copied all the whole main game folder with all its files to an USB stick into a suitably named folder ("AGS/TheSpecificGame/1999-12-04a/" and such). Nowadays, sticks have so much memory that a single stick will have storage for many saves even if you blindly copy all the files. And my computer itself is set up with an automatic backup system that does regular saves, so this simple system was enough to guarantee that I'd never lose more than a few hour's work in case of a system failure. That was sufficient for the typical month-long jam.

Trouble is, by now i've written several adventures, and this simple system has rapidly come to its limits.

By now,

Simply "saving everything" won't cut it any longer, it's no longer error-proof when different shared assets in different places are involved.

Just source controlling the game would similarly not be good enough; how do I keep the shared files in sync that reside in different locations, even on a different volume?

Putting a copy of the shared assets into the individual games is ugly, too. Then if the copy of the assets is modified/improved, these modifications might get lost on the original shared asset.

So something must come; I haven't a clear idea what exactly.

What system have you come up with to keep track of all your sprites, pics, and sources?

BTW. I'm noticing that the AGS documentation on source control discusses SourceSafe (that I've never heard of) but not git. AGS doesn't detect git either although git is indeed installed on my box and integrated into Visual Studio.



Title: Re: So, how do you version and organize your adventures?
Post by: Alan v.Drake on Wed 01/09/2021 19:35:04
You could use a junction or symbolic link to point all the shared folders to a single source of truth. Linking them through different volumes is allowed, unlike hard-links.

- Alan
Title: Re: So, how do you version and organize your adventures?
Post by: deadsuperhero on Tue 14/09/2021 12:37:47
So, what I ended up doing is that I put each game into its own Git repository, for version control purposes. This ensures that I can easy download the last working version of my game and its source code if a major catastrophe happens with my computer.
Basically, I just use git functions from the command line, and create commits in a local directory before pushing them up to a remote branch.

In other words, I do this:

0. Save my work in the editor and close it.

1. Add any changes from my game's directory that might have been changed
git add .

2. Create a commit detailing what I did
git commit -m 'Add new scene in bar'

3. Push that code to a repo
git push origin master

For assets: one thing that I'm doing right now is that I keep all assets in a subdirectory of my game's working directory, meaning the assets go with the source code. This may or may not be preferable, and probably balloons up your repository's size - but, keeping your assets in git means that you can also keep track of the revisions as time goes on. One alternative I'm interested in trying is moving all of those assets into one big git repo of their own, keeping it all separate from source code. Then, when I'm working on a game, I can reference the shared asset directory for all of my games, in case I want to re-use some assets somewhere else.