1. #1
    I am BlackMaze SilentEye's Avatar
    Join Date
    July 2003
    Location
    NeoCast HQ
    Posts
    1,732

    Default Remove client side effects such as damage

    Currently damage is calculated both client side and server side.

    To the user this appears where you take damage, reducing HP, after which the HP pops back up because the attack and damage was only registered client side and not server side.

    Another even more important situation where you notice this is when you first zone into an area (take the Regants boss room as an example).

    The boss is already dead but on your client he appears alive (as all mobs do when you first enter a zone, despite whether they are dead or not), he even hits you and your health may drop to 0. Then all of a sudden the boss drops dead because the server tells my client that he is dead. Also, the damage I took was only client side and could not be confirmed by the server and so the health is corrected by the server.

    So this actually means that on my client, the monster is triggered to attack and so I am hit. All of this happens client side and I wonder why in the world would such events be generated by the client?

    Not only does this give me a heart attack, it's wrong and also (maybe) there are situations where the damage is applied when it shouldn't.

    Why are these things registered client side anyway? Maybe because of bandwidth issues when this game was first released? It doesn't seem to me like this should be here.

    In my opinion, monsters attacking should only be triggered on the client after the server sends a packet claiming the attack. The client should not have the responsibility and/or ability to send these by himself, more so because most of the time they are out of synch with the server and you are left with health going up and down.

  2. #2
    Registered User Kane Gregory's Avatar
    Join Date
    September 2012
    Location
    Rostock
    Posts
    126

    Default

    Really good idea. In the limits of neocron the calculations should carried or double-checked from the server. I think a few things like this are fixed in the last patches and I hope some more will fixed in the future.

    How it should be:
    Client = Slave
    Server = Master

    "First they ignore you, then they laugh at you, then they fight you, then you win." εMahatma Ghandiз

  3. #3
    Registered User
    Join Date
    December 2004
    Location
    Stuttgart, Germany
    Posts
    578

    Default

    Good one, SilentEye. That's an important issue regarding the technical architecture.

  4. #4
    Registered User
    Join Date
    August 2005
    Location
    Finland
    Posts
    192

    Default

    Because of lag, client has to do some calculations. Lag is something, that affects every action. Can't escape it. Every multiplayer game has to compensate lag.

    Client indeed needs to be slave in mp games and it is so, even in Neocron. What you see, is mostly clients prediction of what happens. Client and server have same code, what comes to AI, damage calculations, collision etc. Server checks from time to time, that Clients variables are up to date, so it can predict actions, that happen in world. If predictions were wrong, server overrides those and corrects the state.
    If there would be no prediction, game would be totally unplayable. Prediction creates illusion of lag free environment. Click of button, instantly moves you or shoots bullets from your weapon. There is need for prediction, always.

    Prediction creates these ghost damages, standing dead mobs etc. When you see someone clipping through walls and corners thats because coordinates on client gets faulty and server sends fixed coordinates and then client has to either teleport character to new coordinates or smoothly slide from last coordinates to new coordinates.
    Neocron network code certainly would need to be look at, but its not THAT far away from standard way of handling stuff.

    I have never died on already dead mob ( - fire and poison ).

    Lag is horrible thing to multiplayer games.
    Even thou you would have only 50ping, it would still take 100ms to send message to server and get it back. Without any processing time included. If theres 10 guys and everyone has different pings, there has to be done some heavy predictions to keep every player looking smooth on your screen. Even thou, you NEVER know, what users are doing now. You only see past and prediction of current time.

    PS: I forgot why i started typing
    Finnish Gimp

  5. #5
    I am BlackMaze SilentEye's Avatar
    Join Date
    July 2003
    Location
    NeoCast HQ
    Posts
    1,732

    Default

    While I completely understand where you are coming from CritiNator, I do believe that Neocron is the first MMO I have ever encountered where mob attacks are generated from a client side, this is just wrong.

    Take any other MMO; WoW, Guildwars, SWG, SWTOR, you will sometimes fight a mob and have a lag spike, during that lag spike, the monster does not attack you, and you'll be stood there waiting for the spike to finish, or a disconnect

    That's what it should be like if you ask me

    The thing here is that if you let the client generate monster attacks, the user will respond (sometimes wrongly), panic, run, what ever, it's just not right

  6. #6
    Registered User eNTi's Avatar
    Join Date
    July 2003
    Location
    Canyon, TH
    Posts
    833

    Default

    Quote Originally Posted by CritiNator View Post
    Even thou you would have only 50ping, it would still take 100ms to send message to server and get it back.
    actually i think ping (or round trip time) is the time the message needs there and back.

  7. #7
    I am BlackMaze SilentEye's Avatar
    Join Date
    July 2003
    Location
    NeoCast HQ
    Posts
    1,732

    Default

    Quote Originally Posted by eNTi View Post
    actually i think ping (or round trip time) is the time the message needs there and back.
    This is true. Ping equals the time it takes between sending the packet and receiving a reply packet back.

  8. #8
    Registered User
    Join Date
    August 2005
    Location
    Finland
    Posts
    192

    Default

    Yeh, ping is round trip time. My bad.

    On other games i have died several times in lag spikes, because while client is not showing it, mobs do continue to hit me. So, when lagging ends, i die. Ever happened to you?

    So, in a way, Neocron does this better than other games?

    Anyways, all those things you described are direct cause of client side prediction.
    Without it, everything would be jerky and unplayable.

    Client simulates world and predicts mob movement, that's why dead bodies are not always in the same place in other players screens. That's why you sometimes take ghost damage. Client simulated and predicted damage, but because it's state was not same as in server, server's next packet overrides it.
    Server runs the actual world and actual mob AI. Because they both use same code, most of the time its correct and server does not need to interfere clients business.
    Finnish Gimp

  9. #9
    I am BlackMaze SilentEye's Avatar
    Join Date
    July 2003
    Location
    NeoCast HQ
    Posts
    1,732

    Default

    You're trying to sweet talk the whole thing. I do agree with you that the client should make predictions to provide the user with a smoother gameplay, but I do not agree on it regarding damage.

    In my opinion the client should not generate monster damage if the server is not sending this data, simple as that. I disregard all your other points because I am very simply talking only about the damage from monsters here

  10. #10
    Registered User
    Join Date
    August 2005
    Location
    Finland
    Posts
    192

    Default

    Yeah, but if damage is not predicted also, you would not get feedback from fights in realtime, instead you would get them in chunks caused by latency and possible *hic* 's of server. ( As i said previously, on lag spike, you would just die when its over ). Now you pretty much get what you get and server fixes it later. I certainly have ran more than once with 0 health and thats cause faulty parameters on clients side. Lucky us, server knows better.

    Also note, that it's server who decides who dies and lives, you will not die, if your client decides to set health to 0.

    If they really are considering and creating new client with Unity3D, then this kind of stuff can be fixed at once.
    Finnish Gimp

  11. #11
    I am BlackMaze SilentEye's Avatar
    Join Date
    July 2003
    Location
    NeoCast HQ
    Posts
    1,732

    Default

    Well then we've got a different opinion on this. Like I previously stated, no other MMO has client side damage, PvP or not.

  12. #12
    Registered User
    Join Date
    August 2005
    Location
    Finland
    Posts
    192

    Default

    Its not real damage.
    Finnish Gimp

  13. #13
    I am BlackMaze SilentEye's Avatar
    Join Date
    July 2003
    Location
    NeoCast HQ
    Posts
    1,732

    Default

    Further point out the previously established obvious, please.

  14. #14
    English Lead Moderator, Community Consultant Nidhogg's Avatar
    Join Date
    March 2003
    Posts
    14,536

    Default

    Consider that there's a continuum of games with titles like Halo multiplayer on one end, and WoW on the other. One has to track a small number of simple entities very quickly, while the other models complex sets of numbers and probabilities but with a vastly simpler movement and targeting system.

    Now consider where Neocron sits in that continuum and think about what it has to do to give a convincing impression of both ends using the limited technology and bandwidth of PCs and the wholly unreliable internet.

    Does Neocron pull it off perfectly? No. But is it as simple as removing client-side damage? Absolutely not. Also think about how long Neocron's being pulling off this remarkable feat.

    I'm currently working on a system that will eventually get around this issue. The client makes a connection to the server and receives a quantum-entangled session packet in return. This connection packet itself can be communicated via any classical means and once the connection is made further communication happens instantaneously regardless of distance from the server. The client and server maintain equal but opposite entangled states and all the client has to do is multiply the packet by its complex conjugate to render real numbers that can be used to calculate positions and damage, at which point you have completely lag-free gameplay.

    Of course when I say "a system that will eventually get around this issue" I really mean "a piece of toast", and when I say "currently working on" I really mean "eating".

    The first part is true though.
    Nidhogg
    Forum Administration
    Neocron Support Team
    N E O C R O N - G A M E . C O M

    »Thanks for stopping by«

    DOWNLOAD NEOCRONPLAY NEOCRONFACEBOOKTWITTERIRCGET SUPPORTFORUM RULESRULES OF CONDUCT

  15. #15
    NC2 were u fight bugs from NC1
    Join Date
    June 2003
    Location
    UK
    Posts
    687

    Default

    Quote Originally Posted by Nidhogg View Post
    Consider that there's a continuum of games with titles like Halo multiplayer on one end, and WoW on the other. One has to track a small number of simple entities very quickly, while the other models complex sets of numbers and probabilities but with a vastly simpler movement and targeting system.

    Now consider where Neocron sits in that continuum and think about what it has to do to give a convincing impression of both ends using the limited technology and bandwidth of PCs and the wholly unreliable internet.

    Does Neocron pull it off perfectly? No. But is it as simple as removing client-side damage? Absolutely not. Also think about how long Neocron's being pulling off this remarkable feat.

    I'm currently working on a system that will eventually get around this issue. The client makes a connection to the server and receives a quantum-entangled session packet in return. This connection packet itself can be communicated via any classical means and once the connection is made further communication happens instantaneously regardless of distance from the server. The client and server maintain equal but opposite entangled states and all the client has to do is multiply the packet by its complex conjugate to render real numbers that can be used to calculate positions and damage, at which point you have completely lag-free gameplay.

    Of course when I say "a system that will eventually get around this issue" I really mean "a piece of toast", and when I say "currently working on" I really mean "eating".

    The first part is true though.
    Where is a like button when you need one. Lol

    I have noticed the bouncing health bug happening more often there days than I remember though. There was a thread on it not thread long ago explaining how you sometimes died due to it. (2 successive hits)

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •