Dear Devs - A Request From Users

dspeed

Active Member
Oct 15, 2016
851
1,342
Can you all PLEASE learn how to correctly use version systems? Some of the versioning on these games is literally mental. V12-A? V1.0 as the starting point? It has no way of informing your audience what has happened since they last saw your game which is one of the primary points of releasing version numbering.

Some offenders:

"Hardcoded" - 0.0.0.87 > 0.0.0.95 > 0.0.1 > 0.0.13
"A Spell For All" - 14.9.2.1 > 14.9.3 > 14.9.3.1
"S.H.E.L.T.E.R." - 0.09 > 0.10 (by 'Patreon' post)
"Quidget the Wonderwiener" - 0.2.0 > 0.2.4 > 0.2.56
"My Little Angel" - 0.7 > 0.9 > 1.0b > 1.0f
"Renryuu: Ascension" - 19.08.24 > 19.09.20 (Using the date)

A small tutorial:

3.2.1
x.y.z

X = a major release. If your game isn't in a saleable state then you're at 0. 1 is for the release version. Major releases are NOT PRESUMED to be compatible with each other.

Y = a minor release. This is your monthly updates, generally. Yes even the really big ones that change a lot of the game. Minor releases ARE ALWAYS PRESUMED to be compatible with each other.

Z = a patch release. This is where you release bugfix versions of the game or small changes. These are compatible with the latest minor version. These often have dashes after them to differentiate release types such 0.1.4-beta or 0.1.4-RC2.

v0.15.8-beta tells me a ton more about your game than v1.4. It also tells me that you have even a basic level of competence in software engineering by adopting a standard that literally the whole industry uses.

This is so easy to do and yet so many developers in the adult space mess it up. Makes you look amateur.
 

shark_inna_hat

Active Member
Game Developer
Dec 25, 2018
705
2,733
[Post version RC1.xp.00.7'avocado']
That's what's bothering people? Really? You don't want quality updates, performance boosts, new content, better artwork, competent programming, detailed changelogs? Just a version number scheme that You think is somehow superior to other schemes?

Version numbers only need to be:
a. Unique ( 1.3 != 2.45)
2. Comparable ( 0.2 > 0.1)
III. Human readable.
- Consistent (not like this list).
 

I'm Not Thea Lundgren!

AKA: TotesNotThea
Donor
Jun 21, 2017
6,582
18,944
Can you all PLEASE learn how to correctly use version systems? Some of the versioning on these games is literally mental. V12-A? V1.0 as the starting point? It has no way of informing your audience what has happened since they last saw your game which is one of the primary points of releasing version numbering.

Some offenders:
"Hardcoded" - 0.0.0.87 > 0.0.0.95 > 0.0.1 > 0.0.13
"A Spell For All" - 14.9.2.1 > 14.9.3 > 14.9.3.1
"S.H.E.L.T.E.R." - 0.09 > 0.10 (by 'Patreon' post)
"Quidget the Wonderwiener" - 0.2.0 > 0.2.4 > 0.2.56
"My Little Angel" - 0.7 > 0.9 > 1.0b > 1.0f
"Renryuu: Ascension" - 19.08.24 > 19.09.20 (Using the date)
All of those examples (even the date one) follow a logical numerical progression. I don't see the issue. :unsure:
Can you all PLEASE learn how to correctly use version systems? Some of the versioning on these games is literally mental. V12-A? V1.0 as the starting point? It has no way of informing your audience what has happened since they last saw your game which is one of the primary points of releasing version numbering.
...

This is so easy to do and yet so many developers in the adult space mess it up. Makes you look amateur.
What you've also got to take into account is that most of the devs here are NOT professional devs or coders. I would say a good 80-90% are hobbyists that learn as they go.

As I said before, I don't see an issue here, so unless someone is going from v0.02 to v0.78 then back to v0.03, it's a non-issue. :)
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
1,005
let me give a useless dev answer with too many words

You are describing the SemVer.org system (aurthored by the co founder of GitHub, the main code sharing platform of the internet) If you read their guide, the numbers you see above may actually be valid, but I think the publishers did not format them correctly, or you may not be as familiar with the SemVer system as developers may be (the SemVer is for devs, not for end-users, as it is mostly used to describe changes in code, not in games). What may be happening is that each game uses a different game engine, with a preset up SemVer config, but each one is a bit different and the export gets a different version number configuration, and the dev's may not know the proper versioning format to be able to correct it, and just accepts what the compiler spits out.

