Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-19 Thread Dennis Schridde
Am Donnerstag, 19. März 2009 01:59:12 schrieb Zarel:
 2009/3/18 Dennis Schridde devuran...@gmx.net:
  Make it 10, at least.
  It could happen that the peer is under load, has some weird network setup
  which needs more time, or whatever.

 If the peer is _that_ under load, that peer isn't going to be able to
 play Warzone very well.
Temporary load. I.e. if my hdds kick in at the wrong moment the system might 
hang for a second. Nvidia drivers were known for a bug where the system would 
occasionaly hang for a few.

  And I almost forgot, we are going with port 2100 right?

 I believe everyone agrees yes.
Under one condition:
That we never ever have to change ports again.

--DevU


signature.asc
Description: This is a digitally signed message part.
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-18 Thread bugs buggy
On 3/14/09, Dennis Schridde devuran...@gmx.net wrote:
 Dump from IRC:

  Use a simple number (int), which we increment everytime we change the netcode
  in an incompatible way.
  Use a 2nd number in addition, which we increment if some compatible
  enhancement happens. (And reset when we increment the major version.)
  (That is in fact similar to what is done for shared objects on Linux.)

  Since we need to check game data and mods as well, strings seem better for
  that task. (Simply concat the version strings. Example: trunk:aiv:ntw)
  They could be seperated from the netcode version though.

  Proposed constants:
  NETCODE_VERSION_MAJOR=0, NETCODE_VERSION_MINOR=0, DATA_VERSION=2.2
  (With the latter being the one used to concat mod version strings onto.)

  --DevU


After getting all the input, I have made the latest update:
http://developer.wz2100.net/ticket/290

We need to get it correct the first time.

Right now, we only check on the version string.  All the other stuff
we send isn't used.

I am also not sure about the time period to wait before we auto kick
someone.  Right now, it is set to 7secs.

Logic is, player joins.  Host sends version request query.  If Host
don't get response within 7 secs, then we auto-kick.
If wrong version string, we auto-kick.
If all is fine, you won't notice anything.

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-18 Thread Zarel
2009/3/18 bugs buggy buginato...@gmail.com:
 Right now, we only check on the version string.  All the other stuff
 we send isn't used.

 I am also not sure about the time period to wait before we auto kick
 someone.  Right now, it is set to 7secs.

 Logic is, player joins.  Host sends version request query.  If Host
 don't get response within 7 secs, then we auto-kick.
 If wrong version string, we auto-kick.
 If all is fine, you won't notice anything.

We should send a message with the wrong version string auto-kick,
though. You're using version X, we require version Y

And we should only send the wrong version string auto-kick if the
two versions are netcode-incompatible.

Let's set the time period to 12.8 secs. ;)

/me likes powers of 2

-Zarel

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-18 Thread bugs buggy
On 3/18/09, Zarel zare...@gmail.com wrote:
 2009/3/18 bugs buggy buginato...@gmail.com:

  Right now, we only check on the version string.  All the other stuff
   we send isn't used.
  
   I am also not sure about the time period to wait before we auto kick
   someone.  Right now, it is set to 7secs.
  
   Logic is, player joins.  Host sends version request query.  If Host
   don't get response within 7 secs, then we auto-kick.
   If wrong version string, we auto-kick.
   If all is fine, you won't notice anything.


 We should send a message with the wrong version string auto-kick,
  though. You're using version X, we require version Y

Well, it does that in the console via LOG_ERROR... doing that in the
GUI... is not going to happen anytime soon.


  And we should only send the wrong version string auto-kick if the
  two versions are netcode-incompatible.

That is a given.


  Let's set the time period to 12.8 secs. ;)

  /me likes powers of 2

Ha!  Ok, then 4 secs. ;)

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-18 Thread Zarel
2009/3/18 bugs buggy buginato...@gmail.com:
 Well, it does that in the console via LOG_ERROR... doing that in the
 GUI... is not going to happen anytime soon.

