Software Versioning - Guide to find the right version number for your game

quasarquantum

New Member
Dec 26, 2020
2
9
Hello all, especially developers!
When looking for games, it is often difficult to recognize how far a title has come along. That's why I would encourage every developer to use the standard software versioning scheme, presented in the following.

Software version numbers should be written in a "X.Y.Z" format. Sometimes, developers even add a fourth component at the end, more on that later.
X, Y and Z are integer numbers that are increased with new versions. If a number is increased, all numbers to the right are set to zero. Additionally, these numbers are not decimals. This means, each one of these numbers can be 10 or higher without increasing the number to the left. If "Z" is zero, it can be omitted.

"X" is the main version of the build. It is only increased, when the software is feature complete. Say you want to make a game with 4 chapters. After finishing the fourth chapter, you can increase the main version to 1. With most games on this site, that would be equal to the "Completed" tag.
"Y" is the minor version of the build. It is increased, when a release with a set of new features (content) is finished. This equates to a new chapter in most visual novel games, or possibly just any new content you publish to your audience.
"Z" is the bugfix version number. It is increased when bugs a fixed, gameplay or balancing changes are made, without any new features in the release.

Some examples:
The first ever version you are working on is "0.1.0", or "0.1". The game is most likely not feature complete. And it includes the first set of features you want to release.
You have released version "0.9.0" (="0.9") of your game already, and are ready to release another set of features. The next version you use is "0.10" (="0.10.0").
You released version "0.7.1" previously, and after the next set of features your game will include all planned features. The next version will be "1.0.0" (="1.0").

The optional fourth component of the versioning scheme:
This component is mostly used by developers that have some automated build system running, which might automatically build a new release of the software nightly or with every commit to a code repository. This is often referred to as Continuous Integration (CI). Depending on the interval between feature releases, this number can get quite high. It is also not very helpful to end users, so i would not display or communicate it to the public. It might be helpful when giving test builds to testers.

I hope this helps some of you and will lead to more meaningful game release versioning in the future.
Happy Coding!
 

TarAlcarin

Newbie
Mar 21, 2018
87
146
Very well explained! I was thinking of writing a similar post myself, but I'm glad I searched and found this first. If I may be so bold, I'd like to add a small corollary:

Since X, Y and Z are independent integers, normal integer rules apply for each of them. Thus follows:
  1. There is no need for leading zeroes. E.g. 0.5.2 is the same as 0.05.002. Both are technically correct, but the former is easier to read.
  2. Trailing zeroes are significant. This means 0.5.2 and 0.5.20 are not the same. In fact they are 18 bugfix releases apart.
  3. There is no real max value of either integer. (There's a caveat for major versions, mentioned by quasarquantum.) This means there is no meaningful half way point between minor versions and thus no reason to consistently add 5 to the Z value for each release, which many developers seem to prefer.
  4. 0.13.2 is a newer version than 0.7.4. If you wonder why this is, read through quasarquantums post again.
 
Last edited:

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,963
16,203
That's why I would encourage every developer to use the standard software versioning scheme, presented in the following.
Hmm, standard for who ? Not for Python according to the . Not for Ubuntu, among others, who use a date based versioning. Not for Apple at the good old time of MacOS none X, who had a totally stupid scheme where 5.1 was in fact 5.0.1, and 5.6 in fact 5.5.1. Not for TeX who now use the Pi as versioning, using a digit with each update. And they aren't the only examples. And since it's a well known game engine on the scene, among those other example there's RPG Maker, that don't use numbers at all.
As for the signification of the numbers, it's also not this a standard. For years the Linux Kernel used an odd minor number to represente the alpha version, and an even one for the stable version. There's also the case of Java, for which 1.0.x was the beta, 1.1.x the first version, and so on until the 1.8.x that was the version 8.


Not that using a more understandable scheme for the versioning is a bad idea, but there's no standard in the industry, so nothing bad at using the scheme one want to use. Especially since it wouldn't help you to effectively know how far the game is ; A game like The DeLuca Family is at its 0.07.2 version, and have more content than Family Affair who is at it's 0.106 version.
And obviously, there's those games that jump from the 0.5 to 1.0, because six release was enough, or those that continue after the 1.0, because the author had idea to continue the story.
 

quasarquantum

New Member
Dec 26, 2020
2
9
Hmm, standard for who ?
Fair point. There are other systems to track versions. But the most used form in this forum (very prominently on the "latest updates" page) is the sequence-based form i tried to shed some light on.

Especially since it wouldn't help you to effectively know how far the game is ; A game like The DeLuca Family is at its 0.07.2 version, and have more content than Family Affair who is at it's 0.106 version.
Looking at the changelog for both games proves my point. If they had used a slightly refined versioning, it would be much easier to see how far along development is, or if i am about to download a bugfix instead of a feature update, etc.

And obviously, there's those games that jump from the 0.5 to 1.0, because six release was enough, or those that continue after the 1.0, because the author had idea to continue the story.
Yes, both perfectly fine.
 

Madeddy

Active Member
Dec 17, 2017
841
490
...
When looking for games, it is often difficult to recognize how far a title has come along.
...
Hmm, standard for who ? Not for Python according to the . Not for Ubuntu, among others, who use a date based versioning. Not for Apple ... ...
Both correct imho.
Thats why they made and try to establish it somewhat. And it will likely not change from the chaos we have. Especially not here in this format where some throw chapter-releases and other intellectual drivel between. o_O

Lets just hope devs of projects we use/like do a understandable versioning and, all the same important, do not change it every 2 months.
 
  • Like
Reactions: quasarquantum