The examples you gave may be valid version numbers because the numbers are pre-release version numbers, and pre-release versions have lower precedence (SemVer Rules # 9 and 11), so they actually work backward.

Here is a valid order of release version,
"Title" 0.0.0 #First starting a project
< "Title" 0.5.1 #Fith prototype public build, with a small fix
< "Title" 1.0.0-x.7.z.92 #This is not the released version 1, This is a pre-release version, getting ready to be version 1, trying to get the last of the bugs fixed before actually releasing. I have no idea what x.7.z.92 means, it was just the example on their site. For projects, I would actually use -alpha.minor.patch and -beta.minor.patch, and patches would be letters, not numbers. Technically the two previous examples are pre-releases, without 1.0.0 in front of them, or 0.0.0 because you are just experimenting and not trying to reach a goal, where Major numbers imply a goal.
< "Title" 1.0.0 #The actual release of the product
< "Title" 1.0.1 #Added a fix or two
< "Title" 1.1.0 #Added a bit of content
< "Title" 2.0.0 #Added major content, area, system etc
< "Title" 2.0.1-alpha.0 # "alpha.0" is a test for patch 1 of released version 2.0
< "Title" 2.0.1 # the patch has been released and implemented
< "Title" 2.1.0-alpha.0 # a test of a new minor update
< "Title" 2.1.0-alpha.0.a # the same test, but with a patch
< "Title" 2.1.0-alpha.1 # Trying to add the same new content, but the test is different a bit (like a minor version)
< "Title" 2.1.0-beta.0 # The minor update is almost ready, just some polish is needed.
< "Title" 2.1.0 # the minor update has been released!
= "Title" 2.1.0-1.0.0 # This is the same thing as the previous line. the alpha and beta are now 1, just like when first making a game. If you wanted to make fix version 2, you would just make 2.2.0, and start at -alpha.0 again.
= "Title" 2.1.0-1.0.0+334.3-0.0 #This is the same thing, but there is the build metadata as well for the programmers. build Metadata is ignored when determining version precedence. Different people may use different build metadata depending on their techniques or tools


I personally prefer
"Title" major#.minor#.patch#-versionTag.versionTest#.attempt@+merge#.attempt#-branch#.(Branch# for sub branches).0

First part is Public versioning, meant to be user-readable. It is meant to indicate to humans that it is a usable file.
The second part after the - is still a user-readable version number, but also meant for the active devs and team, and meant only as pre realesed file, not really for users, but maybe for playtesters. It is meant to indicate a testable file to humans.
The third part is the build metadata, meant only for the programmer, so that they can load up that exact version to start making changes. Not every build works or is ready, use the other previous version types to figure out what a build is supposed to be, and any random build number, could be non-operational, any branch not ending in zero (using my system) is still being edited (open on a computer) and is only acceable to the programer until they save their changes.

Where # indicates a number, @ indicates a letter
Version tags can be alpha = first implementation, and beta = refining to finish. with 1.0.0 = complete
The Build metadata can be whatever, but I use my own metadata type as it allows for infinitely multiple, unbounded dimensions to describe exactly what version of code I am at, as it does not require branch merge order constrictions like with github and other tools, and it is easier to track by hand than a hashed code.

if you are interested in my metadata, it equals the id of a specific build. it is broken into two parts mergedata-branchdata. mergedata = merge#.attempt# where merge# is an arbitrary number, however, by selecting it and looking it up (such as clicking on it if I ever make an interactable software for it) you can see the two builds that were combined to make this merge#. This allows for multidimensional merging, that is not dependant on master branches or merging upwards only. attempt# is my own feature, to allow new merge definitions to allow the computer to automate fixing game-breaking issues that got buried deep into the code after many builds, I don't think this is unique to my system. branchdata = a list of branch #'s all separated by '.' with each new . indicating another branch built off of another (it is like testing an idea, and then building on top of that idea, before releasing the idea to the public, like minor versions, of unlimited dimensions before the major release, but you can still go back and forth in time). the branchdata must end in .0 to specifically state that we have reach the end, we want to look at the branch listed, and not get confused with the sub branches .1 or .x.y.z. and that at this point the branch may no longer be modified. to add to the branch or make changes, make a new branch (a new build).


Edit: also, staring a version number with v is incorrect formatting, you can write it and say it, but it should never show up in code. Second to the last FAQ
 
Last edited:
  • Like
Reactions: Kurweta

fergz

Newbie
Jun 19, 2019
63
376
Imo, developers can name the version of their game to whatever they feel comfortable. Sure, there are various strange names, numbers for versions that are sometimes difficult to understand. I agree with your "xyz" style, it's the most simple and easy way to understand version numbers.
 

polywog

Forum Fanatic
May 19, 2017
4,062
6,263
if the numbers were easy to understand, it would make the milking obvious
latest update 28.09.2019
so doing your release at the beginning of the month like 09.04.2019, players get all confused is that april 9th or sept 4?
and they don't bitch about how long it's been because they don't want to look stupid for confusing the American number system with the European model
 
  • Like
Reactions: Saki_Sliz

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,375
15,289
I get from your examples that you never heard of the game harem...
 

Saki_Sliz

Well-Known Member
May 3, 2018
1,403
1,005
I get from your examples that you never heard of the game harem...
wow, that is pretty unique, I venture to say terrible. c8m6 is the latest update for patrons, whatever c8m6 is, but at least the public version is c8m5 so that at least has the last number follows precedence.
 

recreation

pure evil!
Respected User
Game Developer
Jun 10, 2018
6,274
22,424
Are you saying that my "0.2.456C6C696557617348657265" release wasn't correct? :cry:

I get from your examples that you never heard of the game harem...
Wow... just... wow :oops:
This is a good example of how to do it ... I don't even want to call it wrong, because it's above that state.

Anyway, don't forget that there is no universal system, even big studios have inconsistencies in there update numbers and many dev's just go with the flow, take numbers they think fit best.
I agree though that there should be a system.
 

polywog

Forum Fanatic
May 19, 2017
4,062
6,263
wow, that is pretty unique, I venture to say terrible. c8m6 is the latest update for patrons, whatever c8m6 is, but at least the public version is c8m5 so that at least has the last number follows precedence.
If I said "The Walking Dead s10e05 who wouldn't understand that?
 

polywog

Forum Fanatic
May 19, 2017
4,062
6,263
Are you saying that my "0.2.456C6C696557617348657265" release wasn't correct?
a slice of pi?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353
 

recreation

pure evil!
Respected User
Game Developer
Jun 10, 2018
6,274
22,424
a slice of pi?
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353
try some hex ;)
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,375
15,289
Anyway, don't forget that there is no universal system,
Exactly, there's just a , used, or not, by a lot of person, or almost no one.
There's no universality for versioning mostly because there's no universality for the development process. And like in top of that you need to add the commercial effect of a version 2.0, that would sell more units than a version 1.8 ; while looking more professional since it don't looks like you needed 8 attempts to reach the result you were searching for...