Oh, come on. So the user just gets kicked out, no explanation why? It
_better_ go in the GUI.

 Ha!  Ok, then 4 secs. ;)

I thought Warzone's game code had 1/10 sec ticks? So the closest
approximation would be 6.4 secs.

-Zarel

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-18 Thread Dennis Schridde
Am Mittwoch, 18. März 2009 22:05:15 schrieb Zarel:
 2009/3/18 bugs buggy buginato...@gmail.com:
  Well, it does that in the console via LOG_ERROR... doing that in the
  GUI... is not going to happen anytime soon.

 Oh, come on. So the user just gets kicked out, no explanation why? It
 _better_ go in the GUI.

  Ha!  Ok, then 4 secs. ;)

 I thought Warzone's game code had 1/10 sec ticks? So the closest
 approximation would be 6.4 secs.
Make it 10, at least.
It could happen that the peer is under load, has some weird network setup 
which needs more time, or whatever.

--DevU


signature.asc
Description: This is a digitally signed message part.
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-18 Thread Zarel
2009/3/18 Dennis Schridde devuran...@gmx.net:
 Make it 10, at least.
 It could happen that the peer is under load, has some weird network setup
 which needs more time, or whatever.

If the peer is _that_ under load, that peer isn't going to be able to
play Warzone very well.

2009/3/18 bugs buggy buginato...@gmail.com:
 _YOU_ can do it then... GUI stuff is... well, you will see if you
 tackle this.  It takes a heck of allot of code changes / additions to
 do this kind of thing.

I'll see what I can do. :/ I know widget code is a mess, which is why
we're all waiting for Betawidget.

 Besides, they DO get a explanation, it is just using stderr that will
 show them the message.

That doesn't count. Survey 1000 gamers; see how many know what
stderr means. Then see how many of those would look at stderr
after being randomly kicked from a game.

I estimate those numbers at 3 and 0, btw.

 And I almost forgot, we are going with port 2100 right?

I believe everyone agrees yes.

-Zarel

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-15 Thread Kreuvf
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Freddie Witherden wrote:
 I'd rather just use the SVN revision of the game. It is simpler.
What do you do when switching to another VCS? That value must be
VCS-independent. And if I understand the git docs correctly (haven't really read
much of it :X) you have some hash-like strings as revision and you probably
cannot derive from such a string if it belongs to an earlier or a later version
of the game. Correct me, if I am wrong.

- - Kreuvf
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJvLX64y86f1GXLDwRAl6UAJ9Va8XJ2OHmdyh4ghuGanVklBL2AwCgjUhb
aiabKxf4Bt8e2Eagi1ADDLY=
=1aoV
-END PGP SIGNATURE-

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-15 Thread Freddie Witherden
Hi,

On Sun, 2009-03-15 at 09:02 +0100, Kreuvf wrote:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Freddie Witherden wrote:
  I'd rather just use the SVN revision of the game. It is simpler.
 What do you do when switching to another VCS? That value must be
 VCS-independent. And if I understand the git docs correctly (haven't really 
 read
 much of it :X) you have some hash-like strings as revision and you probably
 cannot derive from such a string if it belongs to an earlier or a later 
 version
 of the game. Correct me, if I am wrong.

One more reason to stick with SVN. However, I am sure that we could
extract the time at which the revision was committed and then convert
that to an integer. This would be reasonably fail-safe (what are the
chances of two people committing into repos at exactly the same time..)

Regards, Freddie.


signature.asc
Description: This is a digitally signed message part
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-14 Thread Kreuvf
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

bugs buggy wrote:
 Anyone have any opinions on what should be done?
Another option: How about adding version checking stuff to 2.1.3 and then
releasing 2.1.3 + some non-netcode fixes? When releasing 2.1.3 add information
on our plans for 2.1.4 (see below) to the release announcement, so people are
prepared. Not sure how version checking is achieved, but I hope that it is
possible to implement version checking without breaking backwards-compatibility
to 2.1.2. Perhaps some behaviour of versions prior to 2.1.3 could be used as an
indicator.

