First, let me put out there that I don't have any personally vested interest in obtaining/versioning the X-Bomber source code or changing the way you release it since I don't have a copy of Multimedia Fusion. These are just some friendly words of advice coming from my own experience as a developer. From an outsider's perspective, what I would generally expect are separate source and binary downloads for each version and a brief change log (outside of the actual downloads) of how one version differs from the previous. That's assuming you stick with zipping/7zipping up the code after each release. If you use a SCM tool with a public repository, you wouldn't have to manually zip up and host separate versions. Just tag or branch the code for each version when you build/release it, and the users can immediately pick and download as they like. If you use a SCM tool only privately, you'd still have to zip and upload a blob of code for each release.That said, if you're not already using a SCM tool yourself, I highly recommend it!The chief benefit to using a SCM tool ("software configuration management", aka. "source control system" or "version control system"), even if you're the only person committing changes to it, is that it gives you a complete history of your changes. When you're done working on any small piece of code, you commit it to the repository with a comment. If you ever wonder "why did I do this?" on a given line of code, the SCM can pull up that line and give you the comment you gave for the change. This also gives you the ability to automate change logs, as you can simply pull the list of change comments between two releases and review them for legibility.SCM tools also give you the ability to conveniently branch and merge whole versions of your code. Say you want to try rewriting a major piece of how weapons fire, but you're not sure how it will work out. Without SCM, your only options are to either duplicate/archive your code so you can go back or maintain both the new and old code in conditional blocks and toggle between them. With SCM, you can "branch" your app, which conceptually (but not literally) creates another copy of your code, and commit your changes to that branch. If things work out well, you can "merge" that branch back into the mainline "trunk" and keep going. If you decide to abort, you can just kill the branch and go back to trunk. If it's a mix, as is often the case, you could pick-and-choose either whole files or specific commits to merge back to trunk. In any case, you have a full history of all the changes you made so you don't have to keep manual notes (or exercise your brain's memory) to track what went well, what went poorly, and what exactly you did in each case.CVS and Subversion are two of the older open source version control systems. Subversion (aka "svn") started as an evolution of CVS. Both are built as centralized systems which mean all committed changes go to and from a single centralized manager. That makes these the "obvious" choice for sole-developer projects.Git and Mercurial (aka "hg") are two of the newer competing open source version control systems. Git was created by Linus Torvalds (creator of Linux) because none of the other open source systems (including CVS and SVN) had good enough performance for the projects he was working on. Mercurial was modeled after the same concepts that Git set down. In a nutshell, CVS and SVN differ from Git and Mercurial in that the latter are "distributed" systems and don't require a single central server for all users to hit. This might seem to rule out their use on sole-developer projects, but there are some other benefits to them that I won't get into here. WALL OF TEXT WALL OF TEXT WALL OF TEXT, I know. This is one of my "soapbox" subjects!Anyhow, if you want to know more, there's a very good lightweight introduction to version control systems in general (and hg specifically) by Joel Spolsky (of "Joel on Software" fame) here: http://hginit.com/01.html
QUOTEI know what you’re thinking. You’re thinking, “JOEL, THIS ALL SEEMS LIKE A BIG WASTE OF TIME.” Why go through all this rigamarole of committing?Patience, young grasshopper. You’re about to learn how to get some benefit out of this.