ID:118367
 
Resolved
A byond_build var has been added for world and client. The world.byond_build var provides the build number for the server. This var is 0 if an older client is connected, since that information is not available.
Applies to:DM Language
Status: Resolved (512.1386)

This issue has been resolved.
New features are constantly being implemented in the minor builds in the beta. The best way to beta test these things is in a live world. It's difficult to properly test new features when people are connecting with old clients. Considering we've been in 509 since September, so much has changed in that time, and much more will probably change.

It might make sense to implement new client/world variables and a new preprocessor macro for the minor version number.

It'd make so much sense to avoid conflicts between client/server.


Original post:
Currently, the value of byond_version, (as a client or world var, even the DM_VERSION macro) outputs only the major number, instead of the minor number. This is bad if you want to compare versions to the exact build, such as with the beta. Because, that's still all version 490, but lots of smaller builds.

I want to lock people out of my game unless they have the exact build or higher that the server is being hosted on, so the features in one build do not get held back because of someone using a lesser version. Also, I'm pretty sure you can use the DM_VERSION to macro to lock out people from hosting by comparing it to the world.byond_version var, but I can't do that successfully with the beta or other minor builds, because the minor build number doesn't appear in those variables & macros.
So...can those variables be expanded to include the major.minor build format? I do not think changing it will conflict with previous versions.
It's probably a bad idea to build your game to work with only specific versions of a beta release.
It's not that, it's that some features only work in new versions, so if that's the version I'm using to update my game, I kinda want the features to work with everyone.
Right, so you would use byond_version as it is now. This feature you're asking for would only matter if you're building your game to work with special beta versions of BYOND rather than official updates.
Or...if I'm using 490.1106, compared to a user who is using 490.1101 still. Pretty sure there's been enough bug fixes and features added between those, where the user would need to update to experience the full flavor of the game, if I am using those features.
Those are both beta versions, not official releases. The last official release was 489.
I know, but still...I'd like it if my users would be forced to use the same version or higher that I'm using, even in minor builds.
Which is bad practice. You shouldn't build your game specifically for beta versions of BYOND.

Either stick to 489 or wait until an official release of 490.
I'd like to be able to have the actual build for the BYOND version displayed along with it. Right now if I have it display to the world a client's byond_version or the world's byond_version it would display 501. What I would like is if it displayed 501.1216

Why? It lets me be real specific as to what I want players to use when connecting to my world. If a bug was fixed but it was still the same BYOND version number, currently I wouldn't be able to tell the players to update using the byond_version variable.

Yes I know this is possible in many other ways but this would make it a little easier in my opinion.
Minor build info isn't sent between client and server; while it could be sent, it isn't useful enough to do so. On top of that, the full major + minor version, if represented in floating point, is sitting over the edge of floating point's numerical accuracy; we'd need a whole new var to cover this.

I think it just has to be understood by beta users that they need to keep it updated.
Welp that sucks :/ oh well I'll just go around it then I guess.
Nadrew resolved issue (Not Feasible)
Instead of storing the world/client's BYOND version in one variable (causing the issue Lummox JR mentioned with floating point precision) would it not be possible to have two separate variables (byond_major_version, byond_minor_version, and matching defines for the compiler [DM_MAJOR_VERSION, DM_MINOR_VERSION])? Maybe even possibly simplify it by just implementing byond_minor_version/DM_MINOR_VERSION seeing as how there are already variables in place that hold the major version.

Edit: Super Saiyan X edited the opening post to this thread, which puts what I wrote far more succinctly.
An addition to byond_version or used as it's own var that would work similar to the current "byond_version" to show the build version. (Both client & world)

From what I can see each build currently increases one step to the last and does not link to the version. ie 510.'1347' | 511.'1348'

This would be useful for cases such as the one I am currently in where I need to force the most recent build of version 511 to prevent a game breaking crash that has recently been fixed.

In response to Mystery16
In response to Mystery16
I'm gonna add to this as well...

We frequently get admin helps for bugs that were fixed in minor versions, even of the stable, and i'd really like to able to just have the game code nag the client to upgrade in those cases rather then get repeated admin helps.
In response to Super Saiyan X
I had a feeling something like this would have been mentioned somewhere before but I wasn't able to find anything with my search so I took a chance. Thank you though... should I delete this(?)
(off topic - your original thread was so much better than mine)

To reply to MrStonedOne, I agree completely, in my own situation a bug with having numerous maps within the skin caused the game to crash on load for about 40% of the players, in which I have had constant messages requesting I fix/help them. Solution atm is to enforce 508 (or lower) to prevent the crash.

In response to Mystery16
+1 from me (also pretty tickled at the idea of adding a single indicator for a 4 digit number being "not feasible" lmao).
In response to Wirewraith
Updating byond_version to include it definitely is not feasible. There isn't enough fidelity in the floating number point format to allow for that, and because build numbers are not necessarily fixed at 4 digits but can increase indefinitely, representing the build as major.minor in a number would not work even if the numerical format allowed for it. It has to be a separate var.
can this be marked not unfeasible then as the request has changed?
Page: 1 2