|Top Previous Next|
Managing the project resources
I have worked with many programmers in the past, and I can tell you that they've got all sorts of coding styles; nevertheless, most of them are well organized and usually keep a proper folder structure. This time we are going to discuss resource management the indie way, without using complicated systems. I won't claim that my system is the best out there, but it works and I'm the obsessional type, so you're (hopefully) in good hands ;)
I can still remember the good old days when I used to create (primitive) games without using any external resources, sometimes defining sprites as byte arrays, and so on. Fortunately, we can now use true color textures and sprites, polygon-based models, high quality sound effects and music in our games. In addition to this, our projects may contain text files that are used to store some data locally, saved games, etc. You could just copy them all into a single folder, but it's much better to copy the files to separate folders. I could show you a picture from one of my projects in Windows' explorer, but let me grab a screenshot from FreeCommander, a 100% free file manager I've been using lately, because it shows the folder structure much better than Windows' explorer.
The screenshot above shows the project resources for a training game I've created for General Motors a while ago; I have masked Gamestudio's own folders, in order to make the things easier for you. Let's see what these folders contain:
- "__Final" contains the final, deliverable + source code version of the project as it goes through its milestones; it's good practice to keep all the versions of the project that are sent out to your clients, publishers, etc inside a folder that's named similar to this;
- "_emails" contains all the emails that come from clients or team mates. It's wise to save them and keep them inside the project folder, in case that you need to reference them, retrieve an email address, and so on;
- "_other" contains other files that aren't necessarily a part of the project, but may serve as references, give you ideas, or so. Feel free to create as many folders as possible inside the "_other" folder, separating sketches from sound effects, etc;
- "code" contains the .c files for this project;
- "documentation" contains the documentation of the project; as it grows bigger and bigger it's going to be harder and harder to remember all the project features if you don't document them. The game manual should also be placed inside this folder;
- "gmgame" is the main project folder, the one that contains your main script, the levels, etc. If the name of the game is "Brave Rabbits" I'd name the folder "braverabbits";
- "images" contains all the 2D images used for the sprites, etc;
- "sounds" contains all the sound effects used in the game.
You might have noticed that I'm using underscores - _ - for some of the folder names; this little trick ensures that your desired folder names will move towards the top of the list, thus being easier to access. Since the first folder contains 2 underscore characters, it's going to be the very first one. Once again, this is just my setup and it's far from being perfect, but hey - it works!
How do you back up your projects on a regular basis? Some people simply copy the result of their work to another folder, but I prefer to use a free program that works great - SyncBack. Click the link, scroll down to the bottom of the page to discover the download link for the free version of the application, and then install it; you will be able to create lots of profiles that allow you to copy your entire project folder or only parts of it to a target folder, overwriting the files in the destination if they are older than the source files (or not), and so on.
Burning your files to a dvd-rom from time to time is a wise idea; you wouldn't want to lose all your precious work because of a hard drive crash or a virus attack. In fact, another good service I use and recommend is Dropbox, an online backup solution that can store up to 2GB of space for free, a value that's good enough for most needs. Install the tiny, crossplatform Dropbox application, and then you'll see a "Dropbox" icon on your desktop, which can be used just like a regular drive letter.
Dropbox backs up the files automatically whenever it detects a new or changed file; you can share some (or all) of your files easily and you can access them from anywhere in the world using a regular web browser or your mobile phone.
What about our J, j and BUM game? Pavle, Superku, RedPhoenix and Ivan continue to work at the project and they're making good progress. As you might remember, the goal is to have a full chapter from the game fully finished and then move on from there. Take a look at some fresh screenshots from the revised levels - it's good stuff!