Page 1 of 1
How to handle compatibility issues?

Posted:
Thu Feb 13, 2014 20:19
by sapier
Minetest protocol lacks of client server handshake. This causes various issues:
-Missing player models and name tags on initial login (activeobject is sent to client prior model)
-players standing in world long before init complete
-chat messages not sent to client because of client not beeing ready
-various minor glitches
Adding client server handshake cannot be done in a 100% compatible way, there are multiple options to proceed

Posted:
Thu Feb 13, 2014 20:26
by MrElmux
so the Problem is to run into problems now or later on
would it run if the Server just sents some test information, and if the client is responding ( he knows what to do with this package)it is newer than for example 0.4.11 and knows handshaking
this xould run either way.

Posted:
Thu Feb 13, 2014 20:28
by TenPlus1
Since Minetest hasn't reached version 1.0 as yet, the alpha/beta stage should focus on simply getting things working properly even if it breaks compatibility with older versions, forcing users to upgrade so that issues are then fixed without a lot of coding and fiddling around...

Posted:
Thu Feb 13, 2014 20:30
by sapier
version number isn't a indication for stable or not

Posted:
Thu Feb 13, 2014 21:04
by mauvebic
I'd suggest doing it for 0.5.0, not many people would expect it to be compatible with 0.4.x series :-)

Posted:
Thu Feb 13, 2014 23:15
by Novacain
My suggestion is somewhat of a hybrid. If there are major changes, then break it. they should be seperate. however, if the versions are close enough, there should be some compatability, ie. 4.7 is compatible with 4.9, but 5.0 isn't compatable with either. I say, add some compatability support for a couple versions back, but certainly not full support. I know it took a while for me to "upgrade" to 4.9 because of all the errors that were reported with it. I then decided to give it a whirl (because 4.8 wasn't available) when I upgraded my OS.
However, some compatability check should be used. it could also stop all the buildcraft users from clogging up servers that they can't enter.

Posted:
Fri Feb 14, 2014 00:33
by rubenwardy
If you do it, do it right.
Don't do a bad job just to save compatibility.

Posted:
Fri Feb 14, 2014 00:39
by philipbenr
Novacain wrote:My suggestion is somewhat of a hybrid. If there are major changes, then break it. they should be seperate. however, if the versions are close enough, there should be some compatability, ie. 4.7 is compatible with 4.9, but 5.0 isn't compatable with either. I say, add some compatability support for a couple versions back, but certainly not full support. I know it took a while for me to "upgrade" to 4.9 because of all the errors that were reported with it. I then decided to give it a whirl (because 4.8 wasn't available) when I upgraded my OS.
However, some compatability check should be used. it could also stop all the buildcraft users from clogging up servers that they can't enter.
I Second that

Posted:
Fri Feb 14, 2014 02:03
by Megaf
rubenwardy wrote:If you do it, do it right.
Don't do a bad job just to save compatibility.
+1
You said it all ruben.
We have enough bugs and useless codes. Sapier, you are doing a fantastic job already, keep doing what you are doing and don't be afraid of braking some compatibility. Thanks a million!

Posted:
Fri Feb 14, 2014 02:40
by BrandonReese
It's beta software we should have some expectation that things might change drastically and break some compatibility. It's not very difficult to update your client so I wouldn't worry about backward compatibility.

Posted:
Fri Feb 14, 2014 02:43
by Novacain
BrandonReese wrote:It's beta software we should have some expectation that things might change drastically and break some compatibility. It's not very difficult to update your client so I wouldn't worry about backward compatibility.
don't forget that a realease isn't always on all OS's at the same time.

Posted:
Fri Feb 14, 2014 02:57
by hoodedice
Novacain wrote:BrandonReese wrote:It's beta software we should have some expectation that things might change drastically and break some compatibility. It's not very difficult to update your client so I wouldn't worry about backward compatibility.
don't forget that a realease isn't always on all OS's at the same time.
It is. -.-
Just compile it yourself.