season 10 episode 5, so is c8m6 like Chapter 8 something? like Volume 3 ch 147 (chapters not reseting to 1 each volume).
Technically the version number is v2c8m6, which stand for version 2 of the game, chapter 8 minor update 2. But they let go the "v2" once the original version started to fade from the memories.

As far as I remember, they started with an average versioning system, then came to things like 1.6a to represent minor changes, until they had to fix a bug and it became things like 3.2b.1. Then some people started to complain, asking them to have a comprehensible versioning. And it was their answer, which is, at least for me, the best possible one. They didn't complied to the request since it's not a basic major.minor.revision format, but in the same time it's a perfectly stable and understandable system ; more stable than the previous one.
 

79flavors

Well-Known Member
Respected User
Jun 14, 2018
1,583
2,222
I think you'll probably find that most* of us who've gotten into this exact* same discussion, time after time, will always* favor "as long as it's more or less consistent per game... we don't care."

We* see this same discussion happening over and over again and it never* impacts future developers. Nothing* changes.

When the dust settles, we'll generally* favor live and let live. Because the alternative is high blood pressure, unnecessary headaches, ulcers and a lot of pointless* ranting.

Most* devs here on F95zone don't* come from a formal development background. They don't* understand accepted conventions, internet standards or other practices that more experienced developers hope* other developers would follow. Not that it's much* different in the commercial world.

Personally, I'd choose 0.1, 0.9, 0.10, 0.19, 0.99, 0.100 versioning until a 1.0 (final) release. With bug fixes being 0.1a, 0.1b, 1.0a, 1.0b, etc. It's not ideal, but it's simple and therefore easy to understand for newer programmers. But for the sake of said ulcers and headaches... I'm also fine that other people want to do it differently.

* - Please excuse my generic over generalizations. They are pretty much par for the course* with this type of discussion.
Life's too short.
 

Deleted member 1684328

Member
Game Developer
Oct 2, 2019
384
753
You shouldn't care about something like version numbering. If the game looks interesting, try it out, shape your opinion and either keep waiting for updates or don't. And yes, it's very simple to get version codes right, but I don't know why people get irritated so quickly about something so small.
 
  • Like
Reactions: hiya02