How to handle compatibility issues?

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

How to handle compatibility issues?

by sapier » Thu Feb 13, 2014 20:19

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 » Thu Feb 13, 2014 20:26

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: 2623
Joined: Mon Jul 29, 2013 13:38
GitHub: tenplus1

by TenPlus1 » Thu Feb 13, 2014 20:28

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 » Thu Feb 13, 2014 20:30

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 » Thu Feb 13, 2014 21:04

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 » Thu Feb 13, 2014 23:15

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: 5858
Joined: Tue Jun 12, 2012 18:11
Location: United Kingdom
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy

by rubenwardy » Fri Feb 14, 2014 00:33

If you do it, do it right.

Don't do a bad job just to save compatibility.
 

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

by philipbenr » Fri Feb 14, 2014 00:39

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
“Would it save you a lot of time if I just gave up and went mad now?”

“I'd far rather be happy than right any day.”

“What, are you, crazy?" "It's a possibility I haven't ruled out yet"
 

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

by Megaf » Fri Feb 14, 2014 02:03

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
Location: USA
GitHub: bremaweb
IRC: BrandonReese
In-game: BrandonReese

by BrandonReese » Fri Feb 14, 2014 02:40

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 » Fri Feb 14, 2014 02:43

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: 1372
Joined: Sat Jul 06, 2013 06:33
Location: world
GitHub: hoodedice
IRC: hoodedice
In-game: hoodedice

by hoodedice » Fri Feb 14, 2014 02:57

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
Location: USA
GitHub: bremaweb
IRC: BrandonReese
In-game: BrandonReese

by BrandonReese » Fri Feb 14, 2014 02:59

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 » Fri Feb 14, 2014 03:44

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: 517
Joined: Thu Mar 21, 2013 01:54

by onpon4 » Fri Feb 14, 2014 04:22

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 » Fri Feb 14, 2014 05:51

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 » Fri Feb 14, 2014 14:35

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: 1328
Joined: Fri Apr 19, 2013 16:19
Location: northern Germany
GitHub: twoelk
IRC: twoelk
In-game: twoelk

by twoelk » Fri Feb 14, 2014 17:28

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: 3886
Joined: Sun Sep 09, 2012 17:31
GitHub: Sokomine

by Sokomine » Fri Feb 14, 2014 17:36

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: 517
Joined: Thu Mar 21, 2013 01:54

by onpon4 » Fri Feb 14, 2014 18:37

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: 1328
Joined: Fri Apr 19, 2013 16:19
Location: northern Germany
GitHub: twoelk
IRC: twoelk
In-game: twoelk

by twoelk » Sun Feb 16, 2014 17:36

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: 4389
Joined: Thu Oct 03, 2013 07:48
Location: Switzerland
GitHub: SmallJoker

by Krock » Sun Feb 16, 2014 17:53

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 » Mon Feb 17, 2014 03:47

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
 

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

by cheapie » Mon Feb 17, 2014 03:54

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
 


Return to General Discussion



Who is online

Users browsing this forum: No registered users and 4 guests