Posted:
Fri Feb 14, 2014 02:59
by BrandonReese
Novacain wrote:BrandonReese wrote:It's beta software we should have some expectation that things might change drastically and break some compatibility. It's not very difficult to update your client so I wouldn't worry about backward compatibility.
don't forget that a realease isn't always on all OS's at the same time.
I'm pretty sure when it's the next "stable" release it's available on all OS's when it's first announced.

Posted:
Fri Feb 14, 2014 03:44
by Novacain
BrandonReese wrote:Novacain wrote:BrandonReese wrote:It's beta software we should have some expectation that things might change drastically and break some compatibility. It's not very difficult to update your client so I wouldn't worry about backward compatibility.
don't forget that a realease isn't always on all OS's at the same time.
I'm pretty sure when it's the next "stable" release it's available on all OS's when it's first announced.
it took a little bit for 4.9 to show up for ubuntu
hoodedice wrote:Just compile it yourself.
Not everyone knows how to compile the source code. you have your people who only know how to game, not how to fully utilize open-source code. plus errors can happen. otherwise I would probably be using rubenwardy's nodebox editor right now...

Posted:
Fri Feb 14, 2014 04:22
by onpon4
Novacain wrote:Not everyone knows how to compile the source code
Everyone ought to learn how to look at the readme and follow directions. Honestly, it's not that hard to compile C++ code that is distributed with makefile generator scripts, supports cmake, etc (unless you're on Windows).

Posted:
Fri Feb 14, 2014 05:51
by Novacain
onpon4 wrote:Novacain wrote:Not everyone knows how to compile the source code
Everyone ought to learn how to look at the readme and follow directions. Honestly, it's not that hard to compile C++ code that is distributed with makefile generator scripts, supports cmake, etc (unless you're on Windows).
doesn't mean they will though. there area a lot of things people "ought" to do.

Posted:
Fri Feb 14, 2014 14:35
by Jonathan
rubenwardy wrote:If you do it, do it right.
Don't do a bad job just to save compatibility.
+1. I agree.

Posted:
Fri Feb 14, 2014 17:28
by twoelk
onpon4 wrote:Novacain wrote:Not everyone knows how to compile the source code
Everyone ought to learn how to look at the readme and follow directions. Honestly, it's not that hard to compile C++ code that is distributed with makefile generator scripts, supports cmake, etc (unless you're on Windows).
So only those that know how to compile, know how to get all the needed resources and have acces to a device this can be done on should be allowed to play Minetest?
What a stupid statement!
"shoo shoo little kid go away 'cause you can barely read let alone code and anyways you don't own a proper pc so go play some other voxel sandbox game" . . . is that what you are saying onpon4?

Posted:
Fri Feb 14, 2014 17:36
by Sokomine
I voted for "add compatibility code" as I see it as a great gain if diffrent versions of Minetest can connect to almost all servers. However, this is to be seen as "nice to have" and certainly not an absolute requirement. But if you ask...:-) However, if there's no time for it, or if a clean solution is better, then go for it and break compatibility.
There where changes in the past versions that do make connecting to Redcrabs server more and more difficult. That one still runs 0.4.4. First where texturs of flowing water and lava broke. Then cyan wool (on other servers, other blocks where concerned) was lost due to a new improvement. Latest, map stopped loading entirely and anything but chatting is no longer possible with new clients.