Then in 2.1.4 you could add that networking fix as 2.1.3 users have version
checking and one should assume that most people upgraded to 2.1.3 in the
meantime. More stable netplay would surely convince most people to use 2.1.4 
anyway.

- -- 2.1.4 will not work with 2.1.3 or any other version prior to 2.1.4. But 
that
should be okay as the advantages people get in exchange for incompatibility
should outweigh the disadvantages. More stable netplay was _the_ main goal for
2.1, so that sacrifice is justified. Eventually people will understand that.

Yet another option (just to have mentioned that one as well) is to not use the
fix for netplay (aka the unfixed netcode), if 2.1.3 or no version is detected.
Dirty: Yes.
Convenient for the users: Yes.
Convenient for distributors: Yes.

Going to a stable 2.2 ASAP could help with overcoming this mess.

P.S.: Everything's IMHO ;)

- - Kreuvf
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJu3im4y86f1GXLDwRAih7AJ9ovG9wI02t69WNMzgR3A4P8kMQnQCfRJBG
3vM7pOV5klowA0hQzzSWP5E=
=G7Ik
-END PGP SIGNATURE-

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-14 Thread Dennis Schridde
Am Samstag, 14. März 2009 10:28:10 schrieb Kreuvf:
 bugs buggy wrote:
  Anyone have any opinions on what should be done?
There comes something to my mind:
If version checking is implemented in 2.1.3, it should be able to figure out 
that 2.1.2 (and prior) do not support a versioned network protocol. Thus it 
should be able to drop connections with people using that...
It will be a little bit unexpected for those using 2.1.2, but if we explain 
this in the release notes, I think it will be less so.

--DevU


signature.asc
Description: This is a digitally signed message part.
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-14 Thread bugs buggy
On 3/14/09, Dennis Schridde devuran...@gmx.net wrote:
 Am Samstag, 14. März 2009 10:28:10 schrieb Kreuvf:

  bugs buggy wrote:
Anyone have any opinions on what should be done?

 There comes something to my mind:
  If version checking is implemented in 2.1.3, it should be able to figure out
  that 2.1.2 (and prior) do not support a versioned network protocol. Thus it
  should be able to drop connections with people using that...
  It will be a little bit unexpected for those using 2.1.2, but if we explain
  this in the release notes, I think it will be less so.

