I think that to clarify what the terms refer to, we need to take into account that the might reflect two different (but ultimately converging) perspectives: one of a researcher who explores material in available sources, and another of the developers/publishers/distributors who go about their business releasing games.
I think it could be useful to first lay out the ideal theoretical situation from the developer/publisher perspective and then compare it against the issues we as researchers or collectors run into.
So let's imagine a hypothetical situation where a game is distributed only via authorised sources without third-party modifications, every release and version is announced and clearly marked as such etc.:
1. A developer decides to make their game available to the public in a certain form (demo, shareware, full version) via online download and/or as a publication on a magazine cover CD (or both). A version of the game will be built from source for this purpose. In most cases (I suppose in the majority of cases) this will not be the first build of the game produced by the developer, even if this is the first public appearance (it's not easy to find other words instead of
release) of said game.
Side note: In order to avoid making up definitions where suitable ones already exist, I Googled a bit and found several sources which hopefully provide useful insights and/or clarifications to the matter:
Software versioning is the process of assigning either unique
version names or unique
version numbers to unique states of computer software. [
source]
Versioning is the creation and management of multiple releases of a product, all of which have the same general function but are improved, upgraded or customized. <...> Version control is the practice of ensuring collaborative data sharing and editing among users of systems that employ different versions of a product. [
source]
In a programming context, a build is a version of a program. As a rule, a build is a pre-release version and as such is identified by a build number, rather than by a release number. [
source]
For the last one, indeed build numbering is apparently quite often used to designate pre-release (~ pre-v1.0) "unique states" (this term seems pretty nice to me) of software, however I would suppose that the general meaning is that something compiled from source, be it a binary executable or a data file.
Historically, build has often referred either to the process of converting source code files into standalone software artifact(s) that can be run on a computer, or the result of doing so. [
source]
There's also the term
revision which refers to what we could also call
version but from the point of view of a developer who edits the code:
A component of software configuration management,
Revision control, also known as
version control or
source control, is the management of changes to documents, computer programs, large web sites, and other collections of information. [
source]
From all this we can conclude that a very important concept for all these terms is that of 'change'. Indeed, if there were no changes between versions/releases then we would probably not require these terms at all.
Back to the hypothetical developer:
2. The build is probably tested and prepared for the release, which in the case of online distributions means uploading the game files in a format accessible to end-users to a website or FTP site. A readme is likely written to be included with the downloadable files and/or displayed online, which may have a certain date indicated for the release. This date may or may not coincide with the actual upload date and/or binary executable compilation date. The readme may also contain information about the version number or build number of the programme.
3. The build is packed up and uploaded for online distribution. After that the developer or the publisher probably announces the release via newsgroups, websites or otherwise. For magazine releases, the build it packaged and sent to the magazine publisher.
The result of this is a release of the game (Wikipedia suggests that it should be called Release to web), which in the hypothetical example coincides with version.
Switching to the researcher's perspective, we have to consider sources. If a release is obtained directly from the developer/publisher, that's the primary source (if published only through magazine coverdisks, they should be the primary source). Any third-party website/FTP or magazine coverdisk or CD compilation which have included the release that was obtained from the developer/publisher (or authorised magazine in some cases) should be considered secondary sources.
Because of this distinction, we need to consider complications that arise with each of these source types.
From the definitions quoted above, I'm getting the impression that technically speaking, the term
version is indeed justified when the version number is explicitly indicated somewhere. It seems logical to use the term
build when no version number is specified. Moreover, there are cases when several obviously different builds carry the same version number (e.g.
Seven Kingdoms demo versions).
Another thing is when the developer or publisher "stealthily" updates a release without any announcement, usually to renew ordering/contact information etc. For example, we have identified three different sets of files which are all
Descent II demo v1.0. I don't think Interplay announced these updates anywhere. This raises the question of whether these are different releases and/or different builds? It is my understanding that technically, if any files of a programme have been changed (in the case of
Descent II demo, the splash screen image with the ordering information was replaced), this constitutes a different build, even if the source code revision (and the game executable) remains the same.
I would probably suggest the term variant for this situation, but I'm not sure. Let's not multiply entities and use
build for these cases. For instances with no build number available, it seems logical to use dates.
Official distribution may also take several forms. For example, Interplay provided both plain and self-extracting zip archives as distributions of
Descent and
Descent II demo/shareware. Additionally, there's a split-file version which comprises two floppy-sized zip archives. All these certainly constitute the same version but different
distributions. Similarly, Epic MegaGames and some other developers/publishers have used plain-files zip archives for online distribution of their games, but apparently sent out installers to magazine publishers and/or shareware vendors. E.g. here's a version of
Operation Carnage with a De-ICE installer on a PC Gamer CD:
http://www.kultcds.com/Catalog/index.ph ... =$2FOcdemo
It also happens to be a slightly different build, although both releases (IIRC) are v1.0.
Here's another thing, also with
Descent as example. Parallax/Interplay released patches to update
Descent shareware from v1.0 to v1.1, and from v1.1 to v1.2. Each of these versions was also released as a stand-alone download. In v1.1, among other things, the splash screen with the ordering info was updated. Normally the screen is found in one of the data files (DESCENT.HOG), but the game can read a PCX image from its directory. So the v1.1 patch includes a PCX file, while the stand-alone shareware release contains an updated data file. So in fact you can get two different "builds" of
Descent v1.1 shareware, either by installing a stand-alone version or using a patch on v1.0. Of course this should not really bother us as researchers because the answer is that there are two releases: shareware v1.1 and v1.1 patch.
However, this has implications for secondary sources, because a "patched" v1.1 can be found on CDs in unpacked form:
http://www.kultcds.com/Catalog/index.ph ... $2FDescent
http://www.kultcds.com/Catalog/index.ph ... ames$2F012
http://www.kultcds.com/Catalog/index.ph ... $2FDescent
http://www.kultcds.com/Catalog/index.ph ... $2FDescent
In fact, only two records of DESCENT.HOG with the size of 2,365,676 bytes in your catalogue are from a v1.0 Dec 22, 1994 build:
http://www.kultcds.com/Catalog/index.ph ... S$2FDESCEN
http://www.kultcds.com/Catalog/index.ph ... $2FDescent
We can expect a similar situation for v1.2.
Tu sum up, it seems logical to me to use the following terms:
- build as the most general term for any "unique state" of a compiled programme (or a single file); for a programme, all files required to run it in their entirety (expect for configuration files if they are not provided with the game) constitute a build;
- a version is a build which has a version number assigned to it; it might often need to be further specified whether the version in question is demo/shareware or registered;
- a release is a build/version which was made public either online or offline, and either as a stand-alone product or a patch; ideally, it should include an explicit license that grants the user rights to run this build on their hardware;
- a distribution is the form in which a release was made available to the public (zipped files, installer on a CD, zipped installer, self-extracting archive, split files etc.);
- a record I understood as an entry in your catalogue, but somehow I'm not sure if I'm right on this.