Game Versioning or Numbering

Hi JGO,

I’ve done a bit of searching and I know this might seem like a bit of a dull question but… how do you decide on version numbers? For example using a 3 stage version number (if thats the right way to say it) like X.X.X how do you decide which one do increment?

Thanks for the help,
James

Do whatever you feel comfortable with.

Nobody cares what you do with it except you.

Just make it obvious whether one version is newer than another.

A good practice is to use the scheme

..

where major versions only change, when you have incompatible changes (like changes of the save-game format), minor versions change with feature-additions and bugfix versions change on - well - bugfixes :wink:

There are several schemes of versioning. I catagorized them into six though the names I use aren’t the originals.

  • Single version scheme
  • Double version scheme
  • Triple version scheme and
  • Quadraple version scheme
  • Year version scheme
  • Character-Number version scheme

[h3]Single version scheme[/h3]
It just get’s incremented by a single digit and the version is in the format [icode][/icode] For example, take flash player. It’s versions are 5, 6, 7, 8, 9, 10, and the recent 11. Even Java has this. Java 5, Java 6 and recent Java 7.
[h3]Double version scheme[/h3]
It contains two stages in the version string. [icode].[/icode] This is used to show also revisions of the software containing bugfixes. Example: Windows OS itself. Windows XP has 6.0 Windows Vista has 6.1 and Windows 7 has 6.2.
[h3]Triple version scheme[/h3]
It contains three stages in the version string. [icode]..[/icode] Linux kernel, Apple OS X, the popular NSIS install system, uses this versioning number.
[h3]Quadraple version scheme[/h3]
It contains four stages. [icode]...[/icode] This is the default version for executables used by windows. Though, the software uses it’s own versioning, this is the format present in the Properties dialog of the windows executables.
[h3]Year version scheme[/h3]
Some softwares which are released once an year can have the year number as the version. For example, MS Office 2003, 2007, 2010, 2013 and the popular system utils like TuneUP Utilities.
[h3]Character-Revision version scheme[/h3]
Some softwares such as photoshop uses a custom implementation like [icode]CS3[/icode] where CS denotes major and 3 denotes the revision number.

Three digits is the common standard, and it’s major.minor.patch (I assure you it’s not a build number). This scheme is usually called “semantic versioning”.

Java 5, 6, and 7 are versions 1.5, 1.6, and 1.7. And the java.version system property actually lists three digits (the last tends to stay at 0) and that’s usually followed by an underscore and an update number, which you can say is the “real” patchlevel.

xD am not trying to be troll but …

seriously, why do you care :stuck_out_tongue: ?
my game titles are always something like “am Angry”, “Why you don’t work ?”,“Rotate me” “shoot me please” etc …
it’s a professional way to push yourself forward 8)

You may also consider using an automatically incremented build number to identify the exact version of your software. In other words, every time you build the code, the build number increases by one. If you show this build # in the main menu or something then users can always see precisely what version of the software they have. Here’s a good post on how to automate this if you are using Ant scripts. I’m working on a similar approach.

I do my personal versions by date…

which is totally unconventional but whatever, it helps me keep track of my own builds (and also holds a reminder of how long it has been since I’ve done a release :P).

AHC09.02.85

A good rule of thumb is, if you (and your user base?) can tell the difference between releases, that is pretty much all you need. Using conventional is probably the best… though many say the the minor number is hardly every used.

More important than the format, is that you actually increment the version…

A lot of developers are too lazy to do that,
ending up with different builds with the same version…

Have to deal with that daily

Side-topic: At what point do you start keeping track of the version/number of your project? Like, what is version 0.0.0.1 or something like that? :stuck_out_tongue:

I mean, I started out drawing a circle on to the screen… does that warrant putting a version/number on?

What is the standard for this and/or what do you personally do?

Versions are important if you have to handle … well more than one version.

So its needed when:
-you give your build to someone to test it.
-When you release some version (in a store / website for example)
-when you make a backup of an important milestone

If you just work yourself on your own codebase / repository, and the project is
in its firsts steps, you dont need a version yet.

as others already pointed out, the actual format of your version number is not that imported.

What is more imported to follow two simple rules.

  1. every version number must be used only once
  2. somehow remember what the source code looked like for a specific version

Do it like that:
Everytime you want give someone else then you your app(post it on a forum or a real release(appstores…))
-test if everything is really working as excpected with a clean build(freshly checked out from version control, don’t use your normal working-copy)
-if everything is right give your app an new version number and commit&tag this in your VC.

btw you can take a look at maven release plugin which is doing all this for you.

I like semantic versioning, and build tools like maven can handle it for you, but yeah, I don’t think you need to go crazy with it for a small game project. Build dates are usually fine for people running test versions, otherwise give 'em a clever name. And if it’s a big game project, let’s hope there’s a project manager who makes a sane decision.

If you go with something like this, I’d highly recommend doing , and always using two digit numbers (or 4 for year if you’re planning on your code being used into the next century :wink: ).

ie. -130509

That way it is always incrementing and sorts correctly ‘alphabetically’ - don’t underestimate how useful those two features can be!

The “professional” way is with versioning, you just don’t see it when you buy the game. Read here