Author |
FX Suggestions thread. |
BackSlash Marshal Galactic Navy
Joined: March 23, 2003 Posts: 11183 From: Bristol, England
| Posted: 2004-09-13 13:32  
To Faustus mainly. It is your engine.
Right my first major suggestion towards the graphics is a fairly ... big one in terms of how darkspace is drawn etc. I was talking this over with Gideon and we sort of talked about this. So here goes.
So far as I understand from Gideon, the graphics are drawn client side (ofcourse they are). But what actualy happens is the graphics update once a second with the network code, which is WHY we get the shield flaring up where we hit a second ago. I came up with several idea's of how this could be delt with. One was to make the client tell the server where you where hitting the target, but I thaugth this might be easy to hack, and Gideon confirmed that. My second thought was that, why does the graphics code have to be updated with the net code....it has no need? Mhh yes and no as I understand it. Because client needs to know where it hits, and thats whats being displayed....accurate graphics information. But its ALWAYS where we hit anyway. So how about this.
The graphics being updated with the netcode being scraped. It does not need to be happening. Instead, why dont the clients draw the graphics, and send the packet data off aswell. It may not be accurate, but hell....whats beta testing for? Anyway to get a better idea of what we where saying Gideon said this at the very end and sorta sumed it all up.
[Dev]Gideon: "STATUS should update with packets (actual HP level), but feedback should be totally client side."
[Dev]Gideon: "It would then update continuously, not have any wait time."
feedback = graphics for those who didnt know.
This basicly means whats happening is this...(il try my best :S)
Your client graphics side:
"I'll draw that that enemy is getting hit on the shield there and continue moving with the hit point of my CL2000 untill it stops"
Your client netcode side:
"Send that i'v hit that person there with a CL2000 , (anything behond here is what happens already, so im not going to explain that).
So whats happening is that YOUR client is drawing up to date information with the graphics, IE your shooting that person there, and the shield will show that NOW and not a second later. Whilst the server has registered that you have hit that person. This shouldnt be too difficult as none of the ship possition data is being changed, so in theory if you shoot and miss your side, you will have missed server side.
Anyway...that was my idea...I dont really know if that made any sense atall...
-Jack
_________________
Note: This signature image was resized due to it exceeding the forum guidelines for size.
[ This Message was edited by: BackSlash on 2004-09-13 15:25 ]
_________________
|
Tiffy Rando Grand Admiral
Joined: January 19, 2003 Posts: 354 From: Austin, Texas
| Posted: 2004-09-13 13:58  
I don't really understand how this part of DS works really, but rom what you said Jack it makes perfect sense to me...
_________________ Flagship: MCC-717: C.S.S Antaeus
|
Xpli$it Marshal
Joined: March 06, 2004 Posts: 486 From: Canada
| Posted: 2004-09-13 15:04  
"thaught"?
_________________
|
Overlord Cadet
Joined: August 08, 2003 Posts: 3 From: Germany
| Posted: 2004-09-13 15:21  
I think he meant "thought", but I could be wrong.
_________________
|
Chromix Cadet
Joined: June 29, 2001 Posts: 3052
| Posted: 2004-09-14 04:14  
In DS it works about like this:
C1: Client1(You), C2 Client2(your target), S Server.
C1 -> S: I launched an AM Torp at C2.
S: Confirms that C1 actually can launch that AM Torp at C2, and does so.
S -> C2: C1 launched an AM Torp at you.
C1: Sees the AM Torp reaching C2
S: Notices that the AM Torp from C1 just hit C2, and calculates the damage taken.
S -> C1: C1 hit C2 for 3000 damage.
S -> C2: C1 hit C2 for 3000 damage.
Thats the moment in which both clients see the shield flaring up, as it only does so when a ship gets damaged.
If the client did the damage calculations, and applied those changes locally, some sync problems may occur.
Lets say on C1s screen the torp hit, and damaged C2s drives, so his ship moves really slow now.
However C2 turned to the left and evaded the torpedo. So neither on C2s screen, nor in the servers data C2 got hit, thus still travels at full speed.
So, as the game continues, C2 will never be at the correct position for C1, until it gets resynced.
_________________
|
Pope Fleet Admiral
Joined: June 11, 2002 Posts: 2449 From: World of tomorrow
| Posted: 2004-09-14 04:44  
I think what they are trying to say is to simply let stuff like the hit effects be based on rendered projectiles, instead of hit information from the server. (status vs. feedback).
Or to put it different, make hit effects purely the feedback's task.
The problem i think is that so far, the client doesn't actually do /any/ collision checking, so that'd have to be duplicated.
Not really a good thing from a design perspective, potential for worse visual desync problems too.
What would seem far better would be if status could send an event directly or indirectly to the feedback layer instead of it (feedback) polling in 1 second intervals. But maybe that would be grounds for a major change in design that might be just to much for the near future. Even then, it could probably be hacked for the special case shield effect, at this point tho i don't have enough data anymore to say anything about it..
_________________
|
Gideon Cadet
Joined: September 14, 2001 Posts: 4604 From: Oregon, USA
| Posted: 2004-09-14 10:22  
Quote:
|
On 2004-09-14 04:14, Chromix wrote:
If the client did the damage calculations, and applied those changes locally, some sync problems may occur. |
|
I don't think he wants the damage calculations to occure on the client side. Those should always be server side, with the results sent to the client.
I think he wants the special effects (the projectiles, hit effects, etc) to be represented purely client side, with no strict bearing on what is happening on server side. The fire animation should start when the packet for it having fired gets there from the server, but the projectile itself, and the hit result (graphically, not actual HP results) could be drawn independant of any feedback of the server.
Yes, it might generate some odd results, but in general, I don't think any sync difference between the special effects and the actual damage results will be generally noticable, except on very laggy connections. Very laggy connections have thier own issues.
_________________ ...and lo, He looked upon His creation, and said, "Fo shizzle."
|