Posted:
Fri Feb 14, 2014 18:37
by onpon4
twoelk wrote:So only those that know how to compile, know how to get all the needed resources and have acces to a device this can be done on should be allowed to play Minetest?
What a stupid statement!
"shoo shoo little kid go away 'cause you can barely read let alone code and anyways you don't own a proper pc so go play some other voxel sandbox game" . . . is that what you are saying onpon4?
No. You're exaggerating both what I said and the difficulty of compiling a program.
Compiling a program that gives you instructions to do so doesn't require programming knowledge. It just requires you to be able to follow directions and do a web search if you get stuck. This is a very basic skill. No programming knowledge is required to find out from a readme that you compile a program with "./configure" and "make".
It's OK to get confused by the process; that's why you search and ask questions. Maybe you're confused by the error about SDL being missing and don't realize you need the "dev" or "devel" package, and that's fine. But you're talking about compiling as if it were some mysterious process that only skilled programmers can do, and that's not true at all unless the documentation is horrid or non-existent, or you're doing it on Windows (documentation for compiling generally assumes a POSIX system, and using things that provide a POSIX environment on Windows isn't particularly straightforward).

Posted:
Sun Feb 16, 2014 17:36
by twoelk
onpon4 wrote:twoelk wrote:So only those that know how to compile, know how to get all the needed resources and have acces to a device this can be done on should be allowed to play Minetest?
What a stupid statement!
"shoo shoo little kid go away 'cause you can barely read let alone code and anyways you don't own a proper pc so go play some other voxel sandbox game" . . . is that what you are saying onpon4?
No. You're exaggerating both what I said and the difficulty of compiling a program.
Compiling a program that gives you instructions to do so doesn't require programming knowledge. It just requires you to be able to follow directions and do a web search if you get stuck. This is a very basic skill. No programming knowledge is required to find out from a readme that you compile a program with "./configure" and "make".
It's OK to get confused by the process; that's why you search and ask questions. Maybe you're confused by the error about SDL being missing and don't realize you need the "dev" or "devel" package, and that's fine. But you're talking about compiling as if it were some mysterious process that only skilled programmers can do, and that's not true at all unless the documentation is horrid or non-existent, or you're doing it on Windows (documentation for compiling generally assumes a POSIX system, and using things that provide a POSIX environment on Windows isn't particularly straightforward).
nope, I do not at all think I am exaggerating. I really believe you may not be considering correctly who the people are that actually just "play" Minetest or, and I do hope I am totally wrong on this, you don't mind (to express it mildly) to limit the game to those that do have some expertise level on computers.
I for myself for example avoid compiling other peoples software if I can for many reasons and I do not consider it a good practice to make a game popular by telling users to first learn to do so. Compiling can be easy and it can be a pita on the very next try, with you searching for the cause for ages, as you are not aware anything changed, until you find the automatic update of some obscure library that should not be able interfere at all.
Having played on several public servers for a while now I have met enough players to know that the computer skills vary extremly. We are talking of playing a game here not of developing or modding it. Playing should be easy and not need any computer system specific skills or need any external resources as such. You may not know it but some players of the game do indeed not have acces to the internet at the same time. This may sometimes be so because of the device they play on, the location they play at or the parental policies they have to regard.
Which brings me to the age of some players. I have seen and do know some players from the age of five to five decades of years and as such some can barely write to let alone spell enough to use the chat properly while others use the computer as a simple tool (or toy) similar to the way most people use a radio or a car without caring to know much about the underlying technic or mechanics. I work in an office and believe me although most can use some office suite with considerable profession and knowledge gained in years of working with it, a lot of the employees give me glares of pure panic when I try to explain to them what a file manager is and that they should use it to solve simple problems (and fun fact they almost never understand that they might have been using incarnations of one by simply using the "save as" menu).
We do have some pretty computer competent teenagers and preteens here but these are rather rare in the normal world and should actually not be the main group this game aims at. Actually those are the people who probably need the least help to workaround problems and as they do so may miss reporting bugs as this may not be a game killer for them.
... oh well you probably got the point anyways
happy unproblematic playing

Posted:
Sun Feb 16, 2014 17:53
by Krock
I voted for "Break compatibility for old clients. Stop them from connect." because I really would like some cleanups - hopefully it will be faster after doing that.
Old clients can update everytime, I can't see any problem with that.
(Except the new version does not work on the PC, but for that exist the bug reports)

Posted:
Mon Feb 17, 2014 03:47
by Novacain
and, just to reiterate my idea in a simpler form, allow the past couple versions (excepting a major update like 5.0) to conect, but break compatibility with older versions.
or have it like some mod compatability checks. send the client a few tests. if it responds in a way that indicates it can funtion well on the server, let them connect, otherwise send them a message saying "This server registers as incompatable with current version. See debug.txt for details"

Posted:
Mon Feb 17, 2014 03:54
by cheapie
I think that it's okay to break compatibility between the first and second numbers in the version, but not between the third numbers. For example, 0.4.10 should be compatible with 0.4.15, but 0.5.4 doesn't need to be compatible with 0.6.2, and 0.7.8 doesn't need to be compatible with 1.7.8.