How to handle compatibility issues?

Post Reply
sapier
Developer
Posts: 763
Joined: Tue Aug 16, 2011 18:17

How to handle compatibility issues?

by sapier » Post

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
Last edited by sapier on Thu Feb 13, 2014 20:23, edited 1 time in total.
DON'T mention coding style!
(c) sapier all rights reserved

MrElmux
Member
Posts: 17
Joined: Sun Dec 29, 2013 09:50
Location: North Western Germany

by MrElmux » Post

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.

User avatar
TenPlus1
Member
Posts: 3721
Joined: Mon Jul 29, 2013 13:38
In-game: TenPlus1
Contact:

by TenPlus1 » Post

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...

sapier
Developer
Posts: 763
Joined: Tue Aug 16, 2011 18:17

by sapier » Post

version number isn't a indication for stable or not
DON'T mention coding style!
(c) sapier all rights reserved

mauvebic
Member
Posts: 1550
Joined: Fri Jan 27, 2012 11:32

by mauvebic » Post

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

User avatar
Novacain
Member
Posts: 285
Joined: Sat Aug 31, 2013 01:03
Location: Skaaro

by Novacain » Post

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.
EXTERMINATE!!!
My Tronrealm modpack
My tronblocks mod

User avatar
rubenwardy
Moderator
Posts: 6977
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: Bristol, United Kingdom
Contact:

by rubenwardy » Post

If you do it, do it right.

Don't do a bad job just to save compatibility.
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
philipbenr
Member
Posts: 1897
Joined: Fri Jun 14, 2013 01:56
GitHub: philipbenr
IRC: philipbenr
In-game: robinspi
Location: United States

by philipbenr » Post

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

User avatar
Megaf
Member
Posts: 99
Joined: Fri Nov 01, 2013 18:00
GitHub: megaf
IRC: Megaf
In-game: Megaf
Contact:

by Megaf » Post

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!
Megaf Server v4.0 Address: mt.megaf.info Port 30003

User avatar
BrandonReese
Member
Posts: 839
Joined: Wed Sep 12, 2012 00:44
GitHub: bremaweb
IRC: BrandonReese
In-game: BrandonReese
Location: USA

by BrandonReese » Post

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.

User avatar
Novacain
Member
Posts: 285
Joined: Sat Aug 31, 2013 01:03
Location: Skaaro

by Novacain » Post

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.
EXTERMINATE!!!
My Tronrealm modpack
My tronblocks mod

User avatar
hoodedice
Member
Posts: 1374
Joined: Sat Jul 06, 2013 06:33
GitHub: hoodedice
IRC: hoodedice
In-game: hoodedice
Location: world
Contact:

by hoodedice » Post

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.
7:42 PM - Bauglio: I think if you go to staples you could steal firmware from a fax machine that would run better than win10 does on any platform
7:42 PM - Bauglio: so fudge the stable build
7:43 PM - Bauglio: get the staple build

User avatar
BrandonReese
Member
Posts: 839
Joined: Wed Sep 12, 2012 00:44
GitHub: bremaweb
IRC: BrandonReese
In-game: BrandonReese
Location: USA

by BrandonReese » Post

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.

User avatar
Novacain
Member
Posts: 285
Joined: Sat Aug 31, 2013 01:03
Location: Skaaro

by Novacain » Post

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...
EXTERMINATE!!!
My Tronrealm modpack
My tronblocks mod

User avatar
onpon4
Member
Posts: 518
Joined: Thu Mar 21, 2013 01:54
GitHub: onpon4
In-game: diligentcircle
Contact:

by onpon4 » Post

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).
Last edited by onpon4 on Fri Feb 14, 2014 04:24, edited 1 time in total.

User avatar
Novacain
Member
Posts: 285
Joined: Sat Aug 31, 2013 01:03
Location: Skaaro

by Novacain » Post

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.
EXTERMINATE!!!
My Tronrealm modpack
My tronblocks mod

User avatar
Jonathan
Member
Posts: 119
Joined: Tue Apr 02, 2013 14:07
Location: USA

by Jonathan » Post

rubenwardy wrote:If you do it, do it right.

Don't do a bad job just to save compatibility.
+1. I agree.
By perseverance the snail reached the ark.
- Charles Spurgeon

twoelk
Member
Posts: 1482
Joined: Fri Apr 19, 2013 16:19
GitHub: twoelk
IRC: twoelk
In-game: twoelk
Location: northern Germany

by twoelk » Post

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?

Sokomine
Member
Posts: 4282
Joined: Sun Sep 09, 2012 17:31
GitHub: Sokomine
IRC: Sokomine
In-game: Sokomine

by Sokomine » Post

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.
A list of my mods can be found here.

User avatar
onpon4
Member
Posts: 518
Joined: Thu Mar 21, 2013 01:54
GitHub: onpon4
In-game: diligentcircle
Contact:

by onpon4 » Post

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).
Last edited by onpon4 on Fri Feb 14, 2014 18:38, edited 1 time in total.

twoelk
Member
Posts: 1482
Joined: Fri Apr 19, 2013 16:19
GitHub: twoelk
IRC: twoelk
In-game: twoelk
Location: northern Germany

by twoelk » Post

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

User avatar
Krock
Developer
Posts: 4650
Joined: Thu Oct 03, 2013 07:48
GitHub: SmallJoker
Location: Switzerland
Contact:

by Krock » Post

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)
Look, I programmed a bug for you. >> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>

User avatar
Novacain
Member
Posts: 285
Joined: Sat Aug 31, 2013 01:03
Location: Skaaro

by Novacain » Post

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"
EXTERMINATE!!!
My Tronrealm modpack
My tronblocks mod

User avatar
cheapie
Member
Posts: 316
Joined: Mon May 14, 2012 00:59
GitHub: cheapie
IRC: cheapie
In-game: cheapie

by cheapie » Post

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.
-- This account is no longer active --
My mods have moved to: https://cheapiesystems.com/git

Post Reply

Who is online

Users browsing this forum: No registered users and 15 guests