Author |
Developer Update 6/18/2005... |
Faustus Marshal Palestar
Joined: May 29, 2001 Posts: 2748 From: Austin, Texas
| Posted: 2005-07-18 10:38  
What a weekend...
Yesterday, for the first time I can remember, 105 players in the metaverse at one time... we are almost there.
I guess I've been in denial for a code change I made back in version 1.481 which involved sending verbs from the client to the server, then back to the sending client. In other words, prior to that version verbs (commands) were sent sent locally and sent up to the server.
The reason I did this was to make it easier to move the ship AI complete to the server side (such as orbit and follow).
Anyway, I'm going to go back and look at this code again, and see if I can move the code back to the way we did it prior to version 1.481... I make no assurances I can, and certainly LAG will still exist... it will just be better hidden and you won't see it. (Guess thats the way it's gotta be anyway).
-Richard
_________________
|
Axalon Vice Admiral
Joined: June 15, 2003 Posts: 442 From: East Windsor, NJ, USA
| Posted: 2005-07-18 11:57  
Y'see? They all whine for a rollback, now you might get it. So you're gonna basically rollback the server code from 1.480, does that mean we can use the Map Editor offline again? I loved that.
_________________
|
BackSlash Marshal Galactic Navy
Joined: March 23, 2003 Posts: 11183 From: Bristol, England
| Posted: 2005-07-18 12:13  
If it all fails Faustus. Theres always other things to try. Like UDP again (but just work it a bit better), since a lot of people I have talked to about netcode, seem to query Darkspaces use of TCP instead of UDP (although we all know the problems that the last change caused...)
Also, whens the new server going to be ready?
_________________
|
Axalon Vice Admiral
Joined: June 15, 2003 Posts: 442 From: East Windsor, NJ, USA
| Posted: 2005-07-18 12:15  
Most professional game servers do use UDP (battle.net, WON, gamespy), it wouldn't hurt to try with the new servers.
_________________
|
Faustus Marshal Palestar
Joined: May 29, 2001 Posts: 2748 From: Austin, Texas
| Posted: 2005-07-18 12:44  
UDP won't help... I tried to make clear whats going on... let me try again.
In the current version...
1. Player presses the A key, and begins a left hand turn, then releases the A key this generates a VerbYaw which is sent to the server.
2. Server finally receives this VerbYaw after going through the internet (if you have a crappy connection, then it make take 250-500ms to reach the server). Server applies the yaw change (turn) to your ship, then sends this verb back to all other clients in the area of your ship (including yourself).
3. Client finally receives the VerbYaw after going back through the internet... and applies it to your ship, you now actually see your ship begin turning. Again, depending on the connection this verb may take very little or a great deal of time to get back to you... if it nevers get back, then you never see your ship turn.
Now, in version 1.480 ....
1. Player presses the A key and begins a left hand turn, then releases the A key this generates a VerbYaw which is sent to the server AND sent locally to your client. The VerbYaw is immediately applied to your ship.
2. Server finally receives the verb later... and applies the verb to your ship on the server side, and sends the verb onto all clients in the area, except the sender of the verb.
Now, even in version 1.480, if the verb takes 10000 ms to get to the server, your ship still may be heading straght into a planet, even though on the client you've already turned and avoided the planet no problem. The difference is, you as the client never see the LAG... even though it still remains.
-Richard
_________________
|
BackSlash Marshal Galactic Navy
Joined: March 23, 2003 Posts: 11183 From: Bristol, England
| Posted: 2005-07-18 13:01  
The big question is.
(let me give a for instance).
If you are on a bombing run.
You turn to avoid the planet...
But theres lag, and normaly, using the "now" code, you'd face plant the planet...
Would you, using the 1.480 code, miss the planet. All the clients would see, is a sort of lag spike, and all the clients would jitter around during the spike (appart from you). They'd see you go into the planet, then a split second later, apear next to it, right as rain.
(Doing this for easier understanding, and so other people can understand it too).
_________________
|
Captain Sternn Grand Admiral
Joined: March 18, 2004 Posts: 225
| Posted: 2005-07-18 13:03  
what would happen if the yaw/verb on the way to the server was misplaced garbled or otherwise unusable by the server? with the action appearing as normal on the players screen and the server not receiving the info the server would think you crashed into said planet whilst your computer says you executed the turn successfully...at least until the server updates you, making it appear as though you survied for a short time..then seconds later exploding and getting the message "DeepImpact has been destroyed by Earth"
I thought we used to get that before.
Although if the packet was in such a state your gonna probably die anyway.But at least the way it is now if your turn fails you know it and keep trying to turn eventually maybe succeeding in the process.But if you thought the turn was excuted properly.....
_________________
|
BackSlash Marshal Galactic Navy
Joined: March 23, 2003 Posts: 11183 From: Bristol, England
| Posted: 2005-07-18 13:11  
Quote:
|
On 2005-07-18 13:03, General Grievous wrote:
what would happen if the yaw/verb on the way to the server was misplaced garbled or otherwise unusable by the server? with the action appearing as normal on the players screen and the server not receiving the info the server would think you crashed into said planet whilst your computer says you executed the turn successfully...at least until the server updates you, making it appear as though you survied for a short time..then seconds later exploding and getting the message "DeepImpact has been destroyed by Earth"
I thought we used to get that before.
Although if the packet was in such a state your gonna probably die anyway.But at least the way it is now if your turn fails you know it and keep trying to turn eventually maybe succeeding in the process.But if you thought the turn was excuted properly.....
|
|
TCP has error correction.
_________________
|
Diomed Cadet
Joined: January 09, 2003 Posts: 40 From: Sterling Heights, Michigan
| Posted: 2005-07-18 13:12  
Backslash- it looks to me like he is saying you are going to hit the planet either way. Going back to the way things were just means you think you missed it only to inexplicably explode moments later.
_________________ Men will call you evil if you kill the boll weevil.
|
MrSparkle Marshal
Joined: August 13, 2001 Posts: 1912 From: mrsparkle
| Posted: 2005-07-18 13:17  
The biggest question is: do you think that older version will help alleviate some of the response lag we've been getting? If it won't then it's not worth reverting back.
Whichever version helps alleviate the response lag gets my vote.
_________________
|
Axalon Vice Admiral
Joined: June 15, 2003 Posts: 442 From: East Windsor, NJ, USA
| Posted: 2005-07-18 13:21  
Isn't this what caused the scary warp lag where you'd end up appearing several thousand GUs away from your spot on rare instances?
_________________
|
BackSlash Marshal Galactic Navy
Joined: March 23, 2003 Posts: 11183 From: Bristol, England
| Posted: 2005-07-18 13:25  
I just want to know when the new server is coming, that other post was for other people to understand, since some people never know what F is going on about ( code wise ).
_________________
|
Faustus Marshal Palestar
Joined: May 29, 2001 Posts: 2748 From: Austin, Texas
| Posted: 2005-07-18 13:39  
Quote:
|
On 2005-07-18 13:12, Diomed wrote:
Backslash- it looks to me like he is saying you are going to hit the planet either way. Going back to the way things were just means you think you missed it only to inexplicably explode moments later.
|
|
YES - EXACTLY...
Even under the code back in 1.480, you'd think you missed the planet, then to explode a few moments later because you didn't miss the planet on the server.
I think the FIX is going to require 2 major changes...
1. You can no longer run into planets, instead you move above / below them just like other ships..... OR we put all planets on a plane below all ships... the point is, remove collision with planets from the game entirely, which I'm not entirely opposed too, since this is really more of an arcade game play feature.
2. Going back to sending verbs locally and to the server, like we did in 1.480.
You know, I made a really big mistake in this change for version 1.481. I really, should have realized players didn't want to know about or see their lag.
-Richard
_________________
|
UnknownWarrior Grand Admiral Raven Warriors
Joined: July 18, 2002 Posts: 724 From: North Carolina, USA
| Posted: 2005-07-18 13:46  
Dont worry Faust mate, mistakes happen, best things to do is learn from em, if it means learning the hard way then so be it, but at least we know things will get better in the long run once one learns. The idea with the moving up and below the planets sounds like a kicker since that one i understood the most of.
All i can do is give support, so just do what you think is right, bit of a hit or miss kinda deal, but we you will nail it on the nose soon enough.
_________________
|
WinterRose Fleet Admiral
Joined: April 12, 2002 Posts: 126 From: WinterRose
| Posted: 2005-07-18 13:47  
As much as I would totally love love love never crashing into planets ever again.. Wouldn't a ship going above or below planets really make 'cloud bombing' so much far more easier for everyone concerned to pull off? Just fly straight at a planet with your bombs and go under it, knowing they'll hit?
Just saying, I always considered it a tradeoff of cloud bombing, the risk involved to your ship.
_________________
|