Nope, it can't do that.  2.1.3 sends the 'version_check' message, but
2.1.2 has no idea what that messge is, and all we do is return false.
No error or warning messages at all. :(

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-14 Thread Christian Ohm
On Saturday, 14 March 2009 at 11:53, bugs buggy wrote:
 On 3/14/09, Dennis Schridde devuran...@gmx.net wrote:
  Am Samstag, 14. März 2009 10:28:10 schrieb Kreuvf:
 
   bugs buggy wrote:
 Anyone have any opinions on what should be done?
 
  There comes something to my mind:
   If version checking is implemented in 2.1.3, it should be able to figure 
  out
   that 2.1.2 (and prior) do not support a versioned network protocol. Thus it
   should be able to drop connections with people using that...
   It will be a little bit unexpected for those using 2.1.2, but if we explain
   this in the release notes, I think it will be less so.
 
 Nope, it can't do that.  2.1.3 sends the 'version_check' message, but
 2.1.2 has no idea what that messge is, and all we do is return false.
 No error or warning messages at all. :(

Could the version check be done in the lobby server?

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-14 Thread bugs buggy
On 3/14/09, Christian Ohm chr@gmx.net wrote:
 On Saturday, 14 March 2009 at 11:53, bugs buggy wrote:
   On 3/14/09, Dennis Schridde devuran...@gmx.net wrote:
Am Samstag, 14. März 2009 10:28:10 schrieb Kreuvf:
   
 bugs buggy wrote:
   Anyone have any opinions on what should be done?
   
There comes something to my mind:
 If version checking is implemented in 2.1.3, it should be able to 
 figure out
 that 2.1.2 (and prior) do not support a versioned network protocol. 
 Thus it
 should be able to drop connections with people using that...
 It will be a little bit unexpected for those using 2.1.2, but if we 
 explain
 this in the release notes, I think it will be less so.
   
   Nope, it can't do that.  2.1.3 sends the 'version_check' message, but
   2.1.2 has no idea what that messge is, and all we do is return false.
   No error or warning messages at all. :(


 Could the version check be done in the lobby server?


I thought of that as well, but the GAMESTRUCT is a fixed size, and if
we changed it, it will do screwy things to pre 2.1.3 clients.
Unless of course, we have a different lobby servers for 2.1.3 
trunk/2.2 ?  That could work.

But that don't stop the problem of direct connecting via IPs.

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-14 Thread Dennis Schridde
Am Samstag, 14. März 2009 16:53:21 schrieb bugs buggy:
 On 3/14/09, Dennis Schridde devuran...@gmx.net wrote:
  Am Samstag, 14. März 2009 10:28:10 schrieb Kreuvf:
   bugs buggy wrote:
 Anyone have any opinions on what should be done?
 
  There comes something to my mind:
   If version checking is implemented in 2.1.3, it should be able to figure
  out that 2.1.2 (and prior) do not support a versioned network protocol.
  Thus it should be able to drop connections with people using that...
   It will be a little bit unexpected for those using 2.1.2, but if we
  explain this in the release notes, I think it will be less so.

 Nope, it can't do that.  2.1.3 sends the 'version_check' message, but
 2.1.2 has no idea what that messge is, and all we do is return false.
 No error or warning messages at all. :(
The 2.1.3 client should figure out that it is talking to someone who does not 
understand what version_check means, shouldn't it? So the function could 
return a failed version check if it does not receive any answer at all. We 
could even signal to the user that client X does not support version_check and 
was thus removed from the game.
Please tell me where the flaw is in that thought.

--DevU


signature.asc
Description: This is a digitally signed message part.
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-14 Thread bugs buggy
On 3/14/09, Dennis Schridde devuran...@gmx.net wrote:
 Am Samstag, 14. März 2009 16:53:21 schrieb bugs buggy:

  On 3/14/09, Dennis Schridde devuran...@gmx.net wrote:
Am Samstag, 14. März 2009 10:28:10 schrieb Kreuvf:
 bugs buggy wrote:
   Anyone have any opinions on what should be done?
   
There comes something to my mind:
 If version checking is implemented in 2.1.3, it should be able to figure
out that 2.1.2 (and prior) do not support a versioned network protocol.
Thus it should be able to drop connections with people using that...
 It will be a little bit unexpected for those using 2.1.2, but if we
explain this in the release notes, I think it will be less so.
  
   Nope, it can't do that.  2.1.3 sends the 'version_check' message, but
   2.1.2 has no idea what that messge is, and all we do is return false.
   No error or warning messages at all. :(

 The 2.1.3 client should figure out that it is talking to someone who does not
  understand what version_check means, shouldn't it? So the function could
  return a failed version check if it does not receive any answer at all. We
  could even signal to the user that client X does not support version_check 
 and
  was thus removed from the game.
  Please tell me where the flaw is in that thought.

  --DevU

There is no flaw in that thought, after X (5 secs? 10?) if we don't
get a echo back, we could kick... just means more coding.

Something like host broadcasts trunk, and after X, if we don't hear
a reply, we kick?

I'll try it and see how it goes.

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-14 Thread Christian Ohm
On Saturday, 14 March 2009 at 12:14, bugs buggy wrote:
 On 3/14/09, Christian Ohm chr@gmx.net wrote:
  Could the version check be done in the lobby server?
 
 I thought of that as well, but the GAMESTRUCT is a fixed size, and if
 we changed it, it will do screwy things to pre 2.1.3 clients.
 Unless of course, we have a different lobby servers for 2.1.3 
 trunk/2.2 ?  That could work.

Hm, so the game sends a fixed struct to the lobbyserver, and every time the
struct changes, both game and server have to be updated? Then I guess my idea
wouldn't work, except if one of the fields could be abused to include the
version information. A new lobby server instance (+ port) per network protocol
change is not good.  But Dennis's idea sounds better anyway.

 But that don't stop the problem of direct connecting via IPs.

Yeah, but people playing with direct IPs would have to communicate anyway, and
those using 2.1.3+ would hopefully know about the network fix.

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-14 Thread Dennis Schridde
Dump from IRC:

Use a simple number (int), which we increment everytime we change the netcode 
in an incompatible way.
Use a 2nd number in addition, which we increment if some compatible 
enhancement happens. (And reset when we increment the major version.)
(That is in fact similar to what is done for shared objects on Linux.)

Since we need to check game data and mods as well, strings seem better for 
that task. (Simply concat the version strings. Example: trunk:aiv:ntw)
They could be seperated from the netcode version though.

Proposed constants:
NETCODE_VERSION_MAJOR=0, NETCODE_VERSION_MINOR=0, DATA_VERSION=2.2
(With the latter being the one used to concat mod version strings onto.)

--DevU


signature.asc
Description: This is a digitally signed message part.
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-14 Thread Freddie Witherden
Hi all,

 Proposed constants:
 NETCODE_VERSION_MAJOR=0, NETCODE_VERSION_MINOR=0, DATA_VERSION=2.2
 (With the latter being the one used to concat mod version strings onto.)

I'd rather just use the SVN revision of the game. It is simpler.
Furthermore there are a lot of changes we could make to the game that do
not involve the netcode that could break stuff.

My proposal: SVN revision, int, locally modified, bool (just issue a
warning to both sides if any player has it as true), hash, string. For
the moment I suggest that we make the hash just an empty string, but it
will allow us, in the future to hash mods and compare game data,

Of course, for the moment an empty hash makes more sense, time wise.

This method is:
 - foolproof, as it handles accidental local modifications and game
changes (stats etc, as different rev numbers);
 - simple, thanks to autorevision;
 - extendible to handle mod hashing in the future.

Regards, Freddie.


signature.asc
Description: This is a digitally signed message part
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-13 Thread Dennis Schridde
Am Samstag, 14. März 2009 02:11:56 schrieb bugs buggy:
 I finally found the cause for people getting disconnected for no
 apparent reason (especially in longer games).
I would go with releasing the fix in 2.2 and not in 2.1 then.
And we finally need some version checking code to prevent such 
incompatibilities in the future.
(But we still should not introduce incompatibilities in minor versions.)

--DevU


signature.asc
Description: This is a digitally signed message part.
___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev


Re: [Warzone-dev] Release 2.2 (with port change) or go with 2.1.3 + port change or ?

2009-03-13 Thread Zarel
2009/3/13 bugs buggy buginato...@gmail.com:
 I finally found the cause for people getting disconnected for no
 apparent reason (especially in longer games).
 The fix is simple enough, but the issue is, we can't stop 2.1.2 people
 from connecting to 2.1.3 people.  And since the main point of the fix
 is to allow people to NOT drop connections, I don't see a alternative
 besides changing ports to prevent the clients from connecting.

I don't see the problem with just fixing 2.1.3 and leaving it at that.

Yes, 2.1.2 networking with 2.1.2 will be unstable, but that's kind of
impossible to fix.

Yes, 2.1.3 networking with 2.1.2 will be unstable, but not more
unstable than 2.1.2 currently is.

And 2.1.3 networking with 2.1.3 will be stable (or at least moreso), so why not?

-Zarel

___
Warzone-dev mailing list
Warzone-dev@gna.org
https://mail.gna.org/listinfo/warzone-dev